//************************************************************************** //** //** 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 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 // 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 // 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 // "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_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_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 // 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 or translucent, based on user preference #define STYLE_Translucent 64 // Draw translucent #define STYLE_Add 65 // Draw additive // 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 // 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 // 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 // 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 // All D'Sparil teleport destinations must be spawned before D'Sparil alone. // D'Sparil can be spawned alone manually, and he is also spawned automatically // when he "dies" on his serpent. #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 // 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 NO_CHANGE -32767.0 #define SECF_SILENT 1 #define SECF_NOFALLINGDAMAGE 2