Allow angle/flags/parameter descriptions to be changed per Thing type

This commit is contained in:
MascaraSnake 2016-01-15 19:34:02 +01:00
parent 984c021fe0
commit a03d5c5291
4 changed files with 201 additions and 1 deletions

View File

@ -2682,6 +2682,7 @@ thingtypes
sprite = "FISHA0";
width = 8;
height = 28;
angletext = "Jump strength";
}
103
{
@ -2754,6 +2755,7 @@ thingtypes
sprite = "TURRI1";
width = 12;
height = 64;
angletext = "Firing delay";
}
112
{
@ -2936,6 +2938,9 @@ thingtypes
height = 16;
flags8text = "[8] Sea Egg shooting point";
sprite = "internal:eggmanway";
angletext = "No. (Sea Egg)";
flagsvaluetext = "No. (Brak)";
parametertext = "Next";
}
293
{
@ -3277,6 +3282,7 @@ thingtypes
sprite = "STPTA0";
width = 64;
height = 80;
angletext = "Angle/Order";
}
526
{
@ -3314,6 +3320,7 @@ thingtypes
sprite = "internal:chain1";
height = 32;
flags8text = "[8] Double size";
angletext = "Tag";
}
1107
{
@ -3322,6 +3329,7 @@ thingtypes
sprite = "internal:chain2";
height = 32;
flags8text = "[8] Double size";
angletext = "Tag";
}
1108
{
@ -3390,6 +3398,7 @@ thingtypes
width = 16;
flags4text = "[4] Invisible";
flags8text = "[8] No distance check";
angletext = "Lift height";
}
541
{
@ -3609,6 +3618,7 @@ thingtypes
{
title = "Zoom Tube Waypoint";
sprite = "internal:zoom";
angletext = "Order";
}
754
@ -3617,6 +3627,7 @@ thingtypes
flags4text = "[4] Fades using XY";
flags8text = "[8] Push using XYZ";
sprite = "GWLGA0";
angletext = "Radius";
}
755
{
@ -3624,30 +3635,35 @@ thingtypes
flags4text = "[4] Fades using XY";
flags8text = "[8] Pull using XYZ";
sprite = "GWLRA0";
angletext = "Radius";
}
760
{
title = "PolyObject Anchor";
sprite = "internal:polyanchor";
angletext = "ID";
}
761
{
title = "PolyObject Spawn Point";
sprite = "internal:polycenter";
angletext = "ID";
}
762
{
title = "PolyObject Spawn Point (Crush)";
sprite = "internal:polycentercrush";
angletext = "ID";
}
780
{
title = "Skybox View Point";
sprite = "internal:skyb";
flags4text = "[4] In-map reference point";
angletext = "View height";
}
}
@ -3676,6 +3692,7 @@ thingtypes
height = 42;
flags4text = "[4] Retractable";
flags8text = "[8] Solid";
angletext = "Retraction interval";
}
524
{
@ -3711,6 +3728,7 @@ thingtypes
sprite = "internal:mace1";
flags4text = "[4] No sounds";
flags8text = "[8] Double size";
angletext = "Tag";
}
1104
{
@ -3718,12 +3736,14 @@ thingtypes
sprite = "internal:mace2";
flags4text = "[4] No sounds";
flags8text = "[8] Double size";
angletext = "Tag";
}
1202
{
arrow = 1;
title = "Rock Spawner";
sprite = "ROIAA0";
angletext = "Tag";
}
1300
{
@ -3732,6 +3752,8 @@ thingtypes
sprite = "internal:flameh";
width = 16;
flags8text = "[8] Waves vertically";
angletext = "On/Off time";
parametertext = "Strength";
}
1301
{
@ -3739,6 +3761,8 @@ thingtypes
sprite = "internal:flamev";
width = 16;
flags8text = "[8] Shoot downwards";
angletext = "On/Off time";
parametertext = "Strength";
}
1500
{
@ -3812,6 +3836,8 @@ thingtypes
sprite = "PRTLA0";
width = 8;
height = 16;
angletext = "Particle speed";
parametertext = "Interval";
}
800
{
@ -3872,6 +3898,7 @@ thingtypes
width = 8;
height = 16;
hangs = 1;
angletext = "Dripping interval";
}
1003
{
@ -4024,6 +4051,7 @@ thingtypes
width = 16;
height = 56;
flags8text = "[8] Die upon time up";
angletext = "Time limit";
}
1704
{
@ -4033,6 +4061,8 @@ thingtypes
width = 32;
height = 64;
unflippable = true;
flagsvaluetext = "Pitch";
angletext = "Yaw";
}
1705
{
@ -4043,6 +4073,8 @@ thingtypes
height = 160;
unflippable = true;
centerHitbox = true;
flagsvaluetext = "Height";
angletext = "Pitch/Yaw";
}
1706
{
@ -4098,6 +4130,7 @@ thingtypes
height = 160;
unflippable = true;
centerHitbox = true;
flagsvaluetext = "Radius";
}
}
@ -4116,6 +4149,9 @@ thingtypes
circle = 1;
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
angletext = "Radius/Direction";
parametertext = "Mare";
}
1701
{
@ -4123,6 +4159,8 @@ thingtypes
sprite = "internal:axis2";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
1702
{
@ -4130,6 +4168,8 @@ thingtypes
sprite = "internal:axis3";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
1710
{
@ -4137,6 +4177,8 @@ thingtypes
sprite = "CAPSA0";
width = 72;
height = 144;
angletext = "Rings";
parametertext = "Mare";
}
}
@ -4153,16 +4195,29 @@ thingtypes
title = "(Mare 2) Axis";
sprite = "internal:axis1";
circle = 1;
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
angletext = "Radius/Direction";
parametertext = "Mare";
}
5797
{
title = "(Mare 2) Axis Transfer";
sprite = "internal:axis2";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
5798
{
title = "(Mare 2) Axis Transfer Line";
sprite = "internal:axis3";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
5806
{
@ -4170,6 +4225,8 @@ thingtypes
sprite = "CAPSA0";
width = 72;
height = 144;
angletext = "Rings";
parametertext = "Mare";
}
}
@ -4186,16 +4243,29 @@ thingtypes
title = "(Mare 3) Axis";
sprite = "internal:axis1";
circle = 1;
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
angletext = "Radius/Direction";
parametertext = "Mare";
}
9893
{
title = "(Mare 3) Axis Transfer";
sprite = "internal:axis2";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
9894
{
title = "(Mare 3) Axis Transfer Line";
sprite = "internal:axis3";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
9902
{
@ -4203,6 +4273,8 @@ thingtypes
sprite = "CAPSA0";
width = 72;
height = 144;
angletext = "Rings";
parametertext = "Mare";
}
}
@ -4219,16 +4291,29 @@ thingtypes
title = "(Mare 4) Axis";
sprite = "internal:axis1";
circle = 1;
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
angletext = "Radius/Direction";
parametertext = "Mare";
}
13989
{
title = "(Mare 4) Axis Transfer";
sprite = "internal:axis2";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
13990
{
title = "(Mare 4) Axis Transfer Line";
sprite = "internal:axis3";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
13998
{
@ -4236,6 +4321,8 @@ thingtypes
sprite = "CAPSA0";
width = 72;
height = 144;
angletext = "Rings";
parametertext = "Mare";
}
}
@ -4252,16 +4339,29 @@ thingtypes
title = "(Mare 5) Axis";
sprite = "internal:axis1";
circle = 1;
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
angletext = "Radius/Direction";
parametertext = "Mare";
}
18085
{
title = "(Mare 5) Axis Transfer";
sprite = "internal:axis2";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
18086
{
title = "(Mare 5) Axis Transfer Line";
sprite = "internal:axis3";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
18094
{
@ -4269,6 +4369,8 @@ thingtypes
sprite = "CAPSA0";
width = 72;
height = 144;
angletext = "Rings";
parametertext = "Mare";
}
}
@ -4285,16 +4387,29 @@ thingtypes
title = "(Mare 6) Axis";
sprite = "internal:axis1";
circle = 1;
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
angletext = "Radius/Direction";
parametertext = "Mare";
}
22181
{
title = "(Mare 6) Axis Transfer";
sprite = "internal:axis2";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
22182
{
title = "(Mare 6) Axis Transfer Line";
sprite = "internal:axis3";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
22190
{
@ -4302,6 +4417,8 @@ thingtypes
sprite = "CAPSA0";
width = 72;
height = 144;
angletext = "Rings";
parametertext = "Mare";
}
}
@ -4318,16 +4435,29 @@ thingtypes
title = "(Mare 7) Axis";
sprite = "internal:axis1";
circle = 1;
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
angletext = "Radius/Direction";
parametertext = "Mare";
}
26277
{
title = "(Mare 7) Axis Transfer";
sprite = "internal:axis2";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
26278
{
title = "(Mare 7) Axis Transfer Line";
sprite = "internal:axis3";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
26286
{
@ -4335,6 +4465,8 @@ thingtypes
sprite = "CAPSA0";
width = 72;
height = 144;
angletext = "Rings";
parametertext = "Mare";
}
}
@ -4351,16 +4483,29 @@ thingtypes
title = "(Mare 8) Axis";
sprite = "internal:axis1";
circle = 1;
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
angletext = "Radius/Direction";
parametertext = "Mare";
}
30373
{
title = "(Mare 8) Axis Transfer";
sprite = "internal:axis2";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
30374
{
title = "(Mare 8) Axis Transfer Line";
sprite = "internal:axis3";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
30382
{
@ -4368,6 +4513,8 @@ thingtypes
sprite = "CAPSA0";
width = 72;
height = 144;
angletext = "Rings";
parametertext = "Mare";
}
}
@ -4419,6 +4566,7 @@ thingtypes
sprite = "PUMAA0";
width = 8;
height = 16;
angletext = "Jump strength";
}
1806
{

View File

@ -63,6 +63,9 @@ namespace CodeImp.DoomBuilder.Config
private readonly bool isUnflippable;
private readonly bool ignoreZ;
private readonly bool centerHitbox;
private readonly string angletext;
private readonly string flagsvaluetext;
private readonly string parametertext;
// Disposing
private bool isdisposed;
@ -100,6 +103,9 @@ namespace CodeImp.DoomBuilder.Config
public bool IsUnflippable { get { return isUnflippable; } }
public bool IgnoreZ { get { return ignoreZ; } }
public bool CenterHitbox { get { return centerHitbox; } }
public string AngleText { get { return angletext; } }
public string FlagsValueText { get { return flagsvaluetext; } }
public string ParameterText { get { return parametertext; } }
#endregion
#region ================== Constructor / Disposer
@ -135,6 +141,9 @@ namespace CodeImp.DoomBuilder.Config
this.isUnflippable = parent.isUnflippable;
this.ignoreZ = parent.ignoreZ;
this.centerHitbox = parent.centerHitbox;
this.angletext = parent.angletext;
this.flagsvaluetext = parent.flagsvaluetext;
this.parametertext = parent.parametertext;
}
// Set default properties
else
@ -158,6 +167,9 @@ namespace CodeImp.DoomBuilder.Config
this.isUnflippable = false;
this.ignoreZ = false;
this.centerHitbox = false;
this.angletext = "Angle";
this.flagsvaluetext = "Flags value";
this.parametertext = "Parameter";
}
// We have no destructor
@ -217,6 +229,9 @@ namespace CodeImp.DoomBuilder.Config
this.isUnflippable = cfg.ReadSetting("thingtypes." + name + ".unflippable", parent.isUnflippable);
this.ignoreZ = cfg.ReadSetting("thingtypes." + name + ".ignoreZ", parent.ignoreZ);
this.centerHitbox = cfg.ReadSetting("thingtypes." + name + ".centerHitbox", parent.centerHitbox);
this.angletext = cfg.ReadSetting("thingtypes." + name + ".angletext", parent.angletext);
this.flagsvaluetext = cfg.ReadSetting("thingtypes." + name + ".flagsvaluetext", parent.flagsvaluetext);
this.parametertext = cfg.ReadSetting("thingtypes." + name + ".parametertext", parent.parametertext);
}
else
{
@ -239,6 +254,9 @@ namespace CodeImp.DoomBuilder.Config
this.isUnflippable = cfg.ReadSetting("thingtypes." + name + ".unflippable", false);
this.ignoreZ = cfg.ReadSetting("thingtypes." + name + ".ignoreZ", false);
this.centerHitbox = cfg.ReadSetting("thingtypes." + name + ".centerHitbox", false);
this.angletext = cfg.ReadSetting("thingtypes." + name + ".angletext", "Angle");
this.flagsvaluetext = cfg.ReadSetting("thingtypes." + name + ".flagsvaluetext", "Flags value");
this.parametertext = cfg.ReadSetting("thingtypes." + name + ".parametertext", "Parameter");
}
// Safety

View File

@ -79,6 +79,9 @@ namespace CodeImp.DoomBuilder.Config
private bool isUnflippable;
private bool ignoreZ;
private bool centerHitbox;
private string angletext;
private string flagsvaluetext;
private string parametertext;
//mxd. GLOOME rendering settings
private Thing.SpriteRenderMode rendermode;
@ -127,6 +130,9 @@ namespace CodeImp.DoomBuilder.Config
public bool IsUnflippable { get { return isUnflippable; } }
public bool IgnoreZ { get { return ignoreZ; } }
public bool CenterHitbox { get { return centerHitbox; } }
public string AngleText { get { return angletext; } }
public string FlagsValueText { get { return flagsvaluetext; } }
public string ParameterText { get { return parametertext; } }
#endregion
#region ================== Constructor / Disposer
@ -166,6 +172,9 @@ namespace CodeImp.DoomBuilder.Config
this.isUnflippable = false;
this.ignoreZ = false;
this.centerHitbox = false;
this.angletext = "Angle";
this.flagsvaluetext = "Flags value";
this.parametertext = "Parameter";
// We have no destructor
GC.SuppressFinalize(this);
@ -210,6 +219,9 @@ namespace CodeImp.DoomBuilder.Config
this.isUnflippable = cfg.ReadSetting("thingtypes." + cat.Name + "." + key + ".unflippable", cat.IsUnflippable);
this.ignoreZ = cfg.ReadSetting("thingtypes." + cat.Name + "." + key + ".ignoreZ", cat.IgnoreZ);
this.centerHitbox = cfg.ReadSetting("thingtypes." + cat.Name + "." + key + ".centerHitbox", cat.CenterHitbox);
this.angletext = cfg.ReadSetting("thingtypes." + cat.Name + "." + key + ".angletext", cat.AngleText);
this.flagsvaluetext = cfg.ReadSetting("thingtypes." + cat.Name + "." + key + ".flagsvaluetext", cat.FlagsValueText);
this.parametertext = cfg.ReadSetting("thingtypes." + cat.Name + "." + key + ".parametertext", cat.ParameterText);
// Read the args
for (int i = 0; i < Linedef.NUM_ARGS; i++)
@ -266,6 +278,9 @@ namespace CodeImp.DoomBuilder.Config
this.isUnflippable = cat.IsUnflippable;
this.ignoreZ = cat.IgnoreZ;
this.centerHitbox = cat.CenterHitbox;
this.angletext = cat.AngleText;
this.flagsvaluetext = cat.FlagsValueText;
this.parametertext = cat.ParameterText;
// Safety
if (this.radius < 4f) this.radius = 8f;
@ -316,6 +331,9 @@ namespace CodeImp.DoomBuilder.Config
this.isUnflippable = cat.IsUnflippable;
this.ignoreZ = cat.IgnoreZ;
this.centerHitbox = cat.CenterHitbox;
this.angletext = cat.AngleText;
this.flagsvaluetext = cat.FlagsValueText;
this.parametertext = cat.ParameterText;
// Safety
if (this.radius < 4f) this.radius = 8f;
@ -363,6 +381,9 @@ namespace CodeImp.DoomBuilder.Config
this.isUnflippable = cat.IsUnflippable;
this.ignoreZ = cat.IgnoreZ;
this.centerHitbox = cat.CenterHitbox;
this.angletext = cat.AngleText;
this.flagsvaluetext = cat.FlagsValueText;
this.parametertext = cat.ParameterText;
// Safety
if (this.radius < 4f) this.radius = 8f;
@ -412,6 +433,9 @@ namespace CodeImp.DoomBuilder.Config
this.isUnflippable = other.isUnflippable;
this.ignoreZ = other.ignoreZ;
this.centerHitbox = other.centerHitbox;
this.angletext = other.angletext;
this.flagsvaluetext = other.flagsvaluetext;
this.parametertext = other.parametertext;
//mxd. Copy GLOOME properties
this.rendermode = other.rendermode;

View File

@ -282,7 +282,15 @@ namespace CodeImp.DoomBuilder.Windows
thingprops.Add(new ThingProperties(t));
}
if (allsametype) flags.UpdateCheckboxes(newFlags);
if (allsametype)
{
flags.UpdateCheckboxes(newFlags);
if (ti != null)
{
groupBox4.Text = ti.AngleText;
label3.Text = thinginfo.FlagsValueText + ":";
}
}
preventchanges = false;
@ -628,6 +636,8 @@ namespace CodeImp.DoomBuilder.Windows
IDictionary<string, string> newFlags = (thinginfo == null || thinginfo.Flags.Count == 0) ? General.Map.Config.ThingFlags : thinginfo.Flags;
flags.UpdateCheckboxes(newFlags);
groupBox4.Text = (thinginfo == null) ? "Angle" : thinginfo.AngleText;
label3.Text = (thinginfo == null) ? "Flags value:" : thinginfo.FlagsValueText + ":";
General.Map.IsChanged = true;
if(OnValuesChanged != null) OnValuesChanged(this, EventArgs.Empty);