mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-11-29 15:11:56 +00:00
Add support for flags alongside enum for argument info
This commit is contained in:
parent
e5cbadda91
commit
9948645e77
1 changed files with 28 additions and 1 deletions
|
@ -258,6 +258,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
string targetclasses = ZDTextParser.StripQuotes(actor.GetPropertyAllValues("$arg" + i + "targetclasses"));
|
string targetclasses = ZDTextParser.StripQuotes(actor.GetPropertyAllValues("$arg" + i + "targetclasses"));
|
||||||
int defaultvalue = actor.GetPropertyValueInt("$arg" + i + "default", 0);
|
int defaultvalue = actor.GetPropertyValueInt("$arg" + i + "default", 0);
|
||||||
string enumstr = ZDTextParser.StripQuotes(actor.GetPropertyAllValues("$arg" + i + "enum"));
|
string enumstr = ZDTextParser.StripQuotes(actor.GetPropertyAllValues("$arg" + i + "enum"));
|
||||||
|
string flagstr = ZDTextParser.StripQuotes(actor.GetPropertyAllValues("$arg" + i + "flags"));
|
||||||
string renderstyle = ZDTextParser.StripQuotes(actor.GetPropertyAllValues("$arg" + i + "renderstyle"));
|
string renderstyle = ZDTextParser.StripQuotes(actor.GetPropertyAllValues("$arg" + i + "renderstyle"));
|
||||||
string rendercolor, minrange, maxrange, minrangecolor, maxrangecolor;
|
string rendercolor, minrange, maxrange, minrangecolor, maxrangecolor;
|
||||||
bool str = (actor.HasProperty("$arg" + i + "str"));
|
bool str = (actor.HasProperty("$arg" + i + "str"));
|
||||||
|
@ -394,7 +395,33 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.enumlist == null) this.enumlist = new EnumList();
|
// Get or create flags
|
||||||
|
if (!string.IsNullOrEmpty(flagstr))
|
||||||
|
{
|
||||||
|
if (enums.ContainsKey(flagstr.ToLowerInvariant()))
|
||||||
|
{
|
||||||
|
this.flagslist = enums[flagstr.ToLowerInvariant()];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Configuration cfg = new Configuration();
|
||||||
|
if (cfg.InputConfiguration("flags" + flagstr, true))
|
||||||
|
{
|
||||||
|
IDictionary argdic = cfg.ReadSetting("flags", new Hashtable());
|
||||||
|
if (argdic.Keys.Count > 0)
|
||||||
|
this.flagslist = new EnumList(argdic);
|
||||||
|
else
|
||||||
|
General.ErrorLogger.Add(ErrorType.Error, actorname + ": unable to parse explicit enum structure for argument \"" + argtitle + "\"!");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
General.ErrorLogger.Add(ErrorType.Error, actorname + ": unable to parse enum structure for argument \"" + argtitle + "\"!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.enumlist == null) this.enumlist = new EnumList();
|
||||||
|
if (this.flagslist == null) this.flagslist = new EnumList();
|
||||||
}
|
}
|
||||||
internal ArgumentInfo(ActorStructure actor, int i, bool stringarg)
|
internal ArgumentInfo(ActorStructure actor, int i, bool stringarg)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue