Game Configurations: added "requiresactivation" linedef property (defaults to "true").

Linedef Edit Form, UDMF: missing activation flags warning is now displayed only for linedef actions with "requiresactivation" property set in a game configuration.
Game configurations: fixed a couple of property names, added more enums & default values.
Updated BCC compiler to rev. 20140818r2.
This commit is contained in:
MaxED 2014-09-15 23:37:55 +00:00
parent 70db005f12
commit 33ec020dca
7 changed files with 1642 additions and 1438 deletions

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -45,11 +45,16 @@ polyobj
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "stair_speeds";
default = 16;
} }
arg2 arg2
{ {
title = "Target Angle"; title = "Target Angle";
type = 11;
enum = "polyobj_angles";
} }
} }
@ -65,11 +70,16 @@ polyobj
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "stair_speeds";
default = 16;
} }
arg2 arg2
{ {
title = "Target Angle"; title = "Target Angle";
type = 11;
enum = "polyobj_angles";
} }
} }
@ -85,16 +95,22 @@ polyobj
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "stair_speeds";
default = 16;
} }
arg2 arg2
{ {
title = "Movement Angle"; title = "Movement Angle";
type = 11;
enum = "angles";
} }
arg3 arg3
{ {
title = "Movement Length"; title = "Movement Distance";
default = 64;
} }
} }
@ -135,16 +151,22 @@ polyobj
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "stair_speeds";
default = 16;
} }
arg2 arg2
{ {
title = "Movement Angle"; title = "Movement Angle";
type = 11;
enum = "angles";
} }
arg3 arg3
{ {
title = "Movement Distance * 8"; title = "Movement Distance * 8";
default = 8;
} }
} }
@ -160,16 +182,24 @@ polyobj
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "stair_speeds";
default = 16;
} }
arg2 arg2
{ {
title = "Movement Angle"; title = "Movement Angle";
type = 11;
enum = "angles";
} }
arg3 arg3
{ {
title = "Delay"; title = "Delay (tics)";
type = 11;
enum = "delay_tics";
default = 105;
} }
} }
@ -185,21 +215,30 @@ polyobj
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "stair_speeds";
default = 16;
} }
arg2 arg2
{ {
title = "Movement Angle"; title = "Movement Angle";
type = 11;
enum = "angles";
} }
arg3 arg3
{ {
title = "Movement Length"; title = "Movement Distance";
default = 64;
} }
arg4 arg4
{ {
title = "Delay"; title = "Delay";
type = 11;
enum = "delay_tics";
default = 105;
} }
} }
@ -215,11 +254,16 @@ polyobj
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "stair_speeds";
default = 16;
} }
arg2 arg2
{ {
title = "Target Angle"; title = "Target Angle";
type = 11;
enum = "polyobj_angles";
} }
} }
@ -235,11 +279,16 @@ polyobj
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "stair_speeds";
default = 16;
} }
arg2 arg2
{ {
title = "Target Angle"; title = "Target Angle";
type = 11;
enum = "polyobj_angles";
} }
} }
@ -255,16 +304,22 @@ polyobj
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "stair_speeds";
default = 16;
} }
arg2 arg2
{ {
title = "Movement Angle"; title = "Movement Angle";
type = 11;
enum = "angles";
} }
arg3 arg3
{ {
title = "Movement Length"; title = "Movement Distance";
default = 64;
} }
} }
@ -280,16 +335,22 @@ polyobj
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "stair_speeds";
default = 16;
} }
arg2 arg2
{ {
title = "Movement Angle"; title = "Movement Angle";
type = 11;
enum = "angles";
} }
arg3 arg3
{ {
title = "Movement Distance * 8"; title = "Movement Distance * 8";
default = 8;
} }
} }
} }
@ -328,6 +389,9 @@ door
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "door_speeds";
default = 32;
} }
arg2 arg2
@ -350,6 +414,9 @@ door
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "door_speeds";
default = 32;
} }
arg2 arg2
@ -372,11 +439,17 @@ door
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "door_speeds";
default = 32;
} }
arg2 arg2
{ {
title = "Close Delay"; title = "Close Delay";
type = 11;
enum = "delay_tics";
default = 105;
} }
arg3 arg3
@ -399,11 +472,17 @@ door
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "door_speeds";
default = 32;
} }
arg2 arg2
{ {
title = "Close Delay"; title = "Close Delay";
type = 11;
enum = "delay_tics";
default = 105;
} }
arg3 arg3
@ -428,7 +507,7 @@ floor
20 20
{ {
title = "Floor Lower"; title = "Floor Lower By Value";
arg0 arg0
{ {
@ -439,6 +518,9 @@ floor
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "flat_speeds";
default = 16;
} }
arg2 arg2
@ -460,6 +542,9 @@ floor
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "flat_speeds";
default = 16;
} }
} }
@ -476,12 +561,15 @@ floor
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "flat_speeds";
default = 16;
} }
} }
23 23
{ {
title = "Floor Raise"; title = "Floor Raise By Value";
arg0 arg0
{ {
@ -492,6 +580,9 @@ floor
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "flat_speeds";
default = 16;
} }
arg2 arg2
@ -513,6 +604,9 @@ floor
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "flat_speeds";
default = 16;
} }
} }
@ -529,6 +623,9 @@ floor
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "flat_speeds";
default = 16;
} }
} }
@ -545,12 +642,22 @@ floor
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "flat_speeds";
default = 16;
} }
arg2 arg2
{ {
title = "Crush Damage"; title = "Crush Damage";
} }
arg3
{
title = "Crush Mode";
type = 11;
enum = "crush_mode";
}
} }
35 35
@ -566,6 +673,9 @@ floor
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "flat_speeds";
default = 16;
} }
arg2 arg2
@ -587,6 +697,9 @@ floor
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "flat_speeds";
default = 16;
} }
arg2 arg2
@ -651,6 +764,9 @@ floor
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "flat_speeds";
default = 16;
} }
arg2 arg2
@ -668,7 +784,7 @@ floor
95 95
{ {
title = "Floor and Ceiling Lower"; title = "Floor and Ceiling Lower by Value";
arg0 arg0
{ {
@ -679,6 +795,9 @@ floor
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "flat_speeds";
default = 16;
} }
arg2 arg2
@ -689,7 +808,7 @@ floor
96 96
{ {
title = "Floor and Ceiling Raise"; title = "Floor and Ceiling Raise by Value";
arg0 arg0
{ {
@ -700,6 +819,9 @@ floor
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "flat_speeds";
default = 16;
} }
arg2 arg2
@ -727,11 +849,15 @@ stairs
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "stair_speeds";
default = 4;
} }
arg2 arg2
{ {
title = "Step Amount"; title = "Step Height";
default = 16;
} }
arg3 arg3
@ -758,11 +884,15 @@ stairs
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "stair_speeds";
default = 4;
} }
arg2 arg2
{ {
title = "Step Amount"; title = "Step Height";
default = 16;
} }
arg3 arg3
@ -789,11 +919,15 @@ stairs
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "stair_speeds";
default = 4;
} }
arg2 arg2
{ {
title = "Step Amount"; title = "Step Height";
default = 16;
} }
arg3 arg3
@ -815,11 +949,15 @@ stairs
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "stair_speeds";
default = 4;
} }
arg2 arg2
{ {
title = "Step Amount"; title = "Step Height";
default = 16;
} }
arg3 arg3
@ -847,11 +985,14 @@ pillar
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "plat_speeds";
default = 16;
} }
arg2 arg2
{ {
title = "Movement Amount"; title = "Target Height (rel.)";
} }
} }
@ -868,6 +1009,9 @@ pillar
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "plat_speeds";
default = 16;
} }
arg2 arg2
@ -894,6 +1038,9 @@ pillar
arg1 arg1
{ {
title = "Movement Speed"; title = "Movement Speed";
type = 11;
enum = "plat_speeds";
default = 16;
} }
arg2 arg2
@ -1323,10 +1470,10 @@ thing
{ {
title = "Extreme"; title = "Extreme";
enum enum
{ {
0 = "No"; 0 = "No";
1 = "Yes"; 1 = "Yes";
} }
} }
arg2 arg2
{ {

View file

@ -519,7 +519,7 @@ zdoom
} }
arg3 arg3
{ {
title = "Target X Pos"; title = "Target Y Pos";
} }
} }
89 89
@ -539,7 +539,7 @@ zdoom
} }
arg3 arg3
{ {
title = "Target X Pos"; title = "Target Y Pos";
} }
} }
} }
@ -551,6 +551,7 @@ zdoom
9 9
{ {
title = "Line Horizon"; title = "Line Horizon";
requiresactivation = false;
} }
121 // Line Identification 121 // Line Identification
{ {
@ -2887,6 +2888,7 @@ zdoom
160 160
{ {
title = "Sector 3D Floor (OpenGL only)"; title = "Sector 3D Floor (OpenGL only)";
requiresactivation = false;
arg0 arg0
{ {
@ -2976,7 +2978,7 @@ zdoom
} }
185 185
{ {
title = "Sector Rotate Alignment"; title = "Sector Rotate Flat";
arg0 arg0
{ {
@ -2986,10 +2988,12 @@ zdoom
arg1 arg1
{ {
title = "Floor Angle"; title = "Floor Angle";
type = 8;
} }
arg2 arg2
{ {
title = "Ceiling Angle"; title = "Ceiling Angle";
type = 8;
} }
} }
186 186

View file

@ -493,6 +493,19 @@ enums
224 = "224: Southest"; 224 = "224: Southest";
} }
polyobj_angles
{
0 = "0: East";
32 = "32: Northeast";
64 = "64: North";
96 = "96: Northwest";
128 = "128: West";
160 = "160: Southwest";
192 = "192: South";
224 = "224: Southest";
255 = "255: Constant Rotation";
}
frontback frontback
{ {
0 = "Front"; 0 = "Front";
@ -580,6 +593,13 @@ enums
16 = "16: Fast"; 16 = "16: Fast";
32 = "32: Turbo"; 32 = "32: Turbo";
} }
crush_mode
{
0 = "0: Game default";
1 = "1: Doom mode";
2 = "2: Hexen mode";
}
generic_floor_target generic_floor_target
{ {
@ -659,6 +679,21 @@ enums
6 = "6: Orange Team"; 6 = "6: Orange Team";
7 = "7: Purple Team"; 7 = "7: Purple Team";
} }
delay_tics
{
0 = "0: No delay";
35 = "35: 1 Second";
70 = "70: 2 Seconds";
105 = "105: 3 Seconds";
140 = "140: 4 Seconds";
175 = "175: 5 Seconds";
210 = "210: 6 Seconds";
245 = "245: 7 Seconds";
280 = "280: 8 Seconds";
315 = "315: 9 Seconds";
350 = "350: 10 Seconds";
}
} }
enums_doom enums_doom

View file

@ -35,14 +35,15 @@ namespace CodeImp.DoomBuilder.Config
#region ================== Variables #region ================== Variables
// Properties // Properties
private int index; private readonly int index;
private string prefix; private readonly string prefix;
private string category; private readonly string category;
private string name; private readonly string name;
private string title; private readonly string title;
private ArgumentInfo[] args; private readonly ArgumentInfo[] args;
private bool isgeneralized; private readonly bool isgeneralized;
private bool isknown; private readonly bool isknown;
private readonly bool requiresactivation; //mxd
#endregion #endregion
@ -56,6 +57,7 @@ namespace CodeImp.DoomBuilder.Config
public bool IsGeneralized { get { return isgeneralized; } } public bool IsGeneralized { get { return isgeneralized; } }
public bool IsKnown { get { return isknown; } } public bool IsKnown { get { return isknown; } }
public bool IsNull { get { return (index == 0); } } public bool IsNull { get { return (index == 0); } }
public bool RequiresActivation { get { return requiresactivation; } } //mxd
public ArgumentInfo[] Args { get { return args; } } public ArgumentInfo[] Args { get { return args; } }
#endregion #endregion
@ -77,6 +79,7 @@ namespace CodeImp.DoomBuilder.Config
// Read settings // Read settings
this.name = cfg.ReadSetting(actionsetting + ".title", "Unnamed"); this.name = cfg.ReadSetting(actionsetting + ".title", "Unnamed");
this.prefix = cfg.ReadSetting(actionsetting + ".prefix", ""); this.prefix = cfg.ReadSetting(actionsetting + ".prefix", "");
this.requiresactivation = cfg.ReadSetting(actionsetting + ".requiresactivation", true); //mxd
this.title = this.prefix + " " + this.name; this.title = this.prefix + " " + this.name;
this.title = this.title.Trim(); this.title = this.title.Trim();
@ -94,6 +97,7 @@ namespace CodeImp.DoomBuilder.Config
this.index = index; this.index = index;
this.isgeneralized = isgeneralized; this.isgeneralized = isgeneralized;
this.isknown = isknown; this.isknown = isknown;
this.requiresactivation = true; //mxd. Unused, set for consistency sake.
this.title = title; this.title = title;
this.args = new ArgumentInfo[Linedef.NUM_ARGS]; this.args = new ArgumentInfo[Linedef.NUM_ARGS];
for(int i = 0; i < Linedef.NUM_ARGS; i++) for(int i = 0; i < Linedef.NUM_ARGS; i++)

View file

@ -188,7 +188,6 @@ namespace CodeImp.DoomBuilder.Windows
} }
// Fill actions list // Fill actions list
action.GeneralizedCategories = General.Map.Config.GenActionCategories;
action.AddInfo(General.Map.Config.SortedLinedefActions.ToArray()); action.AddInfo(General.Map.Config.SortedLinedefActions.ToArray());
// Fill activations list // Fill activations list
@ -674,7 +673,9 @@ namespace CodeImp.DoomBuilder.Windows
private void CheckActivationFlagsRequired() private void CheckActivationFlagsRequired()
{ {
// Display a warning if we have an action and no activation flags // Display a warning if we have an action and no activation flags
if(action.Value != 0) if(action.Value != 0
&& General.Map.Config.LinedefActions.ContainsKey(action.Value)
&& General.Map.Config.LinedefActions[action.Value].RequiresActivation)
{ {
bool haveactivationflag = false; bool haveactivationflag = false;
foreach(CheckBox c in udmfactivates.Checkboxes) foreach(CheckBox c in udmfactivates.Checkboxes)
@ -686,7 +687,6 @@ namespace CodeImp.DoomBuilder.Windows
} }
} }
//TODO: check if action actually requires activation :)
missingactivation.Visible = !haveactivationflag; missingactivation.Visible = !haveactivationflag;
activationGroup.ForeColor = (!haveactivationflag ? Color.DarkRed : SystemColors.ControlText); activationGroup.ForeColor = (!haveactivationflag ? Color.DarkRed : SystemColors.ControlText);
} }