1 // FraggleScript constants 2 3 // Thing numbers 4 const PLAYER = 0; 5 const TROOPER = 1; 6 const SHOTGUY = 2; 7 const ARCHVILE = 3; 8 const VILEFIRE = 4; 9 const REVENANT = 5; 10 const REVENANTMISL = 6; 11 const SMOKE = 7; // Revenant fireball trail 12 const MANCUBUS = 8; 13 const MANCUBUSSHOT = 9; 14 const CHAINGUY = 10; 15 const IMP = 11; 16 const DEMON = 12; 17 const SPECTRE = 13; 18 const CACODEMON = 14; 19 const BARONOFHELL = 15; 20 const BARONSHOT = 16; 21 const HELLKNIGHT = 17; 22 const LOSTSOUL = 18; 23 const SPIDERMASTERMIND = 19; 24 const ARACHNOTRON = 20; 25 const CYBERDEMON = 21; 26 const PAINELEMENTAL = 22; 27 const WOLFSS = 23; 28 const KEEN = 24; 29 const BOSSBRAIN = 25; 30 const BOSSSPIT = 26; 31 const BOSSTARGET = 27; 32 const SPAWNSHOT = 28; 33 const SPAWNFIRE = 29; 34 const BARREL = 30; 35 const IMPSHOT = 31; 36 const CACOSHOT = 32; 37 const FLYINGROCKET = 33; 38 const FLYINGPLASMA = 34; 39 const FLYINGBFG = 35; 40 const ARACHPLAZ = 36; 41 const PUFF = 37; // Bullet puff 42 const BLOOD = 38; 43 const TFOG = 39; // Teleport fog 44 const IFOG = 40; // Item respawn fog 45 const TELEPORTMAN = 41; 46 const EXTRABFG = 42; 47 const GREENARMOR = 43; 48 const BLUEARMOR = 44; 49 const HEALTHPOTION = 45; 50 const ARMORHELMET = 46; 51 const BLUEKEYCARD = 47; 52 const REDKEYCARD = 48; 53 const YELLOWKEYCARD = 49; 54 const YELLOWSKULLKEY = 50; 55 const REDSKULLKEY = 51; 56 const BLUESKULLKEY = 52; 57 const STIMPACK = 53; 58 const MEDIKIT = 54; 59 const SUPERCHARGE = 55; 60 const INVULNERABILITY = 56; 61 const BESERKPACK = 57; 62 const INVISIBILITY = 58; 63 const RADSUIT = 59; 64 const AUTOMAP = 60; 65 const LITEAMP = 61; 66 const MEGASPHERE = 62; 67 const CLIP = 63; 68 const BULLETBOX = 64; 69 const ROCKET = 65; 70 const ROCKETBOX = 66; 71 const ECELL = 67; 72 const ECELLPACK = 68; 73 const SHELLS = 69; 74 const SHELLBOX = 70; 75 const BACKPACK = 71; 76 const BFG = 72; 77 const CHAINGUN = 73; 78 const CHAINSAW = 74; 79 const RLAUNCHER = 75; 80 const PLASMAGUN = 76; 81 const SHOTGUN = 77; 82 const SUPERSHOTGUN = 78; 83 const TALLTECHLAMP = 79; 84 const SHORTTECHLAMP = 80; 85 const FLOORLAMP = 81; 86 const TALLGRNPILLAR = 82; 87 const SHRTGRNPILLAR = 83; 88 const TALLREDPILLAR = 84; 89 const SHRTREDPILLAR = 85; 90 const SKULLCOLUMN = 86; 91 const HEARTCOLUMN = 87; 92 const EVILEYE = 88; 93 const SKULLROCK = 89; 94 const GRAYTREE = 90; 95 const TALLBLUFIRESTICK = 91; 96 const TALLGRNFIRESTICK = 92; 97 const TALLREDFIRESTICK = 93; 98 const SHRTBLUFIRESTICK = 94; 99 const SHRTGRNFIRESTICK = 95; 100 const SHRTREDFIRESTICK = 96; 101 const STALAGMITE = 97; 102 const TALLTECHPILLAR = 98; 103 const CANDLE = 99; 104 const CANDELABRA = 100; 105 const TWITCHCORPSE1 = 101; 106 const HANGINGMAN1 = 102; 107 const HANGINGMAN2 = 103; 108 const HANGINGMAN3 = 104; 109 const HANGINGMAN4 = 105; 110 const HANGINGMAN5 = 106; 111 const HANGINGMAN6 = 107; 112 const HANGINGMAN7 = 108; 113 const HANGINGMAN8 = 109; 114 const TWITCHCORPSE2 = 110; 115 const DEADCACO = 111; 116 const DEADPLAYER = 112; 117 const DEADTROOPER = 113; 118 const DEADDEMON = 114; 119 const DEADLOSTSOUL = 115; 120 const DEADIMP = 116; 121 const DEADSERGEANT = 117; 122 const SLOP = 118; 123 const SLOP2 = 119; 124 const SKULLPOLE1 = 120; 125 const BLOODPOOL1 = 121; 126 const SKULLPOLE2 = 122; 127 const SKULLPILE = 123; 128 const DEADCORPSE1 = 124; 129 const TWITCHCORPSE3 = 125; 130 const TREE = 126; 131 const BURNINGBARREL = 127; 132 const HANGINGMAN9 = 128; 133 const HANGINGMAN10 = 129; 134 const HANGINGMAN11 = 130; 135 const HANGINGMAN12 = 131; 136 const HANGINGMAN13 = 132; 137 const HANGINGMAN14 = 133; 138 const BLOODPOOL2 = 134; 139 const BLOODPOOL3 = 135; 140 const BLOODPOOL4 = 136; 141 142 const PUSH = 141; 143 const PULL = 142; 144 const DOGS = 143; 145 const PLASMA1 = 144; 146 const PLASMA2 = 145; 147 const CAMERA = 146; 148 const NODE = 147; 149 150 //const SCEPTRE = ; 151 //const BIBLE = ; 152 //const PARTICLE = ; 153 154 155 // Mapthing property constants, for use with the set/getobjproperty() and objstate() functions 156 const RADIUS = 0; 157 const HEIGHT = 1; 158 const MASS = 2; 159 const HEALTH = 3; 160 const DAMAGE = 4; 161 const SPEED = 5; 162 const REACTIONTIME = 6; 163 const PAINCHANCE = 7; 164 const ST_SPAWNSTATE = 8; 165 const ST_SEESTATE = 9; 166 const ST_MELEESTATE = 10; 167 const ST_MISSILESTATE = 11; 168 const ST_PAINSTATE = 12; 169 const ST_DEATHSTATE = 13; 170 const ST_XDEATHSTATE = 14; 171 const ST_CRASHSTATE = 15; 172 const ST_RAISESTATE = 16; 173 const SEESOUND = 17; 174 const ACTIVESOUND = 18; 175 const ATTACKSOUND = 19; 176 const PAINSOUND = 20; 177 const DEATHSOUND = 21; 178 179 180 181 // Thing flags (objflag) 182 const MF_SPECIAL = 0; 183 const MF_SOLID = 1; 184 const MF_SHOOTABLE = 2; 185 const MF_NOSECTOR = 3; 186 const MF_NOBLOCKMAP = 4; 187 const MF_AMBUSH = 5; 188 const MF_JUSTHIT = 6; 189 const MF_JUSTATTACKED = 7; 190 const MF_SPAWNCEILING = 8; 191 const MF_NOGRAVITY = 9; 192 const MF_DROPOFF = 10; 193 const MF_PICKUP = 11; 194 const MF_NOCLIP = 12; 195 const MF_SLIDE = 13; 196 const MF_FLOAT = 14; 197 const MF_TELEPORT = 15; 198 const MF_MISSILE = 16; 199 const MF_DROPPED = 17; 200 const MF_SHADOW = 18; 201 const MF_NOBLOOD = 19; 202 const MF_CORPSE = 20; 203 const MF_INFLOAT = 21; 204 const MF_COUNTKILL = 22; 205 const MF_COUNTITEM = 23; 206 const MF_SKULLFLY = 24; 207 const MF_NOTDMATCH = 25; 208 const MF_TRANSLATION = 26; 209 const MF_TOUCHY = 28; 210 const MF_BOUNCES = 29; 211 const MF_FRIEND = 30; 212 const MF_TRANSLUCENT = 31; 213 214 215 216 // Player property types 217 const PROP_SPEED = 0; 218 const PROP_JUMPHEIGHT = 1; 219 const PROP_LOCKED = 2; 220 221 222 // Line flags 223 const ML_BLOCKING = 0; // Solid, blocks things 224 const ML_BLOCKMONSTERS = 1; // Blocks monsters 225 const ML_TWOSIDED = 2; // Is two sided 226 const ML_DONTPEGTOP = 3; // Is upper-unpegged 227 const ML_DONTPEGBOTTOM = 4; // Is lower-unpegged 228 const ML_SECRET = 5; // Is secret 229 const ML_SOUNDBLOCK = 6; // Blocks sound 230 const ML_DONTDRAW = 7; // Don't draw on the automap at all. 231 const ML_MAPPED = 8; // Set if already seen, thus drawn in automap. 232 const ML_REPEAT_SPECIAL = 9; // Special is repeatable 233 // TODO SPAC takes 3 bits here 234 const ML_ALLTRIGGER = 13; // If flag is set, anything can trigger the line. 235 236 237 // Corona or dynamic light numbers for use with setcorona 238 const PLASMA_L = 1; 239 const PLASMAEXP_L = 2; 240 const ROCKET_L = 3; 241 const ROCKETEXP_L = 4; 242 const BFG_L = 5; 243 const BFGEXP_L = 6; 244 const BLUETALL_L = 7; 245 const GREENTALL_L = 8; 246 const REDTALL_L = 9; 247 const BLUESMALL_L = 10; 248 const GREENSMALL_L = 11; 249 const REDSMALL_L = 12; 250 const TECHLAMP_L = 13; 251 const TECHLAMP2_L = 14; 252 const COLUMN_L = 15; 253 const CANDLE_L = 16; 254 const CANDLEABRE_L = 17; 255 const REDBALL_L = 18; 256 const GREENBALL_L = 19; 257 const ROCKET2_L = 20; 258 const FX03_L = 21; // Shows up for sprite no. 224 259 const FX17_L = 22; // Shows up for sprite no. 204 260 const FX00_L = 23; // Shows up for sprite no. 210 261 const FX08_L = 24; // 220 262 const FX04_L = 25; // 219 263 const FX02_L = 26; // 207 264 const WTRH_L = 27; // 182 265 const SRTC_L = 28; // 171 266 const CHDL_L = 29; // 170 267 const KFR1_L = 30; // 177 268 269 // Setcorona constants 270 const CORONA_TYPE = 0; 271 const CORONA_OFFX = 1; 272 const CORONA_OFFY = 2; 273 const CORONA_COLOR = 3; 274 const CORONA_SIZE = 4; 275 const LIGHT_COLOR = 5; 276 const LIGHT_RADIUS = 6; 277 278 // Corona sprites, for use with the CORONA_TYPE function 279 // bit flags 280 const CORONA_SPR = 1; 281 const DYNLIGHT_SPR = 2; 282 // types 283 const UNDEFINED_SPR = 0; 284 const LAMP_C = 32; // 0x20 285 const FIRE_C = 48; // 0x30 286 const LIGHT_C = 96; // 0x60 287 const FIREFLY_C = 208; // 0xD0 288 const RANDOM_C = 224; // 0xE0 289 const PULSE_C = 240; // 0xF0 290 // combinations 291 const LIGHT_SPR = 3; 292 const ROCKET_SPR = 19; // 0x13 293 const LAMP_SPR = 35; // 0x23 294 const FIRE_SPR = 51; // 0x33 295