diff --git a/acc.c b/acc.c index 78d2e32..9d2b756 100644 --- a/acc.c +++ b/acc.c @@ -1,318 +1,318 @@ - -//************************************************************************** -//** -//** acc.c -//** -//************************************************************************** - -// HEADER FILES ------------------------------------------------------------ - -#include -#include -#include -#include -#include "common.h" -#include "token.h" -#include "error.h" -#include "symbol.h" -#include "misc.h" -#include "pcode.h" -#include "parse.h" -#include "strlist.h" - -// MACROS ------------------------------------------------------------------ - -#define VERSION_TEXT "1.58" -#define COPYRIGHT_YEARS_TEXT "1995" - -// TYPES ------------------------------------------------------------------- - -// EXTERNAL FUNCTION PROTOTYPES -------------------------------------------- - -// PUBLIC FUNCTION PROTOTYPES ---------------------------------------------- - -// PRIVATE FUNCTION PROTOTYPES --------------------------------------------- - -static void Init(void); -static void DisplayBanner(void); -static void DisplayUsage(void); -static void OpenDebugFile(char *name); -static void ProcessArgs(void); - -// EXTERNAL DATA DECLARATIONS ---------------------------------------------- - -// PUBLIC DATA DEFINITIONS ------------------------------------------------- - -boolean acs_BigEndianHost; -boolean acs_VerboseMode; -boolean acs_DebugMode; -FILE *acs_DebugFile; -char acs_SourceFileName[MAX_FILE_NAME_LENGTH]; - -// PRIVATE DATA DEFINITIONS ------------------------------------------------ - -static int ArgCount; -static char **ArgVector; -static char ObjectFileName[MAX_FILE_NAME_LENGTH]; - -// CODE -------------------------------------------------------------------- - -//========================================================================== -// -// main -// -//========================================================================== - -int main(int argc, char **argv) -{ - int i; - - ArgCount = argc; - ArgVector = argv; - DisplayBanner(); - Init(); - TK_OpenSource(acs_SourceFileName); - PC_OpenObject(ObjectFileName, DEFAULT_OBJECT_SIZE, 0); - PA_Parse(); - PC_CloseObject(); - TK_CloseSource(); - - MS_Message(MSG_NORMAL, "\n\"%s\":\n %d line%s (%d included)\n", - acs_SourceFileName, tk_Line, tk_Line == 1 ? "" : "s", - tk_IncludedLines); - MS_Message(MSG_NORMAL, " %d function%s\n %d script%s\n", - pc_FunctionCount, pc_FunctionCount == 1 ? "" : "s", - pa_ScriptCount, pa_ScriptCount == 1 ? "" : "s"); - for (i = 0; pa_TypedScriptCounts[i].TypeName; i++) - { - if (pa_TypedScriptCounts[i].TypeCount > 0) - { - MS_Message(MSG_NORMAL, "%5d %s\n", - pa_TypedScriptCounts[i].TypeCount, - pa_TypedScriptCounts[i].TypeName); - } - } - MS_Message(MSG_NORMAL, " %d global variable%s\n" - " %d world variable%s\n" - " %d map variable%s\n" - " %d global array%s\n" - " %d world array%s\n", - pa_GlobalVarCount, pa_GlobalVarCount == 1 ? "" : "s", - pa_WorldVarCount, pa_WorldVarCount == 1 ? "" : "s", - pa_MapVarCount, pa_MapVarCount == 1 ? "" : "s", - pa_GlobalArrayCount, pa_GlobalArrayCount == 1 ? "" : "s", - pa_WorldArrayCount, pa_WorldArrayCount == 1 ? "" : "s" - ); - MS_Message(MSG_NORMAL, " object \"%s\": %d bytes\n", - ObjectFileName, pc_Address); - ERR_RemoveErrorFile(); - return 0; -} - -//========================================================================== -// -// DisplayBanner -// -//========================================================================== - -static void DisplayBanner(void) -{ - fprintf(stderr, "\nOriginal ACC Version 1.10 by Ben Gokey\n"); - fprintf(stderr, "Copyright (c) "COPYRIGHT_YEARS_TEXT - " Raven Software, Corp.\n\n"); - fprintf(stderr, "This is version "VERSION_TEXT" ("__DATE__")\n"); - fprintf(stderr, "This software is not supported by Raven Software or Activision\n"); - fprintf(stderr, "ZDoom changes and language extensions by Randy Heit\n"); - fprintf(stderr, "Further changes by Brad Carney\n"); - fprintf(stderr, "Even more changes by James Bentler\n"); - fprintf(stderr, "Some additions by Michael \"Necromage\" Weber\n"); - fprintf(stderr, "Error reporting improvements and limit expansion by Ty Halderman\n"); - fprintf(stderr, "Include paths added by Pascal vd Heiden\n"); -} - -//========================================================================== -// -// Init -// -//========================================================================== - -static void Init(void) -{ - short endianTest = 1; - - if (*(char *)&endianTest) - acs_BigEndianHost = NO; - else - acs_BigEndianHost = YES; - acs_VerboseMode = YES; - acs_DebugMode = NO; - acs_DebugFile = NULL; - TK_Init(); - SY_Init(); - STR_Init(); - ProcessArgs(); - MS_Message(MSG_NORMAL, "Host byte order: %s endian\n", - acs_BigEndianHost ? "BIG" : "LITTLE"); -} - -//========================================================================== -// -// ProcessArgs -// -// Pascal 12/11/08 -// Allowing space after options (option parameter as the next argument) -// -//========================================================================== - -static void ProcessArgs(void) -{ - int i = 1; - int count = 0; - char *text; - char option; - - while(i < ArgCount) - { - text = ArgVector[i]; - - if(*text == '-') - { - // Option - text++; - if(*text == 0) - { - DisplayUsage(); - } - option = toupper(*text++); - switch(option) - { - case 'I': - if((i + 1) < ArgCount) - { - TK_AddIncludePath(ArgVector[++i]); - } - break; - - case 'D': - acs_DebugMode = YES; - acs_VerboseMode = YES; - if(*text != 0) - { - OpenDebugFile(text); - } - break; - - case 'H': - pc_NoShrink = TRUE; - pc_HexenCase = TRUE; - pc_EnforceHexen = toupper(*text) != 'H'; - pc_WarnNotHexen = toupper(*text) == 'H'; - break; - - default: - DisplayUsage(); - break; - } - } - else - { - // Input/output file - count++; - switch(count) - { - case 1: - strcpy(acs_SourceFileName, text); - MS_SuggestFileExt(acs_SourceFileName, ".acs"); - break; - - case 2: - strcpy(ObjectFileName, text); - MS_SuggestFileExt(ObjectFileName, ".o"); - break; - - default: - DisplayUsage(); - break; - } - } - - // Next arg - i++; - } - - if(count == 0) - { - DisplayUsage(); - } - - TK_AddIncludePath("."); -#ifdef unix - TK_AddIncludePath("/usr/local/share/acc/"); -#endif - TK_AddProgramIncludePath(ArgVector[0]); - - if(count == 1) - { - strcpy(ObjectFileName, acs_SourceFileName); - MS_StripFileExt(ObjectFileName); - MS_SuggestFileExt(ObjectFileName, ".o"); - } -} - -//========================================================================== -// -// DisplayUsage -// -//========================================================================== - -static void DisplayUsage(void) -{ - puts("\nUsage: ACC [options] source[.acs] [object[.o]]\n"); - puts("-i [path] Add include path to find include files"); - puts("-d[file] Output debugging information"); - puts("-h Create pcode compatible with Hexen and old ZDooms"); - puts("-hh Like -h, but use of new features is only a warning"); - exit(1); -} - -//========================================================================== -// -// OpenDebugFile -// -//========================================================================== - -static void OpenDebugFile(char *name) -{ - if((acs_DebugFile = fopen(name, "w")) == NULL) - { - ERR_Exit(ERR_CANT_OPEN_DBGFILE, NO, "File: \"%s\".", name); - } -} - -//========================================================================== -// -// OptionExists -// -//========================================================================== - -/* -static boolean OptionExists(char *name) -{ - int i; - char *arg; - - for(i = 1; i < ArgCount; i++) - { - arg = ArgVector[i]; - if(*arg == '-') - { - arg++; - if(MS_StrCmp(name, arg) == 0) - { - return YES; - } - } - } - return NO; -} -*/ + +//************************************************************************** +//** +//** acc.c +//** +//************************************************************************** + +// HEADER FILES ------------------------------------------------------------ + +#include +#include +#include +#include +#include "common.h" +#include "token.h" +#include "error.h" +#include "symbol.h" +#include "misc.h" +#include "pcode.h" +#include "parse.h" +#include "strlist.h" + +// MACROS ------------------------------------------------------------------ + +#define VERSION_TEXT "1.58" +#define COPYRIGHT_YEARS_TEXT "1995" + +// TYPES ------------------------------------------------------------------- + +// EXTERNAL FUNCTION PROTOTYPES -------------------------------------------- + +// PUBLIC FUNCTION PROTOTYPES ---------------------------------------------- + +// PRIVATE FUNCTION PROTOTYPES --------------------------------------------- + +static void Init(void); +static void DisplayBanner(void); +static void DisplayUsage(void); +static void OpenDebugFile(char *name); +static void ProcessArgs(void); + +// EXTERNAL DATA DECLARATIONS ---------------------------------------------- + +// PUBLIC DATA DEFINITIONS ------------------------------------------------- + +boolean acs_BigEndianHost; +boolean acs_VerboseMode; +boolean acs_DebugMode; +FILE *acs_DebugFile; +char acs_SourceFileName[MAX_FILE_NAME_LENGTH]; + +// PRIVATE DATA DEFINITIONS ------------------------------------------------ + +static int ArgCount; +static char **ArgVector; +static char ObjectFileName[MAX_FILE_NAME_LENGTH]; + +// CODE -------------------------------------------------------------------- + +//========================================================================== +// +// main +// +//========================================================================== + +int main(int argc, char **argv) +{ + int i; + + ArgCount = argc; + ArgVector = argv; + DisplayBanner(); + Init(); + TK_OpenSource(acs_SourceFileName); + PC_OpenObject(ObjectFileName, DEFAULT_OBJECT_SIZE, 0); + PA_Parse(); + PC_CloseObject(); + TK_CloseSource(); + + MS_Message(MSG_NORMAL, "\n\"%s\":\n %d line%s (%d included)\n", + acs_SourceFileName, tk_Line, tk_Line == 1 ? "" : "s", + tk_IncludedLines); + MS_Message(MSG_NORMAL, " %d function%s\n %d script%s\n", + pc_FunctionCount, pc_FunctionCount == 1 ? "" : "s", + pa_ScriptCount, pa_ScriptCount == 1 ? "" : "s"); + for (i = 0; pa_TypedScriptCounts[i].TypeName; i++) + { + if (pa_TypedScriptCounts[i].TypeCount > 0) + { + MS_Message(MSG_NORMAL, "%5d %s\n", + pa_TypedScriptCounts[i].TypeCount, + pa_TypedScriptCounts[i].TypeName); + } + } + MS_Message(MSG_NORMAL, " %d global variable%s\n" + " %d world variable%s\n" + " %d map variable%s\n" + " %d global array%s\n" + " %d world array%s\n", + pa_GlobalVarCount, pa_GlobalVarCount == 1 ? "" : "s", + pa_WorldVarCount, pa_WorldVarCount == 1 ? "" : "s", + pa_MapVarCount, pa_MapVarCount == 1 ? "" : "s", + pa_GlobalArrayCount, pa_GlobalArrayCount == 1 ? "" : "s", + pa_WorldArrayCount, pa_WorldArrayCount == 1 ? "" : "s" + ); + MS_Message(MSG_NORMAL, " object \"%s\": %d bytes\n", + ObjectFileName, pc_Address); + ERR_RemoveErrorFile(); + return 0; +} + +//========================================================================== +// +// DisplayBanner +// +//========================================================================== + +static void DisplayBanner(void) +{ + fprintf(stderr, "\nOriginal ACC Version 1.10 by Ben Gokey\n"); + fprintf(stderr, "Copyright (c) "COPYRIGHT_YEARS_TEXT + " Raven Software, Corp.\n\n"); + fprintf(stderr, "This is version "VERSION_TEXT" ("__DATE__")\n"); + fprintf(stderr, "This software is not supported by Raven Software or Activision\n"); + fprintf(stderr, "ZDoom changes and language extensions by Randy Heit\n"); + fprintf(stderr, "Further changes by Brad Carney\n"); + fprintf(stderr, "Even more changes by James Bentler\n"); + fprintf(stderr, "Some additions by Michael \"Necromage\" Weber\n"); + fprintf(stderr, "Error reporting improvements and limit expansion by Ty Halderman\n"); + fprintf(stderr, "Include paths added by Pascal vd Heiden\n"); +} + +//========================================================================== +// +// Init +// +//========================================================================== + +static void Init(void) +{ + short endianTest = 1; + + if (*(char *)&endianTest) + acs_BigEndianHost = NO; + else + acs_BigEndianHost = YES; + acs_VerboseMode = YES; + acs_DebugMode = NO; + acs_DebugFile = NULL; + TK_Init(); + SY_Init(); + STR_Init(); + ProcessArgs(); + MS_Message(MSG_NORMAL, "Host byte order: %s endian\n", + acs_BigEndianHost ? "BIG" : "LITTLE"); +} + +//========================================================================== +// +// ProcessArgs +// +// Pascal 12/11/08 +// Allowing space after options (option parameter as the next argument) +// +//========================================================================== + +static void ProcessArgs(void) +{ + int i = 1; + int count = 0; + char *text; + char option; + + while(i < ArgCount) + { + text = ArgVector[i]; + + if(*text == '-') + { + // Option + text++; + if(*text == 0) + { + DisplayUsage(); + } + option = toupper(*text++); + switch(option) + { + case 'I': + if((i + 1) < ArgCount) + { + TK_AddIncludePath(ArgVector[++i]); + } + break; + + case 'D': + acs_DebugMode = YES; + acs_VerboseMode = YES; + if(*text != 0) + { + OpenDebugFile(text); + } + break; + + case 'H': + pc_NoShrink = TRUE; + pc_HexenCase = TRUE; + pc_EnforceHexen = toupper(*text) != 'H'; + pc_WarnNotHexen = toupper(*text) == 'H'; + break; + + default: + DisplayUsage(); + break; + } + } + else + { + // Input/output file + count++; + switch(count) + { + case 1: + strcpy(acs_SourceFileName, text); + MS_SuggestFileExt(acs_SourceFileName, ".acs"); + break; + + case 2: + strcpy(ObjectFileName, text); + MS_SuggestFileExt(ObjectFileName, ".o"); + break; + + default: + DisplayUsage(); + break; + } + } + + // Next arg + i++; + } + + if(count == 0) + { + DisplayUsage(); + } + + TK_AddIncludePath("."); +#ifdef unix + TK_AddIncludePath("/usr/local/share/acc/"); +#endif + TK_AddProgramIncludePath(ArgVector[0]); + + if(count == 1) + { + strcpy(ObjectFileName, acs_SourceFileName); + MS_StripFileExt(ObjectFileName); + MS_SuggestFileExt(ObjectFileName, ".o"); + } +} + +//========================================================================== +// +// DisplayUsage +// +//========================================================================== + +static void DisplayUsage(void) +{ + puts("\nUsage: ACC [options] source[.acs] [object[.o]]\n"); + puts("-i [path] Add include path to find include files"); + puts("-d[file] Output debugging information"); + puts("-h Create pcode compatible with Hexen and old ZDooms"); + puts("-hh Like -h, but use of new features is only a warning"); + exit(1); +} + +//========================================================================== +// +// OpenDebugFile +// +//========================================================================== + +static void OpenDebugFile(char *name) +{ + if((acs_DebugFile = fopen(name, "w")) == NULL) + { + ERR_Exit(ERR_CANT_OPEN_DBGFILE, NO, "File: \"%s\".", name); + } +} + +//========================================================================== +// +// OptionExists +// +//========================================================================== + +/* +static boolean OptionExists(char *name) +{ + int i; + char *arg; + + for(i = 1; i < ArgCount; i++) + { + arg = ArgVector[i]; + if(*arg == '-') + { + arg++; + if(MS_StrCmp(name, arg) == 0) + { + return YES; + } + } + } + return NO; +} +*/ diff --git a/zdefs.acs b/zdefs.acs index 3f24b61..e6422e8 100644 --- a/zdefs.acs +++ b/zdefs.acs @@ -1,1150 +1,1151 @@ -//************************************************************************** -//** -//** zdefs.acs -//** -//** Common definitions for use when compiling ACS scripts for ZDoom -//** -//************************************************************************** - -#define TRUE 1 -#define FALSE 0 -#define ON 1 -#define OFF 0 -#define YES 1 -#define NO 0 - -#define LINE_FRONT 0 -#define LINE_BACK 1 - -#define SIDE_FRONT 0 -#define SIDE_BACK 1 - -#define TEXTURE_TOP 0 -#define TEXTURE_MIDDLE 1 -#define TEXTURE_BOTTOM 2 - -// same information as combinable bit flags -#define TEXFLAG_TOP 1 -#define TEXFLAG_MIDDLE 2 -#define TEXFLAG_BOTTOM 4 -#define TEXFLAG_ADDOFFSET 8 - -#define GAME_SINGLE_PLAYER 0 -#define GAME_NET_COOPERATIVE 1 -#define GAME_NET_DEATHMATCH 2 -#define GAME_TITLE_MAP 3 - -// Classes are only useful with Hexen -#define CLASS_FIGHTER 0 -#define CLASS_CLERIC 1 -#define CLASS_MAGE 2 - -#define SKILL_VERY_EASY 0 -#define SKILL_EASY 1 -#define SKILL_NORMAL 2 -#define SKILL_HARD 3 -#define SKILL_VERY_HARD 4 - -#define BLOCK_NOTHING 0 -#define BLOCK_CREATURES 1 -#define BLOCK_EVERYTHING 2 -#define BLOCK_RAILING 3 -#define BLOCK_PLAYERS 4 - -#define SCROLL 0 -#define CARRY 1 -#define SCROLL_AND_CARRY 2 - -// Means-of-death for Sector_SetDamage -------------------------------------- - -#define MOD_UNKNOWN 0 -#define MOD_ROCKET 5 -#define MOD_R_SPLASH 6 -#define MOD_PLASMARIFLE 7 -#define MOD_BFG_BOOM 8 -#define MOD_BFG_SPLASH 9 -#define MOD_CHAINSAW 10 -#define MOD_SSHOTGUN 11 -#define MOD_WATER 12 -#define MOD_SLIME 13 -#define MOD_LAVA 14 -#define MOD_CRUSH 15 -#define MOD_TELEFRAG 16 -#define MOD_FALLING 17 -#define MOD_SUICIDE 18 -#define MOD_BARREL 19 -#define MOD_EXIT 20 -#define MOD_SPLASH 21 -#define MOD_HIT 22 -#define MOD_RAILGUN 23 -#define MOD_ICE 24 -#define MOD_DISINTEGRATE 25 -#define MOD_POISON 26 -#define MOD_ELECTRIC 27 - -// Return values for PlayMovie ---------------------------------------------- - -#define MOVIE_Played 0 -#define MOVIE_Played_NoVideo 1 -#define MOVIE_Played_Aborted 2 -#define MOVIE_Failed -1 - - -// Player properties -------------------------------------------------------- - -#define PROP_FROZEN 0 -#define PROP_NOTARGET 1 -#define PROP_INSTANTWEAPONSWITCH 2 -#define PROP_FLY 3 -#define PROP_TOTALLYFROZEN 4 -#define PROP_BUDDHA 16 - -// The following properties correspond to powers given by certain items -#define PROP_INVULNERABILITY 5 -#define PROP_STRENGTH 6 -#define PROP_INVISIBILITY 7 -#define PROP_RADIATIONSUIT 8 -#define PROP_ALLMAP 9 -#define PROP_INFRARED 10 -#define PROP_WEAPONLEVEL2 11 -#define PROP_FLIGHT 12 -#define PROP_SPEED 15 - -// Player input ------------------------------------------------------------- - -// These are the original inputs sent by the player. -#define INPUT_OLDBUTTONS 0 -#define INPUT_BUTTONS 1 -#define INPUT_PITCH 2 -#define INPUT_YAW 3 -#define INPUT_ROLL 4 -#define INPUT_FORWARDMOVE 5 -#define INPUT_SIDEMOVE 6 -#define INPUT_UPMOVE 7 - -// These are the inputs, as modified by P_PlayerThink(). -// Most of the time, these will match the original inputs, but -// they can be different if a player is frozen or using a -// chainsaw. -#define MODINPUT_OLDBUTTONS 8 -#define MODINPUT_BUTTONS 9 -#define MODINPUT_PITCH 10 -#define MODINPUT_YAW 11 -#define MODINPUT_ROLL 12 -#define MODINPUT_FORWARDMOVE 13 -#define MODINPUT_SIDEMOVE 14 -#define MODINPUT_UPMOVE 15 - -// Player buttons ----------------------------------------------------------- - -#define BT_ATTACK 1 -#define BT_USE 2 -#define BT_JUMP 4 -#define BT_CROUCH 8 -#define BT_TURN180 16 -#define BT_ALTATTACK 32 -#define BT_RELOAD 64 -#define BT_ZOOM 128 - -#define BT_SPEED 256 -#define BT_STRAFE 512 - -#define BT_MOVERIGHT 1024 -#define BT_MOVELEFT 2048 -#define BT_BACK 4096 -#define BT_FORWARD 8192 -#define BT_RIGHT 16384 -#define BT_LEFT 32768 -#define BT_LOOKUP 65536 -#define BT_LOOKDOWN 131072 -#define BT_MOVEUP 262144 -#define BT_MOVEDOWN 524288 -#define BT_SHOWSCORES 1048576 - -// Do whatever you want with these. -#define BT_USER1 2097152 -#define BT_USER2 4194304 -#define BT_USER3 8388608 -#define BT_USER4 16777216 - -// Text colors -------------------------------------------------------------- - -#define CR_UNTRANSLATED -1 -#define CR_BRICK 0 -#define CR_TAN 1 -#define CR_GRAY 2 -#define CR_GREY 2 -#define CR_GREEN 3 -#define CR_BROWN 4 -#define CR_GOLD 5 -#define CR_RED 6 -#define CR_BLUE 7 -#define CR_ORANGE 8 -#define CR_WHITE 9 -#define CR_YELLOW 10 -#define CR_BLACK 12 -#define CR_LIGHTBLUE 13 -#define CR_CREAM 14 -#define CR_OLIVE 15 -#define CR_DARKGREEN 16 -#define CR_DARKRED 17 -#define CR_DARKBROWN 18 -#define CR_PURPLE 19 -#define CR_DARKGRAY 20 -#define CR_DARKGREY 20 -#define CR_CYAN 21 -#define CR_ICE 22 -#define CR_FIRE 23 -#define CR_SAPPHIRE 24 -#define CR_TEAL 25 - -// HUD message types -------------------------------------------------------- - -#define HUDMSG_PLAIN 0 -#define HUDMSG_FADEOUT 1 -#define HUDMSG_TYPEON 2 -#define HUDMSG_FADEINOUT 3 - -// OR this with one of the above to log the hudmessage to the console. -// i.e. instead of HUDMSG_PLAIN, you can use HUDMSG_PLAIN | HUDMSG_LOG -#define HUDMSG_LOG 0x80000000 - -// OR this with one of the above if the color you passed is a string -// instead of one of the CR_ constants. -#define HUDMSG_COLORSTRING 0x40000000 - -// OR this with one of the above to use additive blending when drawing the -// HUD message. -#define HUDMSG_ADDBLEND 0x20000000 - -// OR this with one of the above to use the extra alpha parameter -#define HUDMSG_ALPHA 0x10000000 - -// Or this with one of the above to not wrap lines -#define HUDMSG_NOWRAP 0x08000000 - -// HUD message layers; these are not flags -#define HUDMSG_LAYER_OVERHUD 0x00000000 -#define HUDMSG_LAYER_UNDERHUD 0x00001000 -#define HUDMSG_LAYER_OVERMAP 0x00002000 - -// HUD message visibility flags -#define HUDMSG_NOTWITH3DVIEW 0x00010000 -#define HUDMSG_NOTWITHFULLMAP 0x00020000 -#define HUDMSG_NOTWITHOVERLAYMAP 0x00040000 - - -// "Scripted" Marine weapon types ------------------------------------------- - -#define MARINEWEAPON_Dummy 0 -#define MARINEWEAPON_Fist 1 -#define MARINEWEAPON_BerserkFist 2 -#define MARINEWEAPON_Chainsaw 3 -#define MARINEWEAPON_Pistol 4 -#define MARINEWEAPON_Shotgun 5 -#define MARINEWEAPON_SuperShotgun 6 -#define MARINEWEAPON_Chaingun 7 -#define MARINEWEAPON_RocketLauncher 8 -#define MARINEWEAPON_PlasmaRifle 9 -#define MARINEWEAPON_Railgun 10 -#define MARINEWEAPON_BFG 11 - -// Actor properties you can get/set ----------------------------------------- - -#define APROP_Health 0 -#define APROP_Speed 1 -#define APROP_Damage 2 -#define APROP_Alpha 3 -#define APROP_RenderStyle 4 -#define APROP_SeeSound 5 // Sounds can only be set, not gotten -#define APROP_AttackSound 6 -#define APROP_PainSound 7 -#define APROP_DeathSound 8 -#define APROP_ActiveSound 9 -#define APROP_Ambush 10 -#define APROP_Invulnerable 11 -#define APROP_JumpZ 12 -#define APROP_ChaseGoal 13 -#define APROP_Frightened 14 -#define APROP_Gravity 15 -#define APROP_Friendly 16 -#define APROP_SpawnHealth 17 -#define APROP_Dropped 18 -#define APROP_Notarget 19 -#define APROP_Species 20 -#define APROP_Nametag 21 -#define APROP_Score 22 -#define APROP_Notrigger 23 -#define APROP_DamageFactor 24 -#define APROP_MasterTID 25 -#define APROP_TargetTID 26 -#define APROP_TracerTID 27 -#define APROP_Waterlevel 28 -#define APROP_ScaleX 29 -#define APROP_ScaleY 30 -#define APROP_Dormant 31 -#define APROP_Mass 32 -#define APROP_Accuracy 33 -#define APROP_Stamina 34 -#define APROP_Height 35 -#define APROP_Radius 36 -#define APROP_Reactiontime 37 -#define APROP_MeleeRange 38 -#define APROP_ViewHeight 39 -#define APROP_AttackZOffset 40 -#define APROP_StencilColor 41 -#define APROP_Friction 42 -#define APROP_DamageMultiplier 43 -#define APROP_MaxStepHeight 44 -#define APROP_MaxDropOffHeight 45 -#define APROP_DamageType 46 - -// New to Eternity -#define APROP_Counter0 100 -#define APROP_Counter1 101 -#define APROP_Counter2 102 -#define APROP_Counter3 103 -#define APROP_Counter4 104 -#define APROP_Counter5 105 -#define APROP_Counter6 106 -#define APROP_Counter7 107 - -// Render Styles ------------------------------------------------------------ - -#define STYLE_None 0 // Do not draw -#define STYLE_Normal 1 // Normal; just copy the image to the screen -#define STYLE_Fuzzy 2 // Draw silhouette using "fuzz" effect -#define STYLE_SoulTrans 3 // Draw translucent with amount in r_transsouls -#define STYLE_OptFuzzy 4 // Draw as fuzzy, translucent or shadow, based on user preference -#define STYLE_Stencil 5 // Draw as solid color -#define STYLE_AddStencil 6 // Draw as additive solid color -#define STYLE_AddShaded 7 // -#define STYLE_Translucent 64 // Draw translucent -#define STYLE_Add 65 // Draw additive -#define STYLE_Shaded 66 // -#define STYLE_TranslucentStencil 67 -#define STYLE_Shadow 68 // Draw dark translucent stencil -#define STYLE_Subtract 69 // Draw subtractive - -// Properties you can use with GetLevelInfo() ------------------------------- - -#define LEVELINFO_PAR_TIME 0 -#define LEVELINFO_CLUSTERNUM 1 -#define LEVELINFO_LEVELNUM 2 -#define LEVELINFO_TOTAL_SECRETS 3 -#define LEVELINFO_FOUND_SECRETS 4 -#define LEVELINFO_TOTAL_ITEMS 5 -#define LEVELINFO_FOUND_ITEMS 6 -#define LEVELINFO_TOTAL_MONSTERS 7 -#define LEVELINFO_KILLED_MONSTERS 8 -#define LEVELINFO_SUCK_TIME 9 - -// Properties you can use with GetPlayerInfo() ------------------------------ - -#define PLAYERINFO_TEAM 0 -#define PLAYERINFO_AIMDIST 1 -#define PLAYERINFO_COLOR 2 -#define PLAYERINFO_GENDER 3 -#define PLAYERINFO_NEVERSWITCH 4 -#define PLAYERINFO_MOVEBOB 5 -#define PLAYERINFO_STILLBOB 6 -#define PLAYERINFO_PLAYERCLASS 7 -#define PLAYERINFO_FOV 8 -#define PLAYERINFO_DESIREDFOV 9 - - -// Flags for ReplaceTextures ------------------------------------------------ - -#define NOT_BOTTOM 1 -#define NOT_MIDDLE 2 -#define NOT_TOP 4 -#define NOT_FLOOR 8 -#define NOT_CEILING 16 - -// Flags for SectorDamage --------------------------------------------------- - -#define DAMAGE_PLAYERS 1 -#define DAMAGE_NONPLAYERS 2 -#define DAMAGE_IN_AIR 4 -#define DAMAGE_SUBCLASSES_PROTECT 8 -#define DAMAGE_NO_ARMOR 16 - -// Flags for MorphActor ----------------------------------------------------- - -#define MRF_OLDEFFECTS 0x00000000 -#define MRF_ADDSTAMINA 0x00000001 -#define MRF_FULLHEALTH 0x00000002 -#define MRF_UNDOBYTOMEOFPOWER 0x00000004 -#define MRF_UNDOBYCHAOSDEVICE 0x00000008 -#define MRF_FAILNOTELEFRAG 0x00000010 -#define MRF_FAILNOLAUGH 0x00000020 -#define MRF_WHENINVULNERABLE 0x00000040 -#define MRF_LOSEACTUALWEAPON 0x00000080 -#define MRF_NEWTIDBEHAVIOUR 0x00000100 -#define MRF_UNDOBYDEATH 0x00000200 -#define MRF_UNDOBYDEATHFORCED 0x00000400 -#define MRF_UNDOBYDEATHSAVES 0x00000800 -#define MRF_UNDOALWAYS 0x00001000 -#define MRF_TRANSFERTRANSLATION 0x00002000 - -// Shared spawnable things from Hexen. You can spawn these in the other ----- -// games if you provide sprites for them, otherwise they'll be invisible. --- - -#define T_ROCK1 41 -#define T_ROCK2 42 -#define T_ROCK3 43 -#define T_DIRT1 44 -#define T_DIRT2 45 -#define T_DIRT3 46 -#define T_DIRT4 47 -#define T_DIRT5 48 -#define T_DIRT6 49 -#define T_STAINEDGLASS1 54 -#define T_STAINEDGLASS2 55 -#define T_STAINEDGLASS3 56 -#define T_STAINEDGLASS4 57 -#define T_STAINEDGLASS5 58 -#define T_STAINEDGLASS6 59 -#define T_STAINEDGLASS7 60 -#define T_STAINEDGLASS8 61 -#define T_STAINEDGLASS9 62 -#define T_STAINEDGLASS0 63 - -// Doom Spawnable things (used for thingcount() and thing spawners) --------- - -#define T_NONE 0 -#define T_SHOTGUY 1 -#define T_CHAINGUY 2 -#define T_BARON 3 -#define T_ZOMBIE 4 -#define T_IMP 5 -#define T_ARACHNOTRON 6 -#define T_SPIDERMASTERMIND 7 -#define T_DEMON 8 -#define T_SPECTRE 9 -#define T_IMPFIREBALL 10 -#define T_CLIP 11 -#define T_SHELLS 12 -#define T_CACODEMON 19 -#define T_REVENANT 20 -#define T_BRIDGE 21 -#define T_ARMORBONUS 22 -#define T_STIMPACK 23 -#define T_MEDKIT 24 -#define T_SOULSPHERE 25 -#define T_SHOTGUN 27 -#define T_CHAINGUN 28 -#define T_ROCKETLAUNCHER 29 -#define T_PLASMAGUN 30 -#define T_BFG 31 -#define T_CHAINSAW 32 -#define T_SUPERSHOTGUN 33 -#define T_PLASMABOLT 51 -#define T_TRACER 53 -#define T_GREENARMOR 68 -#define T_BLUEARMOR 69 -#define T_CELL 75 -#define T_BLUEKEYCARD 85 -#define T_REDKEYCARD 86 -#define T_YELLOWKEYCARD 87 -#define T_YELLOWSKULLKEY 88 -#define T_REDSKULLKEY 89 -#define T_BLUESKULLKEY 90 -#define T_TEMPLARGEFLAME 98 -#define T_STEALTHBARON 100 -#define T_STEALTHKNIGHT 101 -#define T_STEALTHZOMBIE 102 -#define T_STEALTHSHOTGUY 103 - -#define T_LOSTSOUL 110 -#define T_VILE 111 -#define T_MANCUBUS 112 -#define T_HELLKNIGHT 113 -#define T_CYBERDEMON 114 -#define T_PAINELEMENTAL 115 -#define T_WOLFSS 116 -#define T_STEALTHARACHNOTRON 117 -#define T_STEALTHVILE 118 -#define T_STEALTHCACODEMON 119 -#define T_STEALTHCHAINGUY 120 -#define T_STEALTHSERGEANT 121 -#define T_STEALTHIMP 122 -#define T_STEALTHMANCUBUS 123 -#define T_STEALTHREVENANT 124 -#define T_BARREL 125 -#define T_CACODEMONSHOT 126 -#define T_ROCKET 127 -#define T_BFGSHOT 128 -#define T_ARACHNOTRONPLASMA 129 -#define T_BLOOD 130 -#define T_PUFF 131 -#define T_MEGASPHERE 132 -#define T_INVULNERABILITY 133 -#define T_BERSERK 134 -#define T_INVISIBILITY 135 -#define T_IRONFEET 136 -#define T_COMPUTERMAP 137 -#define T_LIGHTAMP 138 -#define T_AMMOBOX 139 -#define T_ROCKETAMMO 140 -#define T_ROCKETBOX 141 -#define T_BATTERY 142 -#define T_SHELLBOX 143 -#define T_BACKPACK 144 -#define T_GUTS 145 -#define T_BLOODPOOL 146 -#define T_BLOODPOOL1 147 -#define T_BLOODPOOL2 148 -#define T_FLAMINGBARREL 149 -#define T_BRAINS 150 -#define T_SCRIPTEDMARINE 151 -#define T_HEALTHBONUS 152 -#define T_MANCUBUSSHOT 153 -#define T_BARONBALL 154 - -// Heretic Spawnable things (used for thingcount() and thing spawners) ------ - -#define T_CLINK 1 -#define T_MUMMYLEADER 2 -#define T_BEAST 3 -#define T_MUMMY 4 -//#define T_IMP 5 // Defined above -#define T_KNIGHT 6 -#define T_IMPLEADER 7 -#define T_MUMMYGHOST 8 -#define T_MUMMYLEADERGHOST 9 -//#define T_IMPFIREBALL 10 -#define T_WIMPYWANDAMMO 11 -#define T_HEFTYWANDAMMO 12 -#define T_ITEMEGG 14 -#define T_ITEMFLIGHT 15 -#define T_ITEMTELEPORT 18 -#define T_WIZARD 19 -#define T_IRONLICH 20 -#define T_ITEMHEALTHPOTION 23 -#define T_ITEMHEALTHFLASH 24 // incorrect name but keep it for compatibility -#define T_ITEMHEALTHFLASK 24 -#define T_ITEMHEALTHFULL 25 -#define T_CROSSBOW 27 -#define T_BLASTER 28 -#define T_PHOENIXROD 29 -#define T_SKULLROD 30 -#define T_MACE 31 -#define T_GAUNTLETS 32 -#define T_WIMPYCROSSBOWAMMO 33 -#define T_HEFTYCROSSBOWAMMO 34 -#define T_WIMPYMACEAMMO 35 -#define T_HEFTYMACEAMMO 36 -#define T_WIMPYBLASTERAMMO 37 -#define T_HEFTYBLASTERAMMO 38 -#define T_MORPHBLAST 40 -#define T_SHIELD1 68 -#define T_SHIELD2 69 -#define T_ITEMTIMEBOMB 72 -#define T_ITEMTORCH 73 -#define T_BLUEKEY 85 -#define T_GREENKEY 86 -#define T_YELLOWKEY 87 - -#define T_SOUND_WIND 110 -#define T_SOUND_WATERFALL 111 - -#define T_BEASTBALL 120 -#define T_FEATHER 121 -#define T_CHICKEN 122 -#define T_VOLCANOBALL 123 -#define T_TINYVOLCANOBALL 124 -#define T_POD 125 -#define T_PODGENERATOR 126 -#define T_KNIGHTAXE 127 -#define T_KNIGHTBLOODAXE 128 -#define T_KNIGHTGHOST 129 -#define T_MUMMYHEAD 131 -#define T_SNAKE 132 -#define T_ITEMINVULNERABILITY 133 -#define T_ITEMTOME 134 -#define T_ITEMINVISIBILITY 135 -#define T_ITEMBAGOFHOLDING 136 -#define T_ITEMALLMAP 137 -#define T_SNAKEPROJECTILE 138 -#define T_SNAKEPROJECTILEBIG 139 -#define T_WIZARDSHOT 140 - -#define T_DSPARILTELEPORTDEST 141 -#define T_DSPARILONSERPENT 142 -#define T_DSPARILALONE 143 -#define T_SERPENTFIREBALL 144 -#define T_DSPARILBLUESHOT 145 -#define T_DSPARILWIZARDSPAWNER 146 - -#define T_CROSSBOWMAINBLAST 147 -#define T_CROSSBOWMINIBLAST 148 -#define T_CROSSBOWPOWERBLAST 149 -#define T_VOLCANO 150 -#define T_POWERWANDMINIBLAST 151 -#define T_POWERWANDBIGGERBLAST 152 -#define T_DEATHBALL 153 -#define T_NOGRAVITYMACEBALL 154 -#define T_BOUNCYMACEBALL 155 -#define T_HEAVYMACEBALL 156 -#define T_RIPPER 157 -#define T_WIMPYSKULLRODAMMO 158 -#define T_HEFTYSKULLRODAMMO 159 -#define T_SKULLRODBLAST 160 -#define T_WIMPYPHOENIXRODAMMO 161 -#define T_HEFTYPHOENIXRODAMMO 162 -#define T_PHOENIXSHOT 163 -#define T_IRONLICHBLUESHOT 164 -#define T_WHIRLWIND 165 -#define T_REDTELEGLITTER 166 -#define T_BLUETELEGLITTER 167 - -// Hexen Spawnable things (used for thingcount() and thing spawners) ------ - -#define T_CENTAUR 1 -#define T_CENTAURLEADER 2 -#define T_DEMON1 3 -#define T_ETTIN 4 -#define T_FIREGARGOYLE 5 -#define T_WATERLURKER 6 -#define T_WATERLURKERLEADER 7 -#define T_WRAITH 8 -#define T_WRAITHBURIED 9 -#define T_FIREBALL1 10 -#define T_MANA1 11 -#define T_MANA2 12 -#define T_ITEMBOOTS 13 -#define T_ITEMPORK 14 -#define T_ITEMSUMMON 16 -#define T_ITEMTPORTOTHER 17 -#define T_BISHOP 19 -#define T_ICEGOLEM 20 -#define T_DRAGONSKINBRACERS 22 -#define T_ITEMBOOSTMANA 26 -#define T_FIGHTERAXE 27 -#define T_FIGHTERHAMMER 28 -#define T_FIGHTERSWORD1 29 -#define T_FIGHTERSWORD2 30 -#define T_FIGHTERSWORD3 31 -#define T_CLERICSTAFF 32 -#define T_CLERICHOLY1 33 -#define T_CLERICHOLY2 34 -#define T_CLERICHOLY3 35 -#define T_MAGESHARDS 36 -#define T_MAGESTAFF1 37 -#define T_MAGESTAFF2 38 -#define T_MAGESTAFF3 39 -#define T_ARROW 50 -#define T_DART 51 -#define T_POISONDART 52 -#define T_RIPPERBALL 53 -#define T_BLADE 64 -#define T_ICESHARD 65 -#define T_FLAME_SMALL 66 -#define T_FLAME_LARGE 67 -#define T_MESHARMOR 68 -#define T_FALCONSHIELD 69 -#define T_PLATINUMHELM 70 -#define T_AMULETOFWARDING 71 -#define T_ITEMFLECHETTE 72 -#define T_ITEMREPULSION 74 -#define T_MANA3 75 -#define T_PUZZSKULL 76 -#define T_PUZZGEMBIG 77 -#define T_PUZZGEMRED 78 -#define T_PUZZGEMGREEN1 79 -#define T_PUZZGEMGREEN2 80 -#define T_PUZZGEMBLUE1 81 -#define T_PUZZGEMBLUE2 82 -#define T_PUZZBOOK1 83 -#define T_PUZZBOOK2 84 -#define T_METALKEY 85 -#define T_SMALLMETALKEY 86 -#define T_AXEKEY 87 -#define T_FIREKEY 88 -#define T_EMERALDKEY 89 -#define T_MACEKEY 90 -#define T_SILVERKEY 91 -#define T_RUSTYKEY 92 -#define T_HORNKEY 93 -#define T_SERPENTKEY 94 -#define T_WATERDRIP 95 -#define T_TEMPSMALLFLAME 96 -#define T_PERMSMALLFLAME 97 -#define T_PERMLARGEFLAME 99 -#define T_DEMON_MASH 100 -#define T_DEMON2_MASH 101 -#define T_ETTIN_MASH 102 -#define T_CENTAUR_MASH 103 -#define T_THRUSTSPIKEUP 104 -#define T_THRUSTSPIKEDOWN 105 -#define T_FLESH_DRIP1 106 -#define T_FLESH_DRIP2 107 -#define T_SPARK_DRIP 108 - - -// Flags returned by ClassifyActor - -#define ACTOR_NONE 0 -#define ACTOR_WORLD 1 -#define ACTOR_PLAYER 2 -#define ACTOR_BOT 4 -#define ACTOR_VOODOODOLL 8 -#define ACTOR_MONSTER 16 -#define ACTOR_ALIVE 32 -#define ACTOR_DEAD 64 -#define ACTOR_MISSILE 128 -#define ACTOR_GENERIC 256 - - -// Physical volumes for SoundSequenceOnSector - -#define SECSEQ_FLOOR 1 -#define SECSEQ_CEILING 2 -#define SECSEQ_FULLHEIGHT 3 -#define SECSEQ_INTERIOR 4 - -// Channels for PlaySound and StopSound - -#define CHAN_AUTO 0 -#define CHAN_WEAPON 1 -#define CHAN_VOICE 2 -#define CHAN_ITEM 3 -#define CHAN_BODY 4 -#define CHAN_5 5 -#define CHAN_6 6 -#define CHAN_7 7 - -// Modifier flags for PlaySound - -#define CHAN_LISTENERZ 8 -#define CHAN_MAYBE_LOCAL 16 -#define CHAN_UI 32 -#define CHAN_NOPAUSE 64 - -// Standard attenuation values for PlaySound - -#define ATTN_NONE 0 // full volume the entire level -#define ATTN_NORM 1.0 -#define ATTN_IDLE 1.001 -#define ATTN_STATIC 3.0 // dimish very rapidly with distance - -// Identifiers for PlayActorSound - -#define SOUND_See 0 -#define SOUND_Attack 1 -#define SOUND_Pain 2 -#define SOUND_Death 3 -#define SOUND_Active 4 -#define SOUND_Use 5 -#define SOUND_Bounce 6 -#define SOUND_WallBounce 7 -#define SOUND_CrushPain 8 -#define SOUND_Howl 9 - -// Flags for SpawnDecal - -#define SDF_ABSANGLE 1 -#define SDF_PERMANENT 2 - -// Actor pointer selectors - -#DEFINE AAPTR_DEFAULT 0 -#DEFINE AAPTR_NULL 0x1 -#DEFINE AAPTR_TARGET 0x2 -#DEFINE AAPTR_MASTER 0x4 -#DEFINE AAPTR_TRACER 0x8 - -#DEFINE AAPTR_PLAYER_GETTARGET 0x10 -#DEFINE AAPTR_PLAYER_GETCONVERSATION 0x20 - -#DEFINE AAPTR_PLAYER1 0x40 -#DEFINE AAPTR_PLAYER2 0x80 -#DEFINE AAPTR_PLAYER3 0x100 -#DEFINE AAPTR_PLAYER4 0x200 -#DEFINE AAPTR_PLAYER5 0x400 -#DEFINE AAPTR_PLAYER6 0x800 -#DEFINE AAPTR_PLAYER7 0x1000 -#DEFINE AAPTR_PLAYER8 0x2000 - -#DEFINE AAPTR_FRIENDPLAYER 0x4000 -#DEFINE AAPTR_GET_LINETARGET 0x8000 - -// Actor pointer operation flags - -#DEFINE PTROP_UNSAFETARGET 1 -#DEFINE PTROP_UNSAFEMASTER 2 -#DEFINE PTROP_NOSAFEGUARDS PTROP_UNSAFETARGET |PTROP_UNSAFEMASTER - -// Line activation flags - -#define SPAC_Cross 1 // when player crosses line -#define SPAC_Use 2 // when player uses line -#define SPAC_MCross 4 // when monster crosses line -#define SPAC_Impact 8 // when projectile hits line -#define SPAC_Push 16 // when player pushes line -#define SPAC_PCross 32 // when projectile crosses line -#define SPAC_UseThrough 64 // when player uses line (doesn't block) -#define SPAC_AnyCross 128 // when anything without the TELEPORT flag crosses the line -#define SPAC_MUse 256 // monsters can use -#define SPAC_MPush 512 // monsters can push -#define SPAC_UseBack 1024 // can be used from the back side - -#define SPAC_None 0 - -// GetArmorInfo - -#define ARMORINFO_CLASSNAME 0 -#define ARMORINFO_SAVEAMOUNT 1 -#define ARMORINFO_SAVEPERCENT 2 -#define ARMORINFO_MAXABSORB 3 -#define ARMORINFO_MAXFULLABSORB 4 -#define ARMORINFO_ACTUALSAVEAMOUNT 5 - -// ========================================================================== -// Skulltag Definitions -// ========================================================================== - -// Skulltag Teams ----------------------------------------------------------- -#define TEAM_BLUE 0 -#define TEAM_RED 1 -#define NO_TEAM 2 - -// Team properties ---------------------------------------------------------- -#define TPROP_Name 0 -#define TPROP_Score 1 -#define TPROP_IsValid 2 -#define TPROP_NumPlayers 3 -#define TPROP_NumLivePlayers 4 -#define TPROP_TextColor 5 -#define TPROP_PlayerStartNum 6 -#define TPROP_Spread 7 -#define TPROP_Carrier 8 -#define TPROP_Assister 9 -#define TPROP_FragCount 10 -#define TPROP_DeathCount 11 -#define TPROP_WinCount 12 -#define TPROP_PointCount 13 -#define TPROP_ReturnTics 14 -#define TPROP_TeamItem 15 -#define TPROP_WinnerTheme 16 -#define TPROP_LoserTheme 17 - -// Skulltag Invasion -------------------------------------------------------- -#define IS_WAITINGFORPLAYERS 0 -#define IS_FIRSTCOUNTDOWN 1 -#define IS_INPROGRESS 2 -#define IS_BOSSFIGHT 3 -#define IS_WAVECOMPLETE 4 -#define IS_COUNTDOWN 5 - - -#define T_GRENADE 216 -#define T_BFG10KSHOT 217 -#define T_DARKIMPFIREBALL 218 -#define T_CACOLANTERNSHOT 219 -#define T_ABADDONSHOT 221 - -// Skulltag Monsters -------------------------------------------------------- -#define T_DARKIMP 155 -#define T_BLOODDEMON 156 -#define T_SSGGUY 157 -#define T_HECTEBUS 158 -#define T_CACOLANTERN 159 -#define T_BELPHEGOR 215 -#define T_ABADDON 220 - -// Skulltag Weapons --------------------------------------------------------- -#define T_PISTOL 162 -#define T_GRENADELAUNCHER 163 -#define T_RAILGUN 164 -#define T_BFG10000 165 -#define T_MINIGUN 214 - -// Skulltag Armor/Health Items ---------------------------------------------- -#define T_MAXHEALTHBONUS 166 -#define T_MAXARMORBONUS 167 -#define T_REDARMOR 168 - -// Skulltag Powerups -------------------------------------------------------- -#define T_TURBOSPHERE 169 -#define T_ANTIGRAVBELT 170 -#define T_TIMEFREEZER 171 -#define T_INFRAGOGGLES 172 -#define T_INFRATRACKER 173 -#define T_TRANSLUCENCY 174 -#define T_DOOMSPHERE 175 -#define T_RANDOMPOWERUP 176 - -// Skulltag Flags ----------------------------------------------------------- -#define T_BLUEFLAG 177 -#define T_REDFLAG 178 -#define T_WHITEFLAG 179 - -// Skulltag Runes ----------------------------------------------------------- -#define T_STRENGTH 180 -#define T_RAGE 181 -#define T_DRAIN 182 -#define T_SPREAD 183 -#define T_RESISTANCE 184 -#define T_REGENERATION 185 -#define T_PROSPERITY 186 -#define T_REFLECTION 187 -#define T_HIGHJUMP 188 -#define T_HASTE 189 - -// Zandronum database additions --------------------------------------------- -#define DB_ORDER_ASC 0 -#define DB_ORDER_DESC 1 - -// Events when you have input grabbed - -#define EV_KeyDown 1 // data1: unshifted ASCII, data2: shifted ASCII -#define EV_KeyRepeat 2 // data1: unshifted ASCII, data2: shifted ASCII -#define EV_KeyUp 3 // data1: unshifted ASCII, data2: shifted ASCII -#define EV_Char 4 // data1: translated character for text input -#define EV_MouseMove 5 // data1: x, data2: y -#define EV_LButtonDown 6 -#define EV_LButtonUp 7 -#define EV_LButtonDblClick 8 -#define EV_MButtonDown 9 -#define EV_MButtonUp 10 -#define EV_MButtonDblClick 11 -#define EV_RButtonDown 12 -#define EV_RButtonUp 13 -#define EV_RButtonDblClick 14 -#define EV_WheelDown 15 -#define EV_WheelUp 16 - -// Key modifiers (or'd with event type) - -#define GKM_SHIFT 256 -#define GKM_CTRL 512 -#define GKM_ALT 1024 - -// Button modifiers are only valid for EV_MouseMove events - -#define GKM_LBUTTON 2048 -#define GKM_MBUTTON 4096 -#define GKM_RBUTTON 8192 - -// Special codes for some GUI keys, including a few real ASCII codes. - -#define GK_PGDN 1 -#define GK_PGUP 2 -#define GK_HOME 3 -#define GK_END 4 -#define GK_LEFT 5 -#define GK_RIGHT 6 -#define GK_ALERT 7 // ASCII bell -#define GK_BACKSPACE 8 // ASCII -#define GK_TAB 9 // ASCII -#define GK_LINEFEED 10 // ASCII -#define GK_DOWN 10 -#define GK_VTAB 11 // ASCII -#define GK_UP 11 -#define GK_FORMFEED 12 // ASCII -#define GK_RETURN 13 // ASCII -#define GK_F1 14 -#define GK_F2 15 -#define GK_F3 16 -#define GK_F4 17 -#define GK_F5 18 -#define GK_F6 19 -#define GK_F7 20 -#define GK_F8 21 -#define GK_F9 22 -#define GK_F10 23 -#define GK_F11 24 -#define GK_F12 25 -#define GK_DEL 26 -#define GK_ESCAPE 27 // ASCII -#define GK_FREE1 28 -#define GK_FREE2 29 -#define GK_FREE3 30 -#define GK_CESCAPE 31 // color escape - -#define CHANGELEVEL_KEEPFACING 1 -#define CHANGELEVEL_RESETINVENTORY 2 -#define CHANGELEVEL_NOMONSTERS 4 -#define CHANGELEVEL_CHANGESKILL 8 -#define CHANGELEVEL_NOINTERMISSION 16 -#define CHANGELEVEL_RESETHEALTH 32 -#define CHANGELEVEL_PRERAISEWEAPON 64 - -#define NO_CHANGE 32767.0 - -#define SECF_SILENT 1 -#define SECF_NOFALLINGDAMAGE 2 -#define SECF_FLOORDROP 4 -#define SECF_NORESPAWN 8 -#define SECF_FRICTION 16 -#define SECF_PUSH 32 -#define SECF_SILENTMOVE 64 -#define SECF_DMGTERRAINFX 128 -#define SECF_DMGENDGODMODE 256 -#define SECF_DMGENDLEVEL 512 -#define SECF_DMGHAZARD 1024 - -#define BLOCKF_CREATURES 1 -#define BLOCKF_MONSTERS 2 -#define BLOCKF_PLAYERS 4 -#define BLOCKF_FLOATERS 8 -#define BLOCKF_PROJECTILES 16 -#define BLOCKF_EVERYTHING 32 -#define BLOCKF_RAILING 64 -#define BLOCKF_USE 128 -#define BLOCKF_SIGHT 256 -#define BLOCKF_HITSCAN 512 -#define BLOCKF_SOUND 1024 - -#define FOGP_DENSITY 0 -#define FOGP_OUTSIDEDENSITY 1 -#define FOGP_SKYFOG 2 - -#define PRINTNAME_LEVELNAME -1 -#define PRINTNAME_LEVEL -2 -#define PRINTNAME_SKILL -3 -#define PRINTNAME_NEXTLEVEL -4 -#define PRINTNAME_NEXTSECRET -5 - -#define CSF_NOFAKEFLOORS 1 -#define CSF_NOBLOCKALL 2 - -#define FHF_NORANDOMPUFFZ 1 -#define FHF_NOIMPACTDECAL 2 - -// PickActor flags - -#define PICKAF_FORCETID 1 -#define PICKAF_RETURNTID 2 - -// magic value to set the ice translation through ACS -#define TRANSLATION_ICE 0x100007 - -// Actor flags -#define MF_SPECIAL 0x00000001 -#define MF_SOLID 0x00000002 -#define MF_SHOOTABLE 0x00000004 -#define MF_NOSECTOR 0x00000008 -#define MF_NOBLOCKMAP 0x00000010 -#define MF_AMBUSH 0x00000020 -#define MF_JUSTHIT 0x00000040 -#define MF_JUSTATTACKED 0x00000080 -#define MF_SPAWNCEILING 0x00000100 -#define MF_NOGRAVITY 0x00000200 -#define MF_DROPOFF 0x00000400 -#define MF_PICKUP 0x00000800 -#define MF_NOCLIP 0x00001000 -#define MF_INCHASE 0x00002000 -#define MF_FLOAT 0x00004000 -#define MF_TELEPORT 0x00008000 -#define MF_MISSILE 0x00010000 -#define MF_DROPPED 0x00020000 -#define MF_SHADOW 0x00040000 -#define MF_NOBLOOD 0x00080000 -#define MF_CORPSE 0x00100000 -#define MF_INFLOAT 0x00200000 -#define MF_INBOUNCE 0x00200000 -#define MF_COUNTKILL 0x00400000 -#define MF_COUNTITEM 0x00800000 -#define MF_SKULLFLY 0x01000000 -#define MF_NOTDMATCH 0x02000000 -#define MF_SPAWNSOUNDSOURCE 0x04000000 -#define MF_FRIENDLY 0x08000000 -#define MF_UNMORPHED 0x10000000 -#define MF_NOLIFTDROP 0x20000000 -#define MF_STEALTH 0x40000000 -#define MF_ICECORPSE 0x80000000 - -// Linedef flags -#define ML_BLOCKING 0x00000001 -#define ML_BLOCKMONSTERS 0x00000002 -#define ML_TWOSIDED 0x00000004 -#define ML_DONTPEGTOP 0x00000008 -#define ML_DONTPEGBOTTOM 0x00000010 -#define ML_SECRET 0x00000020 -#define ML_SOUNDBLOCK 0x00000040 -#define ML_DONTDRAW 0x00000080 -#define ML_MAPPED 0x00000100 -#define ML_REPEAT_SPECIAL 0x00000200 -#define ML_ADDTRANS 0x00000400 -#define ML_MONSTERSCANACTIVATE 0x00002000 -#define ML_BLOCK_PLAYERS 0x00004000 -#define ML_BLOCKEVERYTHING 0x00008000 -#define ML_ZONEBOUNDARY 0x00010000 -#define ML_RAILING 0x00020000 -#define ML_BLOCK_FLOATERS 0x00040000 -#define ML_CLIP_MIDTEX 0x00080000 -#define ML_WRAP_MIDTEX 0x00100000 -#define ML_3DMIDTEX 0x00200000 -#define ML_CHECKSWITCHRANGE 0x00400000 -#define ML_FIRSTSIDEONLY 0x00800000 -#define ML_BLOCKPROJECTILE 0x01000000 -#define ML_BLOCKUSE 0x02000000 -#define ML_BLOCKSIGHT 0x04000000 -#define ML_BLOCKHITSCAN 0x08000000 - -#define QF_RELATIVE 1 -#define QF_SCALEDOWN 1 << 1 -#define QF_SCALEUP 1 << 2 -#define QF_MAX 1 << 3 -#define QF_FULLINTENSITY 1 << 4 -#define QF_WAVE 1 << 5 - -#define WARPF_ABSOLUTEOFFSET 0x1 -#define WARPF_ABSOLUTEANGLE 0x2 -#define WARPF_USECALLERANGLE 0x4 -#define WARPF_NOCHECKPOSITION 0x8 -#define WARPF_INTERPOLATE 0x10 -#define WARPF_WARPINTERPOLATION 0x20 -#define WARPF_COPYINTERPOLATION 0x40 -#define WARPF_STOP 0x80 -#define WARPF_TOFLOOR 0x100 -#define WARPF_TESTONLY 0x200 -#define WARPF_ABSOLUTEPOSITION 0x400 -#define WARPF_BOB 0x800 -#define WARPF_MOVEPTR 0x1000 -#define WARPF_USEPTR 0x2000 -#define WARPF_COPYVELOCITY 0x4000 -#define WARPF_COPYPITCH 0x8000 - -#define CPXF_ANCESTOR (1 << 0) -#define CPXF_LESSOREQUAL (1 << 1) -#define CPXF_NOZ (1 << 2) -#define CPXF_COUNTDEAD (1 << 3) -#define CPXF_DEADONLY (1 << 4) -#define CPXF_EXACT (1 << 5) -#define CPXF_SETTARGET (1 << 6) -#define CPXF_SETMASTER (1 << 7) -#define CPXF_SETTRACER (1 << 8) -#define CPXF_FARTHEST (1 << 9) -#define CPXF_CLOSEST (1 << 10) -#define CPXF_SETONPTR (1 << 11) -#define CPXF_CHECKSIGHT (1 << 12) - -#define SECPART_Floor 0 -#define SECPART_Ceiling 1 -#define SECPART_3D 2 - -// For Line_SetAutomapFlags; These are or'd together -#define AMLF_Secret (1 << 0) -#define AMLF_DontDraw (1 << 1) -#define AMLF_Mapped (1 << 2) -#define AMLF_Revealed (1 << 3) - -// For Line_SetAutomapStyle -#define AMLS_Default 0 -#define AMLS_OneSided 1 -#define AMLS_TwoSided 2 -#define AMLS_FloorDiff 3 -#define AMLS_CeilingDiff 4 -#define AMLS_ExtraFloor 5 -#define AMLS_Special 6 -#define AMLS_Secret 7 -#define AMLS_NotSeen 8 -#define AMLS_Locked 9 -#define AMLS_IntraTeleport 10 -#define AMLS_InterTeleport 11 -#define AMLS_UnexploredSecret 12 -#define AMLS_Portal 13 +//************************************************************************** +//** +//** zdefs.acs +//** +//** Common definitions for use when compiling ACS scripts for ZDoom +//** +//************************************************************************** + +#define TRUE 1 +#define FALSE 0 +#define ON 1 +#define OFF 0 +#define YES 1 +#define NO 0 + +#define LINE_FRONT 0 +#define LINE_BACK 1 + +#define SIDE_FRONT 0 +#define SIDE_BACK 1 + +#define TEXTURE_TOP 0 +#define TEXTURE_MIDDLE 1 +#define TEXTURE_BOTTOM 2 + +// same information as combinable bit flags +#define TEXFLAG_TOP 1 +#define TEXFLAG_MIDDLE 2 +#define TEXFLAG_BOTTOM 4 +#define TEXFLAG_ADDOFFSET 8 + +#define GAME_SINGLE_PLAYER 0 +#define GAME_NET_COOPERATIVE 1 +#define GAME_NET_DEATHMATCH 2 +#define GAME_TITLE_MAP 3 + +// Classes are only useful with Hexen +#define CLASS_FIGHTER 0 +#define CLASS_CLERIC 1 +#define CLASS_MAGE 2 + +#define SKILL_VERY_EASY 0 +#define SKILL_EASY 1 +#define SKILL_NORMAL 2 +#define SKILL_HARD 3 +#define SKILL_VERY_HARD 4 + +#define BLOCK_NOTHING 0 +#define BLOCK_CREATURES 1 +#define BLOCK_EVERYTHING 2 +#define BLOCK_RAILING 3 +#define BLOCK_PLAYERS 4 + +#define SCROLL 0 +#define CARRY 1 +#define SCROLL_AND_CARRY 2 + +// Means-of-death for Sector_SetDamage -------------------------------------- + +#define MOD_UNKNOWN 0 +#define MOD_ROCKET 5 +#define MOD_R_SPLASH 6 +#define MOD_PLASMARIFLE 7 +#define MOD_BFG_BOOM 8 +#define MOD_BFG_SPLASH 9 +#define MOD_CHAINSAW 10 +#define MOD_SSHOTGUN 11 +#define MOD_WATER 12 +#define MOD_SLIME 13 +#define MOD_LAVA 14 +#define MOD_CRUSH 15 +#define MOD_TELEFRAG 16 +#define MOD_FALLING 17 +#define MOD_SUICIDE 18 +#define MOD_BARREL 19 +#define MOD_EXIT 20 +#define MOD_SPLASH 21 +#define MOD_HIT 22 +#define MOD_RAILGUN 23 +#define MOD_ICE 24 +#define MOD_DISINTEGRATE 25 +#define MOD_POISON 26 +#define MOD_ELECTRIC 27 + +// Return values for PlayMovie ---------------------------------------------- + +#define MOVIE_Played 0 +#define MOVIE_Played_NoVideo 1 +#define MOVIE_Played_Aborted 2 +#define MOVIE_Failed -1 + + +// Player properties -------------------------------------------------------- + +#define PROP_FROZEN 0 +#define PROP_NOTARGET 1 +#define PROP_INSTANTWEAPONSWITCH 2 +#define PROP_FLY 3 +#define PROP_TOTALLYFROZEN 4 +#define PROP_BUDDHA 16 + +// The following properties correspond to powers given by certain items +#define PROP_INVULNERABILITY 5 +#define PROP_STRENGTH 6 +#define PROP_INVISIBILITY 7 +#define PROP_RADIATIONSUIT 8 +#define PROP_ALLMAP 9 +#define PROP_INFRARED 10 +#define PROP_WEAPONLEVEL2 11 +#define PROP_FLIGHT 12 +#define PROP_SPEED 15 + +// Player input ------------------------------------------------------------- + +// These are the original inputs sent by the player. +#define INPUT_OLDBUTTONS 0 +#define INPUT_BUTTONS 1 +#define INPUT_PITCH 2 +#define INPUT_YAW 3 +#define INPUT_ROLL 4 +#define INPUT_FORWARDMOVE 5 +#define INPUT_SIDEMOVE 6 +#define INPUT_UPMOVE 7 + +// These are the inputs, as modified by P_PlayerThink(). +// Most of the time, these will match the original inputs, but +// they can be different if a player is frozen or using a +// chainsaw. +#define MODINPUT_OLDBUTTONS 8 +#define MODINPUT_BUTTONS 9 +#define MODINPUT_PITCH 10 +#define MODINPUT_YAW 11 +#define MODINPUT_ROLL 12 +#define MODINPUT_FORWARDMOVE 13 +#define MODINPUT_SIDEMOVE 14 +#define MODINPUT_UPMOVE 15 + +// Player buttons ----------------------------------------------------------- + +#define BT_ATTACK 1 +#define BT_USE 2 +#define BT_JUMP 4 +#define BT_CROUCH 8 +#define BT_TURN180 16 +#define BT_ALTATTACK 32 +#define BT_RELOAD 64 +#define BT_ZOOM 128 + +#define BT_SPEED 256 +#define BT_STRAFE 512 + +#define BT_MOVERIGHT 1024 +#define BT_MOVELEFT 2048 +#define BT_BACK 4096 +#define BT_FORWARD 8192 +#define BT_RIGHT 16384 +#define BT_LEFT 32768 +#define BT_LOOKUP 65536 +#define BT_LOOKDOWN 131072 +#define BT_MOVEUP 262144 +#define BT_MOVEDOWN 524288 +#define BT_SHOWSCORES 1048576 +#define BT_RUN 33554432 + +// Do whatever you want with these. +#define BT_USER1 2097152 +#define BT_USER2 4194304 +#define BT_USER3 8388608 +#define BT_USER4 16777216 + +// Text colors -------------------------------------------------------------- + +#define CR_UNTRANSLATED -1 +#define CR_BRICK 0 +#define CR_TAN 1 +#define CR_GRAY 2 +#define CR_GREY 2 +#define CR_GREEN 3 +#define CR_BROWN 4 +#define CR_GOLD 5 +#define CR_RED 6 +#define CR_BLUE 7 +#define CR_ORANGE 8 +#define CR_WHITE 9 +#define CR_YELLOW 10 +#define CR_BLACK 12 +#define CR_LIGHTBLUE 13 +#define CR_CREAM 14 +#define CR_OLIVE 15 +#define CR_DARKGREEN 16 +#define CR_DARKRED 17 +#define CR_DARKBROWN 18 +#define CR_PURPLE 19 +#define CR_DARKGRAY 20 +#define CR_DARKGREY 20 +#define CR_CYAN 21 +#define CR_ICE 22 +#define CR_FIRE 23 +#define CR_SAPPHIRE 24 +#define CR_TEAL 25 + +// HUD message types -------------------------------------------------------- + +#define HUDMSG_PLAIN 0 +#define HUDMSG_FADEOUT 1 +#define HUDMSG_TYPEON 2 +#define HUDMSG_FADEINOUT 3 + +// OR this with one of the above to log the hudmessage to the console. +// i.e. instead of HUDMSG_PLAIN, you can use HUDMSG_PLAIN | HUDMSG_LOG +#define HUDMSG_LOG 0x80000000 + +// OR this with one of the above if the color you passed is a string +// instead of one of the CR_ constants. +#define HUDMSG_COLORSTRING 0x40000000 + +// OR this with one of the above to use additive blending when drawing the +// HUD message. +#define HUDMSG_ADDBLEND 0x20000000 + +// OR this with one of the above to use the extra alpha parameter +#define HUDMSG_ALPHA 0x10000000 + +// Or this with one of the above to not wrap lines +#define HUDMSG_NOWRAP 0x08000000 + +// HUD message layers; these are not flags +#define HUDMSG_LAYER_OVERHUD 0x00000000 +#define HUDMSG_LAYER_UNDERHUD 0x00001000 +#define HUDMSG_LAYER_OVERMAP 0x00002000 + +// HUD message visibility flags +#define HUDMSG_NOTWITH3DVIEW 0x00010000 +#define HUDMSG_NOTWITHFULLMAP 0x00020000 +#define HUDMSG_NOTWITHOVERLAYMAP 0x00040000 + + +// "Scripted" Marine weapon types ------------------------------------------- + +#define MARINEWEAPON_Dummy 0 +#define MARINEWEAPON_Fist 1 +#define MARINEWEAPON_BerserkFist 2 +#define MARINEWEAPON_Chainsaw 3 +#define MARINEWEAPON_Pistol 4 +#define MARINEWEAPON_Shotgun 5 +#define MARINEWEAPON_SuperShotgun 6 +#define MARINEWEAPON_Chaingun 7 +#define MARINEWEAPON_RocketLauncher 8 +#define MARINEWEAPON_PlasmaRifle 9 +#define MARINEWEAPON_Railgun 10 +#define MARINEWEAPON_BFG 11 + +// Actor properties you can get/set ----------------------------------------- + +#define APROP_Health 0 +#define APROP_Speed 1 +#define APROP_Damage 2 +#define APROP_Alpha 3 +#define APROP_RenderStyle 4 +#define APROP_SeeSound 5 // Sounds can only be set, not gotten +#define APROP_AttackSound 6 +#define APROP_PainSound 7 +#define APROP_DeathSound 8 +#define APROP_ActiveSound 9 +#define APROP_Ambush 10 +#define APROP_Invulnerable 11 +#define APROP_JumpZ 12 +#define APROP_ChaseGoal 13 +#define APROP_Frightened 14 +#define APROP_Gravity 15 +#define APROP_Friendly 16 +#define APROP_SpawnHealth 17 +#define APROP_Dropped 18 +#define APROP_Notarget 19 +#define APROP_Species 20 +#define APROP_Nametag 21 +#define APROP_Score 22 +#define APROP_Notrigger 23 +#define APROP_DamageFactor 24 +#define APROP_MasterTID 25 +#define APROP_TargetTID 26 +#define APROP_TracerTID 27 +#define APROP_Waterlevel 28 +#define APROP_ScaleX 29 +#define APROP_ScaleY 30 +#define APROP_Dormant 31 +#define APROP_Mass 32 +#define APROP_Accuracy 33 +#define APROP_Stamina 34 +#define APROP_Height 35 +#define APROP_Radius 36 +#define APROP_Reactiontime 37 +#define APROP_MeleeRange 38 +#define APROP_ViewHeight 39 +#define APROP_AttackZOffset 40 +#define APROP_StencilColor 41 +#define APROP_Friction 42 +#define APROP_DamageMultiplier 43 +#define APROP_MaxStepHeight 44 +#define APROP_MaxDropOffHeight 45 +#define APROP_DamageType 46 + +// New to Eternity +#define APROP_Counter0 100 +#define APROP_Counter1 101 +#define APROP_Counter2 102 +#define APROP_Counter3 103 +#define APROP_Counter4 104 +#define APROP_Counter5 105 +#define APROP_Counter6 106 +#define APROP_Counter7 107 + +// Render Styles ------------------------------------------------------------ + +#define STYLE_None 0 // Do not draw +#define STYLE_Normal 1 // Normal; just copy the image to the screen +#define STYLE_Fuzzy 2 // Draw silhouette using "fuzz" effect +#define STYLE_SoulTrans 3 // Draw translucent with amount in r_transsouls +#define STYLE_OptFuzzy 4 // Draw as fuzzy, translucent or shadow, based on user preference +#define STYLE_Stencil 5 // Draw as solid color +#define STYLE_AddStencil 6 // Draw as additive solid color +#define STYLE_AddShaded 7 // +#define STYLE_Translucent 64 // Draw translucent +#define STYLE_Add 65 // Draw additive +#define STYLE_Shaded 66 // +#define STYLE_TranslucentStencil 67 +#define STYLE_Shadow 68 // Draw dark translucent stencil +#define STYLE_Subtract 69 // Draw subtractive + +// Properties you can use with GetLevelInfo() ------------------------------- + +#define LEVELINFO_PAR_TIME 0 +#define LEVELINFO_CLUSTERNUM 1 +#define LEVELINFO_LEVELNUM 2 +#define LEVELINFO_TOTAL_SECRETS 3 +#define LEVELINFO_FOUND_SECRETS 4 +#define LEVELINFO_TOTAL_ITEMS 5 +#define LEVELINFO_FOUND_ITEMS 6 +#define LEVELINFO_TOTAL_MONSTERS 7 +#define LEVELINFO_KILLED_MONSTERS 8 +#define LEVELINFO_SUCK_TIME 9 + +// Properties you can use with GetPlayerInfo() ------------------------------ + +#define PLAYERINFO_TEAM 0 +#define PLAYERINFO_AIMDIST 1 +#define PLAYERINFO_COLOR 2 +#define PLAYERINFO_GENDER 3 +#define PLAYERINFO_NEVERSWITCH 4 +#define PLAYERINFO_MOVEBOB 5 +#define PLAYERINFO_STILLBOB 6 +#define PLAYERINFO_PLAYERCLASS 7 +#define PLAYERINFO_FOV 8 +#define PLAYERINFO_DESIREDFOV 9 + + +// Flags for ReplaceTextures ------------------------------------------------ + +#define NOT_BOTTOM 1 +#define NOT_MIDDLE 2 +#define NOT_TOP 4 +#define NOT_FLOOR 8 +#define NOT_CEILING 16 + +// Flags for SectorDamage --------------------------------------------------- + +#define DAMAGE_PLAYERS 1 +#define DAMAGE_NONPLAYERS 2 +#define DAMAGE_IN_AIR 4 +#define DAMAGE_SUBCLASSES_PROTECT 8 +#define DAMAGE_NO_ARMOR 16 + +// Flags for MorphActor ----------------------------------------------------- + +#define MRF_OLDEFFECTS 0x00000000 +#define MRF_ADDSTAMINA 0x00000001 +#define MRF_FULLHEALTH 0x00000002 +#define MRF_UNDOBYTOMEOFPOWER 0x00000004 +#define MRF_UNDOBYCHAOSDEVICE 0x00000008 +#define MRF_FAILNOTELEFRAG 0x00000010 +#define MRF_FAILNOLAUGH 0x00000020 +#define MRF_WHENINVULNERABLE 0x00000040 +#define MRF_LOSEACTUALWEAPON 0x00000080 +#define MRF_NEWTIDBEHAVIOUR 0x00000100 +#define MRF_UNDOBYDEATH 0x00000200 +#define MRF_UNDOBYDEATHFORCED 0x00000400 +#define MRF_UNDOBYDEATHSAVES 0x00000800 +#define MRF_UNDOALWAYS 0x00001000 +#define MRF_TRANSFERTRANSLATION 0x00002000 + +// Shared spawnable things from Hexen. You can spawn these in the other ----- +// games if you provide sprites for them, otherwise they'll be invisible. --- + +#define T_ROCK1 41 +#define T_ROCK2 42 +#define T_ROCK3 43 +#define T_DIRT1 44 +#define T_DIRT2 45 +#define T_DIRT3 46 +#define T_DIRT4 47 +#define T_DIRT5 48 +#define T_DIRT6 49 +#define T_STAINEDGLASS1 54 +#define T_STAINEDGLASS2 55 +#define T_STAINEDGLASS3 56 +#define T_STAINEDGLASS4 57 +#define T_STAINEDGLASS5 58 +#define T_STAINEDGLASS6 59 +#define T_STAINEDGLASS7 60 +#define T_STAINEDGLASS8 61 +#define T_STAINEDGLASS9 62 +#define T_STAINEDGLASS0 63 + +// Doom Spawnable things (used for thingcount() and thing spawners) --------- + +#define T_NONE 0 +#define T_SHOTGUY 1 +#define T_CHAINGUY 2 +#define T_BARON 3 +#define T_ZOMBIE 4 +#define T_IMP 5 +#define T_ARACHNOTRON 6 +#define T_SPIDERMASTERMIND 7 +#define T_DEMON 8 +#define T_SPECTRE 9 +#define T_IMPFIREBALL 10 +#define T_CLIP 11 +#define T_SHELLS 12 +#define T_CACODEMON 19 +#define T_REVENANT 20 +#define T_BRIDGE 21 +#define T_ARMORBONUS 22 +#define T_STIMPACK 23 +#define T_MEDKIT 24 +#define T_SOULSPHERE 25 +#define T_SHOTGUN 27 +#define T_CHAINGUN 28 +#define T_ROCKETLAUNCHER 29 +#define T_PLASMAGUN 30 +#define T_BFG 31 +#define T_CHAINSAW 32 +#define T_SUPERSHOTGUN 33 +#define T_PLASMABOLT 51 +#define T_TRACER 53 +#define T_GREENARMOR 68 +#define T_BLUEARMOR 69 +#define T_CELL 75 +#define T_BLUEKEYCARD 85 +#define T_REDKEYCARD 86 +#define T_YELLOWKEYCARD 87 +#define T_YELLOWSKULLKEY 88 +#define T_REDSKULLKEY 89 +#define T_BLUESKULLKEY 90 +#define T_TEMPLARGEFLAME 98 +#define T_STEALTHBARON 100 +#define T_STEALTHKNIGHT 101 +#define T_STEALTHZOMBIE 102 +#define T_STEALTHSHOTGUY 103 + +#define T_LOSTSOUL 110 +#define T_VILE 111 +#define T_MANCUBUS 112 +#define T_HELLKNIGHT 113 +#define T_CYBERDEMON 114 +#define T_PAINELEMENTAL 115 +#define T_WOLFSS 116 +#define T_STEALTHARACHNOTRON 117 +#define T_STEALTHVILE 118 +#define T_STEALTHCACODEMON 119 +#define T_STEALTHCHAINGUY 120 +#define T_STEALTHSERGEANT 121 +#define T_STEALTHIMP 122 +#define T_STEALTHMANCUBUS 123 +#define T_STEALTHREVENANT 124 +#define T_BARREL 125 +#define T_CACODEMONSHOT 126 +#define T_ROCKET 127 +#define T_BFGSHOT 128 +#define T_ARACHNOTRONPLASMA 129 +#define T_BLOOD 130 +#define T_PUFF 131 +#define T_MEGASPHERE 132 +#define T_INVULNERABILITY 133 +#define T_BERSERK 134 +#define T_INVISIBILITY 135 +#define T_IRONFEET 136 +#define T_COMPUTERMAP 137 +#define T_LIGHTAMP 138 +#define T_AMMOBOX 139 +#define T_ROCKETAMMO 140 +#define T_ROCKETBOX 141 +#define T_BATTERY 142 +#define T_SHELLBOX 143 +#define T_BACKPACK 144 +#define T_GUTS 145 +#define T_BLOODPOOL 146 +#define T_BLOODPOOL1 147 +#define T_BLOODPOOL2 148 +#define T_FLAMINGBARREL 149 +#define T_BRAINS 150 +#define T_SCRIPTEDMARINE 151 +#define T_HEALTHBONUS 152 +#define T_MANCUBUSSHOT 153 +#define T_BARONBALL 154 + +// Heretic Spawnable things (used for thingcount() and thing spawners) ------ + +#define T_CLINK 1 +#define T_MUMMYLEADER 2 +#define T_BEAST 3 +#define T_MUMMY 4 +//#define T_IMP 5 // Defined above +#define T_KNIGHT 6 +#define T_IMPLEADER 7 +#define T_MUMMYGHOST 8 +#define T_MUMMYLEADERGHOST 9 +//#define T_IMPFIREBALL 10 +#define T_WIMPYWANDAMMO 11 +#define T_HEFTYWANDAMMO 12 +#define T_ITEMEGG 14 +#define T_ITEMFLIGHT 15 +#define T_ITEMTELEPORT 18 +#define T_WIZARD 19 +#define T_IRONLICH 20 +#define T_ITEMHEALTHPOTION 23 +#define T_ITEMHEALTHFLASH 24 // incorrect name but keep it for compatibility +#define T_ITEMHEALTHFLASK 24 +#define T_ITEMHEALTHFULL 25 +#define T_CROSSBOW 27 +#define T_BLASTER 28 +#define T_PHOENIXROD 29 +#define T_SKULLROD 30 +#define T_MACE 31 +#define T_GAUNTLETS 32 +#define T_WIMPYCROSSBOWAMMO 33 +#define T_HEFTYCROSSBOWAMMO 34 +#define T_WIMPYMACEAMMO 35 +#define T_HEFTYMACEAMMO 36 +#define T_WIMPYBLASTERAMMO 37 +#define T_HEFTYBLASTERAMMO 38 +#define T_MORPHBLAST 40 +#define T_SHIELD1 68 +#define T_SHIELD2 69 +#define T_ITEMTIMEBOMB 72 +#define T_ITEMTORCH 73 +#define T_BLUEKEY 85 +#define T_GREENKEY 86 +#define T_YELLOWKEY 87 + +#define T_SOUND_WIND 110 +#define T_SOUND_WATERFALL 111 + +#define T_BEASTBALL 120 +#define T_FEATHER 121 +#define T_CHICKEN 122 +#define T_VOLCANOBALL 123 +#define T_TINYVOLCANOBALL 124 +#define T_POD 125 +#define T_PODGENERATOR 126 +#define T_KNIGHTAXE 127 +#define T_KNIGHTBLOODAXE 128 +#define T_KNIGHTGHOST 129 +#define T_MUMMYHEAD 131 +#define T_SNAKE 132 +#define T_ITEMINVULNERABILITY 133 +#define T_ITEMTOME 134 +#define T_ITEMINVISIBILITY 135 +#define T_ITEMBAGOFHOLDING 136 +#define T_ITEMALLMAP 137 +#define T_SNAKEPROJECTILE 138 +#define T_SNAKEPROJECTILEBIG 139 +#define T_WIZARDSHOT 140 + +#define T_DSPARILTELEPORTDEST 141 +#define T_DSPARILONSERPENT 142 +#define T_DSPARILALONE 143 +#define T_SERPENTFIREBALL 144 +#define T_DSPARILBLUESHOT 145 +#define T_DSPARILWIZARDSPAWNER 146 + +#define T_CROSSBOWMAINBLAST 147 +#define T_CROSSBOWMINIBLAST 148 +#define T_CROSSBOWPOWERBLAST 149 +#define T_VOLCANO 150 +#define T_POWERWANDMINIBLAST 151 +#define T_POWERWANDBIGGERBLAST 152 +#define T_DEATHBALL 153 +#define T_NOGRAVITYMACEBALL 154 +#define T_BOUNCYMACEBALL 155 +#define T_HEAVYMACEBALL 156 +#define T_RIPPER 157 +#define T_WIMPYSKULLRODAMMO 158 +#define T_HEFTYSKULLRODAMMO 159 +#define T_SKULLRODBLAST 160 +#define T_WIMPYPHOENIXRODAMMO 161 +#define T_HEFTYPHOENIXRODAMMO 162 +#define T_PHOENIXSHOT 163 +#define T_IRONLICHBLUESHOT 164 +#define T_WHIRLWIND 165 +#define T_REDTELEGLITTER 166 +#define T_BLUETELEGLITTER 167 + +// Hexen Spawnable things (used for thingcount() and thing spawners) ------ + +#define T_CENTAUR 1 +#define T_CENTAURLEADER 2 +#define T_DEMON1 3 +#define T_ETTIN 4 +#define T_FIREGARGOYLE 5 +#define T_WATERLURKER 6 +#define T_WATERLURKERLEADER 7 +#define T_WRAITH 8 +#define T_WRAITHBURIED 9 +#define T_FIREBALL1 10 +#define T_MANA1 11 +#define T_MANA2 12 +#define T_ITEMBOOTS 13 +#define T_ITEMPORK 14 +#define T_ITEMSUMMON 16 +#define T_ITEMTPORTOTHER 17 +#define T_BISHOP 19 +#define T_ICEGOLEM 20 +#define T_DRAGONSKINBRACERS 22 +#define T_ITEMBOOSTMANA 26 +#define T_FIGHTERAXE 27 +#define T_FIGHTERHAMMER 28 +#define T_FIGHTERSWORD1 29 +#define T_FIGHTERSWORD2 30 +#define T_FIGHTERSWORD3 31 +#define T_CLERICSTAFF 32 +#define T_CLERICHOLY1 33 +#define T_CLERICHOLY2 34 +#define T_CLERICHOLY3 35 +#define T_MAGESHARDS 36 +#define T_MAGESTAFF1 37 +#define T_MAGESTAFF2 38 +#define T_MAGESTAFF3 39 +#define T_ARROW 50 +#define T_DART 51 +#define T_POISONDART 52 +#define T_RIPPERBALL 53 +#define T_BLADE 64 +#define T_ICESHARD 65 +#define T_FLAME_SMALL 66 +#define T_FLAME_LARGE 67 +#define T_MESHARMOR 68 +#define T_FALCONSHIELD 69 +#define T_PLATINUMHELM 70 +#define T_AMULETOFWARDING 71 +#define T_ITEMFLECHETTE 72 +#define T_ITEMREPULSION 74 +#define T_MANA3 75 +#define T_PUZZSKULL 76 +#define T_PUZZGEMBIG 77 +#define T_PUZZGEMRED 78 +#define T_PUZZGEMGREEN1 79 +#define T_PUZZGEMGREEN2 80 +#define T_PUZZGEMBLUE1 81 +#define T_PUZZGEMBLUE2 82 +#define T_PUZZBOOK1 83 +#define T_PUZZBOOK2 84 +#define T_METALKEY 85 +#define T_SMALLMETALKEY 86 +#define T_AXEKEY 87 +#define T_FIREKEY 88 +#define T_EMERALDKEY 89 +#define T_MACEKEY 90 +#define T_SILVERKEY 91 +#define T_RUSTYKEY 92 +#define T_HORNKEY 93 +#define T_SERPENTKEY 94 +#define T_WATERDRIP 95 +#define T_TEMPSMALLFLAME 96 +#define T_PERMSMALLFLAME 97 +#define T_PERMLARGEFLAME 99 +#define T_DEMON_MASH 100 +#define T_DEMON2_MASH 101 +#define T_ETTIN_MASH 102 +#define T_CENTAUR_MASH 103 +#define T_THRUSTSPIKEUP 104 +#define T_THRUSTSPIKEDOWN 105 +#define T_FLESH_DRIP1 106 +#define T_FLESH_DRIP2 107 +#define T_SPARK_DRIP 108 + + +// Flags returned by ClassifyActor + +#define ACTOR_NONE 0 +#define ACTOR_WORLD 1 +#define ACTOR_PLAYER 2 +#define ACTOR_BOT 4 +#define ACTOR_VOODOODOLL 8 +#define ACTOR_MONSTER 16 +#define ACTOR_ALIVE 32 +#define ACTOR_DEAD 64 +#define ACTOR_MISSILE 128 +#define ACTOR_GENERIC 256 + + +// Physical volumes for SoundSequenceOnSector + +#define SECSEQ_FLOOR 1 +#define SECSEQ_CEILING 2 +#define SECSEQ_FULLHEIGHT 3 +#define SECSEQ_INTERIOR 4 + +// Channels for PlaySound and StopSound + +#define CHAN_AUTO 0 +#define CHAN_WEAPON 1 +#define CHAN_VOICE 2 +#define CHAN_ITEM 3 +#define CHAN_BODY 4 +#define CHAN_5 5 +#define CHAN_6 6 +#define CHAN_7 7 + +// Modifier flags for PlaySound + +#define CHAN_LISTENERZ 8 +#define CHAN_MAYBE_LOCAL 16 +#define CHAN_UI 32 +#define CHAN_NOPAUSE 64 + +// Standard attenuation values for PlaySound + +#define ATTN_NONE 0 // full volume the entire level +#define ATTN_NORM 1.0 +#define ATTN_IDLE 1.001 +#define ATTN_STATIC 3.0 // dimish very rapidly with distance + +// Identifiers for PlayActorSound + +#define SOUND_See 0 +#define SOUND_Attack 1 +#define SOUND_Pain 2 +#define SOUND_Death 3 +#define SOUND_Active 4 +#define SOUND_Use 5 +#define SOUND_Bounce 6 +#define SOUND_WallBounce 7 +#define SOUND_CrushPain 8 +#define SOUND_Howl 9 + +// Flags for SpawnDecal + +#define SDF_ABSANGLE 1 +#define SDF_PERMANENT 2 + +// Actor pointer selectors + +#DEFINE AAPTR_DEFAULT 0 +#DEFINE AAPTR_NULL 0x1 +#DEFINE AAPTR_TARGET 0x2 +#DEFINE AAPTR_MASTER 0x4 +#DEFINE AAPTR_TRACER 0x8 + +#DEFINE AAPTR_PLAYER_GETTARGET 0x10 +#DEFINE AAPTR_PLAYER_GETCONVERSATION 0x20 + +#DEFINE AAPTR_PLAYER1 0x40 +#DEFINE AAPTR_PLAYER2 0x80 +#DEFINE AAPTR_PLAYER3 0x100 +#DEFINE AAPTR_PLAYER4 0x200 +#DEFINE AAPTR_PLAYER5 0x400 +#DEFINE AAPTR_PLAYER6 0x800 +#DEFINE AAPTR_PLAYER7 0x1000 +#DEFINE AAPTR_PLAYER8 0x2000 + +#DEFINE AAPTR_FRIENDPLAYER 0x4000 +#DEFINE AAPTR_GET_LINETARGET 0x8000 + +// Actor pointer operation flags + +#DEFINE PTROP_UNSAFETARGET 1 +#DEFINE PTROP_UNSAFEMASTER 2 +#DEFINE PTROP_NOSAFEGUARDS PTROP_UNSAFETARGET |PTROP_UNSAFEMASTER + +// Line activation flags + +#define SPAC_Cross 1 // when player crosses line +#define SPAC_Use 2 // when player uses line +#define SPAC_MCross 4 // when monster crosses line +#define SPAC_Impact 8 // when projectile hits line +#define SPAC_Push 16 // when player pushes line +#define SPAC_PCross 32 // when projectile crosses line +#define SPAC_UseThrough 64 // when player uses line (doesn't block) +#define SPAC_AnyCross 128 // when anything without the TELEPORT flag crosses the line +#define SPAC_MUse 256 // monsters can use +#define SPAC_MPush 512 // monsters can push +#define SPAC_UseBack 1024 // can be used from the back side + +#define SPAC_None 0 + +// GetArmorInfo + +#define ARMORINFO_CLASSNAME 0 +#define ARMORINFO_SAVEAMOUNT 1 +#define ARMORINFO_SAVEPERCENT 2 +#define ARMORINFO_MAXABSORB 3 +#define ARMORINFO_MAXFULLABSORB 4 +#define ARMORINFO_ACTUALSAVEAMOUNT 5 + +// ========================================================================== +// Skulltag Definitions +// ========================================================================== + +// Skulltag Teams ----------------------------------------------------------- +#define TEAM_BLUE 0 +#define TEAM_RED 1 +#define NO_TEAM 2 + +// Team properties ---------------------------------------------------------- +#define TPROP_Name 0 +#define TPROP_Score 1 +#define TPROP_IsValid 2 +#define TPROP_NumPlayers 3 +#define TPROP_NumLivePlayers 4 +#define TPROP_TextColor 5 +#define TPROP_PlayerStartNum 6 +#define TPROP_Spread 7 +#define TPROP_Carrier 8 +#define TPROP_Assister 9 +#define TPROP_FragCount 10 +#define TPROP_DeathCount 11 +#define TPROP_WinCount 12 +#define TPROP_PointCount 13 +#define TPROP_ReturnTics 14 +#define TPROP_TeamItem 15 +#define TPROP_WinnerTheme 16 +#define TPROP_LoserTheme 17 + +// Skulltag Invasion -------------------------------------------------------- +#define IS_WAITINGFORPLAYERS 0 +#define IS_FIRSTCOUNTDOWN 1 +#define IS_INPROGRESS 2 +#define IS_BOSSFIGHT 3 +#define IS_WAVECOMPLETE 4 +#define IS_COUNTDOWN 5 + + +#define T_GRENADE 216 +#define T_BFG10KSHOT 217 +#define T_DARKIMPFIREBALL 218 +#define T_CACOLANTERNSHOT 219 +#define T_ABADDONSHOT 221 + +// Skulltag Monsters -------------------------------------------------------- +#define T_DARKIMP 155 +#define T_BLOODDEMON 156 +#define T_SSGGUY 157 +#define T_HECTEBUS 158 +#define T_CACOLANTERN 159 +#define T_BELPHEGOR 215 +#define T_ABADDON 220 + +// Skulltag Weapons --------------------------------------------------------- +#define T_PISTOL 162 +#define T_GRENADELAUNCHER 163 +#define T_RAILGUN 164 +#define T_BFG10000 165 +#define T_MINIGUN 214 + +// Skulltag Armor/Health Items ---------------------------------------------- +#define T_MAXHEALTHBONUS 166 +#define T_MAXARMORBONUS 167 +#define T_REDARMOR 168 + +// Skulltag Powerups -------------------------------------------------------- +#define T_TURBOSPHERE 169 +#define T_ANTIGRAVBELT 170 +#define T_TIMEFREEZER 171 +#define T_INFRAGOGGLES 172 +#define T_INFRATRACKER 173 +#define T_TRANSLUCENCY 174 +#define T_DOOMSPHERE 175 +#define T_RANDOMPOWERUP 176 + +// Skulltag Flags ----------------------------------------------------------- +#define T_BLUEFLAG 177 +#define T_REDFLAG 178 +#define T_WHITEFLAG 179 + +// Skulltag Runes ----------------------------------------------------------- +#define T_STRENGTH 180 +#define T_RAGE 181 +#define T_DRAIN 182 +#define T_SPREAD 183 +#define T_RESISTANCE 184 +#define T_REGENERATION 185 +#define T_PROSPERITY 186 +#define T_REFLECTION 187 +#define T_HIGHJUMP 188 +#define T_HASTE 189 + +// Zandronum database additions --------------------------------------------- +#define DB_ORDER_ASC 0 +#define DB_ORDER_DESC 1 + +// Events when you have input grabbed + +#define EV_KeyDown 1 // data1: unshifted ASCII, data2: shifted ASCII +#define EV_KeyRepeat 2 // data1: unshifted ASCII, data2: shifted ASCII +#define EV_KeyUp 3 // data1: unshifted ASCII, data2: shifted ASCII +#define EV_Char 4 // data1: translated character for text input +#define EV_MouseMove 5 // data1: x, data2: y +#define EV_LButtonDown 6 +#define EV_LButtonUp 7 +#define EV_LButtonDblClick 8 +#define EV_MButtonDown 9 +#define EV_MButtonUp 10 +#define EV_MButtonDblClick 11 +#define EV_RButtonDown 12 +#define EV_RButtonUp 13 +#define EV_RButtonDblClick 14 +#define EV_WheelDown 15 +#define EV_WheelUp 16 + +// Key modifiers (or'd with event type) + +#define GKM_SHIFT 256 +#define GKM_CTRL 512 +#define GKM_ALT 1024 + +// Button modifiers are only valid for EV_MouseMove events + +#define GKM_LBUTTON 2048 +#define GKM_MBUTTON 4096 +#define GKM_RBUTTON 8192 + +// Special codes for some GUI keys, including a few real ASCII codes. + +#define GK_PGDN 1 +#define GK_PGUP 2 +#define GK_HOME 3 +#define GK_END 4 +#define GK_LEFT 5 +#define GK_RIGHT 6 +#define GK_ALERT 7 // ASCII bell +#define GK_BACKSPACE 8 // ASCII +#define GK_TAB 9 // ASCII +#define GK_LINEFEED 10 // ASCII +#define GK_DOWN 10 +#define GK_VTAB 11 // ASCII +#define GK_UP 11 +#define GK_FORMFEED 12 // ASCII +#define GK_RETURN 13 // ASCII +#define GK_F1 14 +#define GK_F2 15 +#define GK_F3 16 +#define GK_F4 17 +#define GK_F5 18 +#define GK_F6 19 +#define GK_F7 20 +#define GK_F8 21 +#define GK_F9 22 +#define GK_F10 23 +#define GK_F11 24 +#define GK_F12 25 +#define GK_DEL 26 +#define GK_ESCAPE 27 // ASCII +#define GK_FREE1 28 +#define GK_FREE2 29 +#define GK_FREE3 30 +#define GK_CESCAPE 31 // color escape + +#define CHANGELEVEL_KEEPFACING 1 +#define CHANGELEVEL_RESETINVENTORY 2 +#define CHANGELEVEL_NOMONSTERS 4 +#define CHANGELEVEL_CHANGESKILL 8 +#define CHANGELEVEL_NOINTERMISSION 16 +#define CHANGELEVEL_RESETHEALTH 32 +#define CHANGELEVEL_PRERAISEWEAPON 64 + +#define NO_CHANGE 32767.0 + +#define SECF_SILENT 1 +#define SECF_NOFALLINGDAMAGE 2 +#define SECF_FLOORDROP 4 +#define SECF_NORESPAWN 8 +#define SECF_FRICTION 16 +#define SECF_PUSH 32 +#define SECF_SILENTMOVE 64 +#define SECF_DMGTERRAINFX 128 +#define SECF_DMGENDGODMODE 256 +#define SECF_DMGENDLEVEL 512 +#define SECF_DMGHAZARD 1024 + +#define BLOCKF_CREATURES 1 +#define BLOCKF_MONSTERS 2 +#define BLOCKF_PLAYERS 4 +#define BLOCKF_FLOATERS 8 +#define BLOCKF_PROJECTILES 16 +#define BLOCKF_EVERYTHING 32 +#define BLOCKF_RAILING 64 +#define BLOCKF_USE 128 +#define BLOCKF_SIGHT 256 +#define BLOCKF_HITSCAN 512 +#define BLOCKF_SOUND 1024 + +#define FOGP_DENSITY 0 +#define FOGP_OUTSIDEDENSITY 1 +#define FOGP_SKYFOG 2 + +#define PRINTNAME_LEVELNAME -1 +#define PRINTNAME_LEVEL -2 +#define PRINTNAME_SKILL -3 +#define PRINTNAME_NEXTLEVEL -4 +#define PRINTNAME_NEXTSECRET -5 + +#define CSF_NOFAKEFLOORS 1 +#define CSF_NOBLOCKALL 2 + +#define FHF_NORANDOMPUFFZ 1 +#define FHF_NOIMPACTDECAL 2 + +// PickActor flags + +#define PICKAF_FORCETID 1 +#define PICKAF_RETURNTID 2 + +// magic value to set the ice translation through ACS +#define TRANSLATION_ICE 0x100007 + +// Actor flags +#define MF_SPECIAL 0x00000001 +#define MF_SOLID 0x00000002 +#define MF_SHOOTABLE 0x00000004 +#define MF_NOSECTOR 0x00000008 +#define MF_NOBLOCKMAP 0x00000010 +#define MF_AMBUSH 0x00000020 +#define MF_JUSTHIT 0x00000040 +#define MF_JUSTATTACKED 0x00000080 +#define MF_SPAWNCEILING 0x00000100 +#define MF_NOGRAVITY 0x00000200 +#define MF_DROPOFF 0x00000400 +#define MF_PICKUP 0x00000800 +#define MF_NOCLIP 0x00001000 +#define MF_INCHASE 0x00002000 +#define MF_FLOAT 0x00004000 +#define MF_TELEPORT 0x00008000 +#define MF_MISSILE 0x00010000 +#define MF_DROPPED 0x00020000 +#define MF_SHADOW 0x00040000 +#define MF_NOBLOOD 0x00080000 +#define MF_CORPSE 0x00100000 +#define MF_INFLOAT 0x00200000 +#define MF_INBOUNCE 0x00200000 +#define MF_COUNTKILL 0x00400000 +#define MF_COUNTITEM 0x00800000 +#define MF_SKULLFLY 0x01000000 +#define MF_NOTDMATCH 0x02000000 +#define MF_SPAWNSOUNDSOURCE 0x04000000 +#define MF_FRIENDLY 0x08000000 +#define MF_UNMORPHED 0x10000000 +#define MF_NOLIFTDROP 0x20000000 +#define MF_STEALTH 0x40000000 +#define MF_ICECORPSE 0x80000000 + +// Linedef flags +#define ML_BLOCKING 0x00000001 +#define ML_BLOCKMONSTERS 0x00000002 +#define ML_TWOSIDED 0x00000004 +#define ML_DONTPEGTOP 0x00000008 +#define ML_DONTPEGBOTTOM 0x00000010 +#define ML_SECRET 0x00000020 +#define ML_SOUNDBLOCK 0x00000040 +#define ML_DONTDRAW 0x00000080 +#define ML_MAPPED 0x00000100 +#define ML_REPEAT_SPECIAL 0x00000200 +#define ML_ADDTRANS 0x00000400 +#define ML_MONSTERSCANACTIVATE 0x00002000 +#define ML_BLOCK_PLAYERS 0x00004000 +#define ML_BLOCKEVERYTHING 0x00008000 +#define ML_ZONEBOUNDARY 0x00010000 +#define ML_RAILING 0x00020000 +#define ML_BLOCK_FLOATERS 0x00040000 +#define ML_CLIP_MIDTEX 0x00080000 +#define ML_WRAP_MIDTEX 0x00100000 +#define ML_3DMIDTEX 0x00200000 +#define ML_CHECKSWITCHRANGE 0x00400000 +#define ML_FIRSTSIDEONLY 0x00800000 +#define ML_BLOCKPROJECTILE 0x01000000 +#define ML_BLOCKUSE 0x02000000 +#define ML_BLOCKSIGHT 0x04000000 +#define ML_BLOCKHITSCAN 0x08000000 + +#define QF_RELATIVE 1 +#define QF_SCALEDOWN 1 << 1 +#define QF_SCALEUP 1 << 2 +#define QF_MAX 1 << 3 +#define QF_FULLINTENSITY 1 << 4 +#define QF_WAVE 1 << 5 + +#define WARPF_ABSOLUTEOFFSET 0x1 +#define WARPF_ABSOLUTEANGLE 0x2 +#define WARPF_USECALLERANGLE 0x4 +#define WARPF_NOCHECKPOSITION 0x8 +#define WARPF_INTERPOLATE 0x10 +#define WARPF_WARPINTERPOLATION 0x20 +#define WARPF_COPYINTERPOLATION 0x40 +#define WARPF_STOP 0x80 +#define WARPF_TOFLOOR 0x100 +#define WARPF_TESTONLY 0x200 +#define WARPF_ABSOLUTEPOSITION 0x400 +#define WARPF_BOB 0x800 +#define WARPF_MOVEPTR 0x1000 +#define WARPF_USEPTR 0x2000 +#define WARPF_COPYVELOCITY 0x4000 +#define WARPF_COPYPITCH 0x8000 + +#define CPXF_ANCESTOR (1 << 0) +#define CPXF_LESSOREQUAL (1 << 1) +#define CPXF_NOZ (1 << 2) +#define CPXF_COUNTDEAD (1 << 3) +#define CPXF_DEADONLY (1 << 4) +#define CPXF_EXACT (1 << 5) +#define CPXF_SETTARGET (1 << 6) +#define CPXF_SETMASTER (1 << 7) +#define CPXF_SETTRACER (1 << 8) +#define CPXF_FARTHEST (1 << 9) +#define CPXF_CLOSEST (1 << 10) +#define CPXF_SETONPTR (1 << 11) +#define CPXF_CHECKSIGHT (1 << 12) + +#define SECPART_Floor 0 +#define SECPART_Ceiling 1 +#define SECPART_3D 2 + +// For Line_SetAutomapFlags; These are or'd together +#define AMLF_Secret (1 << 0) +#define AMLF_DontDraw (1 << 1) +#define AMLF_Mapped (1 << 2) +#define AMLF_Revealed (1 << 3) + +// For Line_SetAutomapStyle +#define AMLS_Default 0 +#define AMLS_OneSided 1 +#define AMLS_TwoSided 2 +#define AMLS_FloorDiff 3 +#define AMLS_CeilingDiff 4 +#define AMLS_ExtraFloor 5 +#define AMLS_Special 6 +#define AMLS_Secret 7 +#define AMLS_NotSeen 8 +#define AMLS_Locked 9 +#define AMLS_IntraTeleport 10 +#define AMLS_InterTeleport 11 +#define AMLS_UnexploredSecret 12 +#define AMLS_Portal 13