From d67894546c104bd47a995d0bbd965feca1c5af7d Mon Sep 17 00:00:00 2001 From: biwa <6475593+biwa@users.noreply.github.com> Date: Sun, 5 Nov 2023 17:57:45 +0100 Subject: [PATCH] Updated ACC version for GZDoom to 1.60. Fixes #972 --- Build/Compilers/ZDoom/acc.exe | Bin 125440 -> 145408 bytes Build/Compilers/ZDoom/zcommon.acs | 30 +- Build/Compilers/ZDoom/zdefs.acs | 2343 ++++++++++++++-------------- Build/Compilers/ZDoom/zspecial.acs | 933 +++++------ Build/Compilers/ZDoom/zwvars.acs | 16 +- 5 files changed, 1691 insertions(+), 1631 deletions(-) diff --git a/Build/Compilers/ZDoom/acc.exe b/Build/Compilers/ZDoom/acc.exe index 9ae2387dcbde7543b14294582bdd8b3ab8ebde95..a9707c4146dc1682ac94f0dc0ca6edeca0cc740f 100755 GIT binary patch literal 145408 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
    kQ*?WD6VB81M$^Yf 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 literal 125440 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

    8o~dP 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

    WxzGSY@h=00nNZ~fWHGT1OEd0fYj&dBX9vw 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 diff --git a/Build/Compilers/ZDoom/zcommon.acs b/Build/Compilers/ZDoom/zcommon.acs index 7a43ef93..5cdec5d6 100755 --- a/Build/Compilers/ZDoom/zcommon.acs +++ b/Build/Compilers/ZDoom/zcommon.acs @@ -1,15 +1,15 @@ - -//************************************************************************** -//** -//** zcommon.acs -//** -//************************************************************************** - -// If you are not using the -h command line switch and do not want to use -// WadAuthor's error checker, you can uncomment the following line to shave -// a few bytes off the size of compiled scripts. -//#nowadauthor - -#include "zspecial.acs" -#include "zdefs.acs" -#include "zwvars.acs" + +//************************************************************************** +//** +//** zcommon.acs +//** +//************************************************************************** + +// If you are not using the -h command line switch and do not want to use +// WadAuthor's error checker, you can uncomment the following line to shave +// a few bytes off the size of compiled scripts. +//#nowadauthor + +#include "zspecial.acs" +#include "zdefs.acs" +#include "zwvars.acs" diff --git a/Build/Compilers/ZDoom/zdefs.acs b/Build/Compilers/ZDoom/zdefs.acs index 87bcf5aa..4b14847e 100755 --- a/Build/Compilers/ZDoom/zdefs.acs +++ b/Build/Compilers/ZDoom/zdefs.acs @@ -1,1160 +1,1183 @@ -//************************************************************************** -//** -//** 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 -#define APROP_SoundClass 47 -#define APROP_FriendlySeeBlocks 48 - -// 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 -#define SDF_FIXED_ZOFF 4 -#define SDF_FIXED_DISTANCE 8 - -// 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 BLOCKF_LANDMONSTERS 2048 - -#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 QF_3D 1 << 6 -#define QF_GROUNDONLY 1 << 7 -#define QF_AFFECTACTORS 1 << 8 -#define QF_SHAKEONLY 1 << 9 - -#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 +#define PROP_BUDDHA2 17 +#define PROP_FRIGHTENING 18 +#define PROP_NOCLIP 19 +#define PROP_NOCLIP2 20 +#define PROP_GODMODE 21 +#define PROP_GODMODE2 22 + +// 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 +#define APROP_SoundClass 47 +#define APROP_FriendlySeeBlocks 48 +#define APROP_WaterDepth 49 + +// 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 +#define PLAYERINFO_FVIEWBOB 10 + + +// 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 +#define SDF_FIXED_ZOFF 4 +#define SDF_FIXED_DISTANCE 8 + +// 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 CHANGELEVEL_NOAUTOSAVE 128 // VKDoom + +#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 BLOCKF_LANDMONSTERS 2048 + +#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 QF_3D 1 << 6 +#define QF_GROUNDONLY 1 << 7 +#define QF_AFFECTACTORS 1 << 8 +#define QF_SHAKEONLY 1 << 9 +#define QF_DAMAGEFALLOFF 1 << 10 + +#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 + +// Lump reading stuff. +#define LUMP_OPEN_FULLPATH 1 + +#define LUMP_READ_BYTE 0 +#define LUMP_READ_UBYTE 1 +#define LUMP_READ_SHORT 2 +#define LUMP_READ_USHORT 3 +#define LUMP_READ_INT 4 +#define LUMP_READ_FLOAT 5 + +#define LUMP_INFO_SIZE 0 +#define LUMP_INFO_NAME 1 diff --git a/Build/Compilers/ZDoom/zspecial.acs b/Build/Compilers/ZDoom/zspecial.acs index fc0e7814..06805abb 100755 --- a/Build/Compilers/ZDoom/zspecial.acs +++ b/Build/Compilers/ZDoom/zspecial.acs @@ -1,448 +1,485 @@ -//************************************************************************** -//** -//** zspecials.acs -//** -//************************************************************************** - -special -// 1:Polyobj_StartLine - 2:Polyobj_RotateLeft(3), - 3:Polyobj_RotateRight(3), - 4:Polyobj_Move(4), -// 5:Polyobj_ExplicitLine - 6:Polyobj_MoveTimes8(4), - 7:Polyobj_DoorSwing(4), - 8:Polyobj_DoorSlide(5), - 9:Line_Horizon(0), - 10:Door_Close(2,3), - 11:Door_Open(2,3), - 12:Door_Raise(3,4), - 13:Door_LockedRaise(4,5), - 14:Door_Animated(3,4), - 15:Autosave(0), -// 16:Transfer_WallLight - 17:Thing_Raise(1,2), - 18:StartConversation(1,2), - 19:Thing_Stop(1), - 20:Floor_LowerByValue(3,4), - 21:Floor_LowerToLowest(2,3), - 22:Floor_LowerToNearest(2,3), - 23:Floor_RaiseByValue(3,5), - 24:Floor_RaiseToHighest(2,5), - 25:Floor_RaiseToNearest(2,4), - 26:Stairs_BuildDown(5), - 27:Stairs_BuildUp(5), - 28:Floor_RaiseAndCrush(3,4), - 29:Pillar_Build(3), - 30:Pillar_Open(4), - 31:Stairs_BuildDownSync(4), - 32:Stairs_BuildUpSync(4), - 33:ForceField(0), - 34:ClearForceField(1), - 35:Floor_RaiseByValueTimes8(3,5), - 36:Floor_LowerByValueTimes8(3,4), - 37:Floor_MoveToValue(3,5), - 38:Ceiling_Waggle(5), - 39:Teleport_ZombieChanger(2), - 40:Ceiling_LowerByValue(3,5), - 41:Ceiling_RaiseByValue(3,4), - 42:Ceiling_CrushAndRaise(3,4), - 43:Ceiling_LowerAndCrush(3,4), - 44:Ceiling_CrushStop(1,2), - 45:Ceiling_CrushRaiseAndStay(3,4), - 46:Floor_CrushStop(1), - 47:Ceiling_MoveToValue(3,5), -// 48:Sector_Attach3dMidtex - 49:GlassBreak(0,2), -// 50:ExtraFloor_LightOnly - 51:Sector_SetLink(4), - 52:Scroll_Wall(5), - 53:Line_SetTextureOffset(5), - 54:Sector_ChangeFlags(3), - 55:Line_SetBlocking(3), - 56:Line_SetTextureScale(5), -// 57: Sector_SetPortal -// 58: Sector_CopyScroller - 59:Polyobj_OR_MoveToSpot(3), - 60:Plat_PerpetualRaise(3), - 61:Plat_Stop(1,2), - 62:Plat_DownWaitUpStay(3), - 63:Plat_DownByValue(4), - 64:Plat_UpWaitDownStay(3), - 65:Plat_UpByValue(4), - 66:Floor_LowerInstant(3,4), - 67:Floor_RaiseInstant(3,5), - 68:Floor_MoveToValueTimes8(4,5), - 69:Ceiling_MoveToValueTimes8(4,5), - 70:Teleport(1,3), - 71:Teleport_NoFog(1,4), - 72:ThrustThing(2,4), - 73:DamageThing(1,2), - 74:Teleport_NewMap(2,3), - 75:Teleport_EndGame(0), - 76:TeleportOther(3), - 77:TeleportGroup(5), - 78:TeleportInSector(4,5), - 79:Thing_SetConversation(2), - 80:ACS_Execute(2,5), - 81:ACS_Suspend(2), - 82:ACS_Terminate(2), - 83:ACS_LockedExecute(5), - 84:ACS_ExecuteWithResult(1,5), - 85:ACS_LockedExecuteDoor(5), - 86:Polyobj_MoveToSpot(3), - 87:Polyobj_Stop(1), - 88:Polyobj_MoveTo(4), - 89:Polyobj_OR_MoveTo(4), - 90:Polyobj_OR_RotateLeft(3), - 91:Polyobj_OR_RotateRight(3), - 92:Polyobj_OR_Move(4), - 93:Polyobj_OR_MoveTimes8(4), - 94:Pillar_BuildAndCrush(4,5), - 95:FloorAndCeiling_LowerByValue(3), - 96:FloorAndCeiling_RaiseByValue(3), - 97:Ceiling_LowerAndCrushDist(3,5), - 98:Sector_SetTranslucent(3,4), - 99:Floor_RaiseAndCrushDoom(3,4), -// 100:Scroll_Texture_Left -// 101:Scroll_Texture_Right -// 102:Scroll_Texture_Up -// 103:Scroll_Texture_Down - 104:Ceiling_CrushAndRaiseSilentDist(4,5), - 105:Door_WaitRaise(4,5), - 106:Door_WaitClose(3,4), - 107:Line_SetPortalTarget(2), - - 109:Light_ForceLightning(1), - 110:Light_RaiseByValue(2), - 111:Light_LowerByValue(2), - 112:Light_ChangeToValue(2), - 113:Light_Fade(3), - 114:Light_Glow(4), - 115:Light_Flicker(3), - 116:Light_Strobe(5), - 117:Light_Stop(1), -// 118:Plane_Copy - 119:Thing_Damage(2,3), - 120:Radius_Quake(5), -// 121:Line_SetIdentification - - 125:Thing_Move(2,3), - - 127:Thing_SetSpecial(5), - 128:ThrustThingZ(4), - 129:UsePuzzleItem(0), // only for setting it on a line. Cannot be called! - 130:Thing_Activate(1), - 131:Thing_Deactivate(1), - 132:Thing_Remove(1), - 133:Thing_Destroy(1,3), - 134:Thing_Projectile(5), - 135:Thing_Spawn(3,4), - 136:Thing_ProjectileGravity(5), - 137:Thing_SpawnNoFog(3,4), - 138:Floor_Waggle(5), - 139:Thing_SpawnFacing(2,4), - 140:Sector_ChangeSound(2), - - 143:Player_RemoveItem(2), // Skulltag Functions - 144:Player_GiveItem(2), // Skulltag Functions - 145:Player_SetTeam(1), // Skulltag Functions - 150:Line_SetHealth(2), - 151:Sector_SetHealth(3), - 152:Team_Score(2), // Skulltag Functions - 153:Team_GivePoints(3), // Skulltag Functions - 154:Teleport_NoStop(2, 3), - - 157:SetGlobalFogParameter(2), // GZDoom only! - 158:FS_Execute(1,4), - 159:Sector_SetPlaneReflection(3), // GZDoom only! -// 160:Sector_Set3DFloor -// 161:Sector_SetContents - - 168:Ceiling_CrushAndRaiseDist(3,5), - 169:Generic_Crusher2(5), - 170:Sector_SetCeilingScale2(3), - 171:Sector_SetFloorScale2(3), - 172:Plat_UpNearestWaitDownStay(3), - 173:NoiseAlert(2), - 174:SendToCommunicator(4), - 175:Thing_ProjectileIntercept(5), - 176:Thing_ChangeTID(2), - 177:Thing_Hate(2,3), - 178:Thing_ProjectileAimed(4,5), - 179:ChangeSkill(1), - 180:Thing_SetTranslation(2), -// 181:Plane_Align, - 182:Line_Mirror(0), - 183:Line_AlignCeiling(2), - 184:Line_AlignFloor(2), - 185:Sector_SetRotation(3), - 186:Sector_SetCeilingPanning(5), - 187:Sector_SetFloorPanning(5), - 188:Sector_SetCeilingScale(5), - 189:Sector_SetFloorScale(5), - 191:SetPlayerProperty(3), - 192:Ceiling_LowerToHighestFloor(2,5), - 193:Ceiling_LowerInstant(3,5), - 194:Ceiling_RaiseInstant(3,4), - 195:Ceiling_CrushRaiseAndStayA(4,5), - 196:Ceiling_CrushAndRaiseA(4,5), - 197:Ceiling_CrushAndRaiseSilentA(4,5), - 198:Ceiling_RaiseByValueTimes8(3,4), - 199:Ceiling_LowerByValueTimes8(3,5), - 200:Generic_Floor(5), - 201:Generic_Ceiling(5), - 202:Generic_Door(5), - 203:Generic_Lift(5), - 204:Generic_Stairs(5), - 205:Generic_Crusher(5), - 206:Plat_DownWaitUpStayLip(4,5), - 207:Plat_PerpetualRaiseLip(4), - 208:TranslucentLine(2,3), -// 209:Transfer_Heights, -// 210:Transfer_FloorLight, -// 211:Transfer_CeilingLight, - 212:Sector_SetColor(4,5), - 213:Sector_SetFade(4), - 214:Sector_SetDamage(3,5), - 215:Teleport_Line(2,3), - 216:Sector_SetGravity(3), - 217:Stairs_BuildUpDoom(5), - 218:Sector_SetWind(4), - 219:Sector_SetFriction(2), - 220:Sector_SetCurrent(4), - 221:Scroll_Texture_Both(5), -// 222:Scroll_Texture_Model, - 223:Scroll_Floor(4), - 224:Scroll_Ceiling(4), -// 225:Scroll_Texture_Offsets, - 226:ACS_ExecuteAlways(2,5), -// 227:PointPush_SetForce, - 228:Plat_RaiseAndStayTx0(2,3), - 229:Thing_SetGoal(3,4), - 230:Plat_UpByValueStayTx(3), - 231:Plat_ToggleCeiling(1), - 232:Light_StrobeDoom(3), - 233:Light_MinNeighbor(1), - 234:Light_MaxNeighbor(1), - 235:Floor_TransferTrigger(1), - 236:Floor_TransferNumeric(1), - 237:ChangeCamera(3), - 238:Floor_RaiseToLowestCeiling(2,5), - 239:Floor_RaiseByValueTxTy(3), - 240:Floor_RaiseByTexture(2,4), - 241:Floor_LowerToLowestTxTy(2), - 242:Floor_LowerToHighest(3,4), - 243:Exit_Normal(1), - 244:Exit_Secret(1), - 245:Elevator_RaiseToNearest(2), - 246:Elevator_MoveToFloor(2), - 247:Elevator_LowerToNearest(2), - 248:HealThing(1,2), - 249:Door_CloseWaitOpen(3, 4), - 250:Floor_Donut(3), - 251:FloorAndCeiling_LowerRaise(3,4), - 252:Ceiling_RaiseToNearest(2,3), - 253:Ceiling_LowerToLowest(2,4), - 254:Ceiling_LowerToFloor(2,5), - 255:Ceiling_CrushRaiseAndStaySilA(4,5), - - // These are specialized versions of the Generic_* specials which are defined for EE Extradata. - 256:Floor_LowerToHighestEE(2, 3), - 257:Floor_RaiseToLowest(2, 3), - 258:Floor_LowerToLowestCeiling(2,3), - 259:Floor_RaiseToCeiling(2, 5), - 260:Floor_ToCeilingInstant(1, 4), - 261:Floor_LowerByTexture(2, 3), - 262:Ceiling_RaiseToHighest(2, 3), - 263:Ceiling_ToHighestInstant(1, 3), - 264:Ceiling_LowerToNearest(2, 4), - 265:Ceiling_RaiseToLowest(2, 3), - 266:Ceiling_RaiseToHighestFloor(2, 3), - 267:Ceiling_ToFloorInstant(1, 4), - 268:Ceiling_RaiseByTexture(2, 3), - 269:Ceiling_LowerByTexture(2, 4), - 270:Stairs_BuildDownDoom(5), - 271:Stairs_BuildUpDoomSync(4), - 272:Stairs_BuildDownDoomSync(4), - - // New additions can go above 255 now. - 273:Stairs_BuildUpDoomCrush(5), - 274:Door_AnimatedClose(2), - 275:Floor_Stop(1), - 276:Ceiling_Stop(1), - 277:Sector_SetFloorGlow(5), - 278:Sector_SetCeilingGlow(5), - 279:Floor_MoveToValueAndCrush(4, 5), - 280:Ceiling_MoveToValueAndCrush(4, 5), - 281:Line_SetAutomapFlags(3), - 282:Line_SetAutomapStyle(2), - 283:Polyobj_StopSound(1), - - // new to Eternity -// 300:Portal_Define(5), -// 301:Line_QuickPortal(1), - - - // internal functions have negative values - -1:GetLineUDMFInt(2), - -2:GetLineUDMFFixed(2), - -3:GetThingUDMFInt(2), - -4:GetThingUDMFFixed(2), - -5:GetSectorUDMFInt(2), - -6:GetSectorUDMFFixed(2), - -7:GetSideUDMFInt(3), - -8:GetSideUDMFFixed(3), - -9:GetActorVelX(1), - -10:GetActorVelY(1), - -11:GetActorVelZ(1), - -12:SetActivator(1,2), - -13:SetActivatorToTarget(1), - -14:GetActorViewHeight(1), - -15:GetChar(2), - -16:GetAirSupply(1), - -17:SetAirSupply(2), - -18:SetSkyScrollSpeed(2), - -19:GetArmorType(2), - -20:SpawnSpotForced(4), - -21:SpawnSpotFacingForced(3), - -22:CheckActorProperty(3), - -23:SetActorVelocity(6), - -24:SetUserVariable(3), - -25:GetUserVariable(2), - -26:Radius_Quake2(6), - -27:CheckActorClass(2), - -28:SetUserArray(4), - -29:GetUserArray(3), - -30:SoundSequenceOnActor(2), - -31:SoundSequenceOnSector(3), - -32:SoundSequenceOnPolyobj(2), - -33:GetPolyobjX(1), - -34:GetPolyobjY(1), - -35:CheckSight(3), - -36:SpawnForced(4,6), - -37:AnnouncerSound(2), - -38:SetPointer(2,4), - -39:ACS_NamedExecute(2,5), - -40:ACS_NamedSuspend(2), - -41:ACS_NamedTerminate(2), - -42:ACS_NamedLockedExecute(5), - -43:ACS_NamedLockedExecuteDoor(5), - -44:ACS_NamedExecuteWithResult(1,5), - -45:ACS_NamedExecuteAlways(2,5), - -46:UniqueTID(0,2), - -47:IsTIDUsed(1), - -48:Sqrt(1), - -49:FixedSqrt(1), - -50:VectorLength(2), - -51:SetHUDClipRect(4,6), - -52:SetHUDWrapWidth(1), - -53:SetCVar(2), - -54:GetUserCVar(2), - -55:SetUserCVar(3), - -56:GetCVarString(1), - -57:SetCVarString(2), - -58:GetUserCVarString(2), - -59:SetUserCVarString(3), - -60:LineAttack(4,9), - -61:PlaySound(2,7), - -62:StopSound(1,2), - -63:strcmp(2,3), - -64:stricmp(2,3), - -64:strcasecmp(2,3), // an alias for stricmp - -65:StrLeft(2), - -66:StrRight(2), - -67:StrMid(3), - -68:GetActorClass(1), - -69:GetWeapon(0), - -70:SoundVolume(3), - -71:PlayActorSound(2,6), - -72:SpawnDecal(2,6), - -73:CheckFont(1), - -74:DropItem(2,4), - -75:CheckFlag(2), - -76:SetLineActivation(2, 3), - -77:GetLineActivation(1), - -78:GetActorPowerupTics(2), - -79:ChangeActorAngle(2,3), - -80:ChangeActorPitch(2,3), - -81:GetArmorInfo(1), - -82:DropInventory(2), - -83:PickActor(5,8), - -84:IsPointerEqual(2,4), - -85:CanRaiseActor(1), - -86:SetActorTeleFog(3), - -87:SwapActorTeleFog(1), - -88:SetActorRoll(2), - -89:ChangeActorRoll(2,3), - -90:GetActorRoll(1), - -91:QuakeEx(8,16), - -92:Warp(6,11), - -93:GetMaxInventory(2), - -94:SetSectorDamage(2,5), - -95:SetSectorTerrain(3), - -96:SpawnParticle(1,16), - -97:SetMusicVolume(1), - -98:CheckProximity(3, 6), - -99:CheckActorState(2,3), - - // Zandronum's - -100:ResetMap(0), - -101:PlayerIsSpectator(1), - -102:ConsolePlayerNumber(0), - -103:GetTeamProperty(2), - -104:GetPlayerLivesLeft(1), - -105:SetPlayerLivesLeft(2), - -106:KickFromGame(2), - -107:GetGamemodeState(0), - -108:SetDBEntry(3), - -109:GetDBEntry(2), - -110:SetDBEntryString(3), - -111:GetDBEntryString(2), - -112:IncrementDBEntry(3), - -113:PlayerIsLoggedIn(1), - -114:GetPlayerAccountName(1), - -115:SortDBEntries(4), - -116:CountDBResults(1), - -117:FreeDBResults(1), - -118:GetDBResultKeyString(2), - -119:GetDBResultValueString(2), - -120:GetDBResultValue(2), - -121:GetDBEntryRank(3), - -122:RequestScriptPuke(4), - -123:BeginDBTransaction(0), - -124:EndDBTransaction(0), - -125:GetDBEntries(1), - - // -1xx are reserved for Zandronum - -200:CheckClass(1), - -201:DamageActor(6), // [arookas] - -202:SetActorFlag(3), - -203:SetTranslation(2), - -204:GetActorFloorTexture(1), - -205:GetActorFloorTerrain(1), - -206:StrArg(1), - -207:Floor(1), - -208:Round(1), - -209:Ceil(1), - -210:ScriptCall(2, 100), // ACS does not know varargs so use something large as maximum. - -211:StartSlideshow(1), - -212:GetSectorHealth(2), - -213:GetLineHealth(1), - -214:SetSubtitleNumber(2), - - - // Eternity's - -300:GetLineX(3), - -301:GetLineY(3), - -302:SetAirFriction(1), - - // GZDoom OpenGL - -400:SetSectorGlow(6), - -401:SetFogDensity(2), - - // ZDaemon's - -19620:GetTeamScore(1), - -19621:SetTeamScore(2), - - -100000:__EndOfList__(10); +//************************************************************************** +//** +//** zspecials.acs +//** +//************************************************************************** + +special +// 1:Polyobj_StartLine + 2:Polyobj_RotateLeft(3), + 3:Polyobj_RotateRight(3), + 4:Polyobj_Move(4), +// 5:Polyobj_ExplicitLine + 6:Polyobj_MoveTimes8(4), + 7:Polyobj_DoorSwing(4), + 8:Polyobj_DoorSlide(5), + 9:Line_Horizon(0), + 10:Door_Close(2,3), + 11:Door_Open(2,3), + 12:Door_Raise(3,4), + 13:Door_LockedRaise(4,5), + 14:Door_Animated(3,4), + 15:Autosave(0), +// 16:Transfer_WallLight + 17:Thing_Raise(1,2), + 18:StartConversation(1,2), + 19:Thing_Stop(1), + 20:Floor_LowerByValue(3,4), + 21:Floor_LowerToLowest(2,3), + 22:Floor_LowerToNearest(2,3), + 23:Floor_RaiseByValue(3,5), + 24:Floor_RaiseToHighest(2,5), + 25:Floor_RaiseToNearest(2,4), + 26:Stairs_BuildDown(5), + 27:Stairs_BuildUp(5), + 28:Floor_RaiseAndCrush(3,4), + 29:Pillar_Build(3), + 30:Pillar_Open(4), + 31:Stairs_BuildDownSync(4), + 32:Stairs_BuildUpSync(4), + 33:ForceField(0), + 34:ClearForceField(1), + 35:Floor_RaiseByValueTimes8(3,5), + 36:Floor_LowerByValueTimes8(3,4), + 37:Floor_MoveToValue(3,5), + 38:Ceiling_Waggle(5), + 39:Teleport_ZombieChanger(2), + 40:Ceiling_LowerByValue(3,5), + 41:Ceiling_RaiseByValue(3,4), + 42:Ceiling_CrushAndRaise(3,4), + 43:Ceiling_LowerAndCrush(3,4), + 44:Ceiling_CrushStop(1,2), + 45:Ceiling_CrushRaiseAndStay(3,4), + 46:Floor_CrushStop(1), + 47:Ceiling_MoveToValue(3,5), +// 48:Sector_Attach3dMidtex + 49:GlassBreak(0,2), +// 50:ExtraFloor_LightOnly + 51:Sector_SetLink(4), + 52:Scroll_Wall(5), + 53:Line_SetTextureOffset(5), + 54:Sector_ChangeFlags(3), + 55:Line_SetBlocking(3), + 56:Line_SetTextureScale(5), +// 57: Sector_SetPortal +// 58: Sector_CopyScroller + 59:Polyobj_OR_MoveToSpot(3), + 60:Plat_PerpetualRaise(3), + 61:Plat_Stop(1,2), + 62:Plat_DownWaitUpStay(3), + 63:Plat_DownByValue(4), + 64:Plat_UpWaitDownStay(3), + 65:Plat_UpByValue(4), + 66:Floor_LowerInstant(3,4), + 67:Floor_RaiseInstant(3,5), + 68:Floor_MoveToValueTimes8(4,5), + 69:Ceiling_MoveToValueTimes8(4,5), + 70:Teleport(1,3), + 71:Teleport_NoFog(1,4), + 72:ThrustThing(2,4), + 73:DamageThing(1,2), + 74:Teleport_NewMap(2,3), + 75:Teleport_EndGame(0), + 76:TeleportOther(3), + 77:TeleportGroup(5), + 78:TeleportInSector(4,5), + 79:Thing_SetConversation(2), + 80:ACS_Execute(2,5), + 81:ACS_Suspend(2), + 82:ACS_Terminate(2), + 83:ACS_LockedExecute(5), + 84:ACS_ExecuteWithResult(1,5), + 85:ACS_LockedExecuteDoor(5), + 86:Polyobj_MoveToSpot(3), + 87:Polyobj_Stop(1), + 88:Polyobj_MoveTo(4), + 89:Polyobj_OR_MoveTo(4), + 90:Polyobj_OR_RotateLeft(3), + 91:Polyobj_OR_RotateRight(3), + 92:Polyobj_OR_Move(4), + 93:Polyobj_OR_MoveTimes8(4), + 94:Pillar_BuildAndCrush(4,5), + 95:FloorAndCeiling_LowerByValue(3), + 96:FloorAndCeiling_RaiseByValue(3), + 97:Ceiling_LowerAndCrushDist(3,5), + 98:Sector_SetTranslucent(3,4), + 99:Floor_RaiseAndCrushDoom(3,4), +// 100:Scroll_Texture_Left +// 101:Scroll_Texture_Right +// 102:Scroll_Texture_Up +// 103:Scroll_Texture_Down + 104:Ceiling_CrushAndRaiseSilentDist(4,5), + 105:Door_WaitRaise(4,5), + 106:Door_WaitClose(3,4), + 107:Line_SetPortalTarget(2), + + 109:Light_ForceLightning(1), + 110:Light_RaiseByValue(2), + 111:Light_LowerByValue(2), + 112:Light_ChangeToValue(2), + 113:Light_Fade(3), + 114:Light_Glow(4), + 115:Light_Flicker(3), + 116:Light_Strobe(5), + 117:Light_Stop(1), +// 118:Plane_Copy + 119:Thing_Damage(2,3), + 120:Radius_Quake(5), +// 121:Line_SetIdentification + + 125:Thing_Move(2,3), + + 127:Thing_SetSpecial(5), + 128:ThrustThingZ(4), + 129:UsePuzzleItem(0), // only for setting it on a line. Cannot be called! + 130:Thing_Activate(1), + 131:Thing_Deactivate(1), + 132:Thing_Remove(1), + 133:Thing_Destroy(1,3), + 134:Thing_Projectile(5), + 135:Thing_Spawn(3,4), + 136:Thing_ProjectileGravity(5), + 137:Thing_SpawnNoFog(3,4), + 138:Floor_Waggle(5), + 139:Thing_SpawnFacing(2,4), + 140:Sector_ChangeSound(2), + + 143:Player_RemoveItem(2), // Skulltag Functions + 144:Player_GiveItem(2), // Skulltag Functions + 145:Player_SetTeam(1), // Skulltag Functions + 150:Line_SetHealth(2), + 151:Sector_SetHealth(3), + 152:Team_Score(2), // Skulltag Functions + 153:Team_GivePoints(3), // Skulltag Functions + 154:Teleport_NoStop(2, 3), + + 157:SetGlobalFogParameter(2), // GZDoom only! + 158:FS_Execute(1,4), + 159:Sector_SetPlaneReflection(3), // GZDoom only! +// 160:Sector_Set3DFloor +// 161:Sector_SetContents + + 168:Ceiling_CrushAndRaiseDist(3,5), + 169:Generic_Crusher2(5), + 170:Sector_SetCeilingScale2(3), + 171:Sector_SetFloorScale2(3), + 172:Plat_UpNearestWaitDownStay(3), + 173:NoiseAlert(2), + 174:SendToCommunicator(4), + 175:Thing_ProjectileIntercept(5), + 176:Thing_ChangeTID(2), + 177:Thing_Hate(2,3), + 178:Thing_ProjectileAimed(4,5), + 179:ChangeSkill(1), + 180:Thing_SetTranslation(2), +// 181:Plane_Align, + 182:Line_Mirror(0), + 183:Line_AlignCeiling(2), + 184:Line_AlignFloor(2), + 185:Sector_SetRotation(3), + 186:Sector_SetCeilingPanning(5), + 187:Sector_SetFloorPanning(5), + 188:Sector_SetCeilingScale(5), + 189:Sector_SetFloorScale(5), + 191:SetPlayerProperty(3), + 192:Ceiling_LowerToHighestFloor(2,5), + 193:Ceiling_LowerInstant(3,5), + 194:Ceiling_RaiseInstant(3,4), + 195:Ceiling_CrushRaiseAndStayA(4,5), + 196:Ceiling_CrushAndRaiseA(4,5), + 197:Ceiling_CrushAndRaiseSilentA(4,5), + 198:Ceiling_RaiseByValueTimes8(3,4), + 199:Ceiling_LowerByValueTimes8(3,5), + 200:Generic_Floor(5), + 201:Generic_Ceiling(5), + 202:Generic_Door(5), + 203:Generic_Lift(5), + 204:Generic_Stairs(5), + 205:Generic_Crusher(5), + 206:Plat_DownWaitUpStayLip(4,5), + 207:Plat_PerpetualRaiseLip(4), + 208:TranslucentLine(2,3), +// 209:Transfer_Heights, +// 210:Transfer_FloorLight, +// 211:Transfer_CeilingLight, + 212:Sector_SetColor(4,5), + 213:Sector_SetFade(4), + 214:Sector_SetDamage(3,5), + 215:Teleport_Line(2,3), + 216:Sector_SetGravity(3), + 217:Stairs_BuildUpDoom(5), + 218:Sector_SetWind(4), + 219:Sector_SetFriction(2), + 220:Sector_SetCurrent(4), + 221:Scroll_Texture_Both(5), +// 222:Scroll_Texture_Model, + 223:Scroll_Floor(4), + 224:Scroll_Ceiling(4), +// 225:Scroll_Texture_Offsets, + 226:ACS_ExecuteAlways(2,5), +// 227:PointPush_SetForce, + 228:Plat_RaiseAndStayTx0(2,3), + 229:Thing_SetGoal(3,4), + 230:Plat_UpByValueStayTx(3), + 231:Plat_ToggleCeiling(1), + 232:Light_StrobeDoom(3), + 233:Light_MinNeighbor(1), + 234:Light_MaxNeighbor(1), + 235:Floor_TransferTrigger(1), + 236:Floor_TransferNumeric(1), + 237:ChangeCamera(3), + 238:Floor_RaiseToLowestCeiling(2,5), + 239:Floor_RaiseByValueTxTy(3), + 240:Floor_RaiseByTexture(2,4), + 241:Floor_LowerToLowestTxTy(2), + 242:Floor_LowerToHighest(3,4), + 243:Exit_Normal(1), + 244:Exit_Secret(1), + 245:Elevator_RaiseToNearest(2), + 246:Elevator_MoveToFloor(2), + 247:Elevator_LowerToNearest(2), + 248:HealThing(1,2), + 249:Door_CloseWaitOpen(3, 4), + 250:Floor_Donut(3), + 251:FloorAndCeiling_LowerRaise(3,4), + 252:Ceiling_RaiseToNearest(2,3), + 253:Ceiling_LowerToLowest(2,4), + 254:Ceiling_LowerToFloor(2,5), + 255:Ceiling_CrushRaiseAndStaySilA(4,5), + + // These are specialized versions of the Generic_* specials which are defined for EE Extradata. + 256:Floor_LowerToHighestEE(2, 3), + 257:Floor_RaiseToLowest(2, 3), + 258:Floor_LowerToLowestCeiling(2,3), + 259:Floor_RaiseToCeiling(2, 5), + 260:Floor_ToCeilingInstant(1, 4), + 261:Floor_LowerByTexture(2, 3), + 262:Ceiling_RaiseToHighest(2, 3), + 263:Ceiling_ToHighestInstant(1, 3), + 264:Ceiling_LowerToNearest(2, 4), + 265:Ceiling_RaiseToLowest(2, 3), + 266:Ceiling_RaiseToHighestFloor(2, 3), + 267:Ceiling_ToFloorInstant(1, 4), + 268:Ceiling_RaiseByTexture(2, 3), + 269:Ceiling_LowerByTexture(2, 4), + 270:Stairs_BuildDownDoom(5), + 271:Stairs_BuildUpDoomSync(4), + 272:Stairs_BuildDownDoomSync(4), + + // New additions can go above 255 now. + 273:Stairs_BuildUpDoomCrush(5), + 274:Door_AnimatedClose(2), + 275:Floor_Stop(1), + 276:Ceiling_Stop(1), + 277:Sector_SetFloorGlow(5), + 278:Sector_SetCeilingGlow(5), + 279:Floor_MoveToValueAndCrush(4, 5), + 280:Ceiling_MoveToValueAndCrush(4, 5), + 281:Line_SetAutomapFlags(3), + 282:Line_SetAutomapStyle(2), + 283:Polyobj_StopSound(1), + + // new to Eternity +// 300:Portal_Define(5), +// 301:Line_QuickPortal(1), + + + // internal functions have negative values + -1:GetLineUDMFInt(2), + -2:GetLineUDMFFixed(2), + -3:GetThingUDMFInt(2), + -4:GetThingUDMFFixed(2), + -5:GetSectorUDMFInt(2), + -6:GetSectorUDMFFixed(2), + -7:GetSideUDMFInt(3), + -8:GetSideUDMFFixed(3), + -9:GetActorVelX(1), + -10:GetActorVelY(1), + -11:GetActorVelZ(1), + -12:SetActivator(1,2), + -13:SetActivatorToTarget(1), + -14:GetActorViewHeight(1), + -15:GetChar(2), + -16:GetAirSupply(1), + -17:SetAirSupply(2), + -18:SetSkyScrollSpeed(2), + -19:GetArmorType(2), + -20:SpawnSpotForced(4), + -21:SpawnSpotFacingForced(3), + -22:CheckActorProperty(3), + -23:SetActorVelocity(6), + -24:SetUserVariable(3), + -25:GetUserVariable(2), + -26:Radius_Quake2(6), + -27:CheckActorClass(2), + -28:SetUserArray(4), + -29:GetUserArray(3), + -30:SoundSequenceOnActor(2), + -31:SoundSequenceOnSector(3), + -32:SoundSequenceOnPolyobj(2), + -33:GetPolyobjX(1), + -34:GetPolyobjY(1), + -35:CheckSight(3), + -36:SpawnForced(4,6), + -37:AnnouncerSound(2), + -38:SetPointer(2,4), + -39:ACS_NamedExecute(2,5), + -40:ACS_NamedSuspend(2), + -41:ACS_NamedTerminate(2), + -42:ACS_NamedLockedExecute(5), + -43:ACS_NamedLockedExecuteDoor(5), + -44:ACS_NamedExecuteWithResult(1,5), + -45:ACS_NamedExecuteAlways(2,5), + -46:UniqueTID(0,2), + -47:IsTIDUsed(1), + -48:Sqrt(1), + -49:FixedSqrt(1), + -50:VectorLength(2), + -51:SetHUDClipRect(4,6), + -52:SetHUDWrapWidth(1), + -53:SetCVar(2), + -54:GetUserCVar(2), + -55:SetUserCVar(3), + -56:GetCVarString(1), + -57:SetCVarString(2), + -58:GetUserCVarString(2), + -59:SetUserCVarString(3), + -60:LineAttack(4,9), + -61:PlaySound(2,7), + -62:StopSound(1,2), + -63:strcmp(2,3), + -64:stricmp(2,3), + -64:strcasecmp(2,3), // an alias for stricmp + -65:StrLeft(2), + -66:StrRight(2), + -67:StrMid(3), + -68:GetActorClass(1), + -69:GetWeapon(0), + -70:SoundVolume(3), + -71:PlayActorSound(2,6), + -72:SpawnDecal(2,6), + -73:CheckFont(1), + -74:DropItem(2,4), + -75:CheckFlag(2), + -76:SetLineActivation(2, 3), + -77:GetLineActivation(1), + -78:GetActorPowerupTics(2), + -79:ChangeActorAngle(2,3), + -80:ChangeActorPitch(2,3), + -81:GetArmorInfo(1), + -82:DropInventory(2), + -83:PickActor(5,8), + -84:IsPointerEqual(2,4), + -85:CanRaiseActor(1), + -86:SetActorTeleFog(3), + -87:SwapActorTeleFog(1), + -88:SetActorRoll(2), + -89:ChangeActorRoll(2,3), + -90:GetActorRoll(1), + -91:QuakeEx(8,19), + -92:Warp(6,11), + -93:GetMaxInventory(2), + -94:SetSectorDamage(2,5), + -95:SetSectorTerrain(3), + -96:SpawnParticle(1,16), + -97:SetMusicVolume(1), + -98:CheckProximity(3, 6), + -99:CheckActorState(2,3), + + // Zandronum's + -100:ResetMap(0), + -101:PlayerIsSpectator(1), + -102:ConsolePlayerNumber(0), + -103:GetTeamProperty(2), + -104:GetPlayerLivesLeft(1), + -105:SetPlayerLivesLeft(2), + -106:KickFromGame(2), + -107:GetGamemodeState(0), + -108:SetDBEntry(3), + -109:GetDBEntry(2), + -110:SetDBEntryString(3), + -111:GetDBEntryString(2), + -112:IncrementDBEntry(3), + -113:PlayerIsLoggedIn(1), + -114:GetPlayerAccountName(1), + -115:SortDBEntries(4), + -116:CountDBResults(1), + -117:FreeDBResults(1), + -118:GetDBResultKeyString(2), + -119:GetDBResultValueString(2), + -120:GetDBResultValue(2), + -121:GetDBEntryRank(3), + -122:RequestScriptPuke(4), + -123:BeginDBTransaction(0), + -124:EndDBTransaction(0), + -125:GetDBEntries(1), + -126:NamedRequestScriptPuke(1,5), + -127:SystemTime(0), + -128:GetTimeProperty(2,3), + -129:Strftime(2,3), + -130:SetDeadSpectator(2), + -131:SetActivatorToPlayer(1), + -132:SetCurrentGamemode(1), + -133:GetCurrentGamemode(0), + -134:SetGamemodeLimit(2), + -135:SetPlayerClass(3), + -136:SetPlayerChasecam(2), + -137:GetPlayerChasecam(1), + -138:SetPlayerScore(3), + -139:GetPlayerScore(2), + -140:InDemoMode(0), + -144:ExecuteClientScript(2,6), + -145:NamedExecuteClientScript(2,6), + -146:SendNetworkString(2,3), + -147:NamedSendNetworkString(2,3), + -148:GetChatMessage(2), + -149:GetMapRotationSize(0), + -150:GetMapRotationInfo(2), + -151:GetCurrentMapPosition(0), + -152:GetEventResult(0), + -153:GetActorSectorLocation(2), + -154:ChangeTeamScore(3,4), + -155:SetGameplaySetting(2), + -156:SetCustomPlayerValue(3), + -157:GetCustomPlayerValue(2), + -158:ResetCustomDataToDefault(2), + -159:LumpOpen(1,3), + -160:LumpRead(2,3), + -161:LumpReadString(2,3), + // LumpReadArray is a set of 4 functions, whose definition is + // built-in to ACC. So 162-165 are used up function indices. + -166:LumpGetInfo(2), + -167:LumpClose(1), + + // -1xx are reserved for Zandronum + -200:CheckClass(1), + -201:DamageActor(6), // [arookas] + -202:SetActorFlag(3), + -203:SetTranslation(2), + -204:GetActorFloorTexture(1), + -205:GetActorFloorTerrain(1), + -206:StrArg(1), + -207:Floor(1), + -208:Round(1), + -209:Ceil(1), + -210:ScriptCall(2, 100), // ACS does not know varargs so use something large as maximum. + -211:StartSlideshow(1), + -212:GetSectorHealth(2), + -213:GetLineHealth(1), + -214:SetSubtitleNumber(2), + + + // Eternity's + -300:GetLineX(3), + -301:GetLineY(3), + -302:SetAirFriction(1), + + // GZDoom OpenGL + -400:SetSectorGlow(6), + -401:SetFogDensity(2), + + // ZDaemon's + -19620:GetTeamScore(1), + -19621:SetTeamScore(2), + + -100000:__EndOfList__(10); diff --git a/Build/Compilers/ZDoom/zwvars.acs b/Build/Compilers/ZDoom/zwvars.acs index 7011f564..b21f4e72 100755 --- a/Build/Compilers/ZDoom/zwvars.acs +++ b/Build/Compilers/ZDoom/zwvars.acs @@ -1,8 +1,8 @@ - -//************************************************************************** -//** -//** zwvars.acs -//** -//************************************************************************** - -// include your world-variable declarations here. + +//************************************************************************** +//** +//** zwvars.acs +//** +//************************************************************************** + +// include your world-variable declarations here.