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.

View file

@ -684,6 +684,15 @@ enum PTROP_UNSAFETARGET = 0x1;
enum PTROP_UNSAFEMASTER = 0x2;
enum PTROP_NOSAFEGUARDS = PTROP_UNSAFETARGET | PTROP_UNSAFEMASTER;
enum {
ARMORINFO_CLASSNAME,
ARMORINFO_SAVEAMOUNT,
ARMORINFO_SAVEPERCENT,
ARMORINFO_MAXABSORB,
ARMORINFO_MAXFULLABSORB,
ARMORINFO_ACTUALSAVEAMOUNT,
};
enum SPAC_NONE = 0x0;
enum SPAC_CROSS = 0x1;
enum SPAC_USE = 0x2;
@ -1230,6 +1239,7 @@ int GetLineActivation( int ) -= 77;
int GetActorPowerupTics( int, str ) -= 78;
void ChangeActorAngle( int, int, bool = false ) -= 79;
void ChangeActorPitch( int, int, bool = false ) -= 80;
int GetArmorInfo( int ) -= 81;
bool ResetMap() -= 100;
bool PlayerIsSpectator( int ) -= 101;
int ConsolePlayerNumber() -= 102;
@ -1245,12 +1255,16 @@ str GetDBEntryString( str, str ) -= 111;
void IncrementDBEntry( str, str, int ) -= 112;
bool PlayerIsLoggedIn( int ) -= 113;
str GetPlayerAccountName( int ) -= 114;
int QuerySortedDBEntries( str, int, int, bool ) -= 115;
int GetDBResultSize( int ) -= 116;
void ClearDBResultHandle( int ) -= 117;
str GetDBResultEntryNameString( int, int ) -= 118;
str GetDBResultEntryValueString( int, int ) -= 119;
int GetDBEntryRank( str, str, bool ) -= 120;
int SortDBEntries( str, int, int, bool ) -= 115;
int CountDBResults( int ) -= 116;
void FreeDBResults( int ) -= 117;
str GetDBResultKeyString( int, int ) -= 118;
str GetDBResultValueString( int, int ) -= 119;
int GetDBResultValue( int, int ) -= 120;
int GetDBEntryRank( str, str, bool ) -= 121;
int RequestScriptPuke( int, int = 0, int = 0, int = 0 ) -= 122;
int GetTeamScore( int ) -= 19620;
void SetTeamScore( int, int ) -= 19621;
// Dedicated functions
// Tail format: += <opcode> , <is-latent>

View file

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

View file

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

View file

@ -493,6 +493,19 @@ enums
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
{
0 = "Front";
@ -581,6 +594,13 @@ enums
32 = "32: Turbo";
}
crush_mode
{
0 = "0: Game default";
1 = "1: Doom mode";
2 = "2: Hexen mode";
}
generic_floor_target
{
0 = "Relative offset";
@ -659,6 +679,21 @@ enums
6 = "6: Orange 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

View file

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

View file

@ -188,7 +188,6 @@ namespace CodeImp.DoomBuilder.Windows
}
// Fill actions list
action.GeneralizedCategories = General.Map.Config.GenActionCategories;
action.AddInfo(General.Map.Config.SortedLinedefActions.ToArray());
// Fill activations list
@ -674,7 +673,9 @@ namespace CodeImp.DoomBuilder.Windows
private void CheckActivationFlagsRequired()
{
// 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;
foreach(CheckBox c in udmfactivates.Checkboxes)
@ -686,7 +687,6 @@ namespace CodeImp.DoomBuilder.Windows
}
}
//TODO: check if action actually requires activation :)
missingactivation.Visible = !haveactivationflag;
activationGroup.ForeColor = (!haveactivationflag ? Color.DarkRed : SystemColors.ControlText);
}