OSDN Git Service

Update zdefs.acs with shadow and subtract styles.
[zandronum/zandronum-acc.git] / zdefs.acs
1 //**************************************************************************\r
2 //**\r
3 //** zdefs.acs\r
4 //**\r
5 //** Common definitions for use when compiling ACS scripts for ZDoom\r
6 //**\r
7 //**************************************************************************\r
8 \r
9 #define TRUE                    1\r
10 #define FALSE                   0\r
11 #define ON                      1\r
12 #define OFF                     0\r
13 #define YES                     1\r
14 #define NO                      0\r
15 \r
16 #define LINE_FRONT              0\r
17 #define LINE_BACK               1\r
18 \r
19 #define SIDE_FRONT              0\r
20 #define SIDE_BACK               1\r
21 \r
22 #define TEXTURE_TOP             0\r
23 #define TEXTURE_MIDDLE          1\r
24 #define TEXTURE_BOTTOM          2\r
25 \r
26 // same information as combinable bit flags\r
27 #define TEXFLAG_TOP                             1\r
28 #define TEXFLAG_MIDDLE                  2\r
29 #define TEXFLAG_BOTTOM                  4\r
30 #define TEXFLAG_ADDOFFSET               8\r
31 \r
32 #define GAME_SINGLE_PLAYER      0\r
33 #define GAME_NET_COOPERATIVE    1\r
34 #define GAME_NET_DEATHMATCH     2\r
35 #define GAME_TITLE_MAP          3\r
36 \r
37 // Classes are only useful with Hexen\r
38 #define CLASS_FIGHTER           0\r
39 #define CLASS_CLERIC            1\r
40 #define CLASS_MAGE              2\r
41 \r
42 #define SKILL_VERY_EASY         0\r
43 #define SKILL_EASY              1\r
44 #define SKILL_NORMAL            2\r
45 #define SKILL_HARD              3\r
46 #define SKILL_VERY_HARD         4\r
47 \r
48 #define BLOCK_NOTHING           0\r
49 #define BLOCK_CREATURES         1\r
50 #define BLOCK_EVERYTHING        2\r
51 #define BLOCK_RAILING                   3\r
52 #define BLOCK_PLAYERS                   4\r
53 \r
54 #define SCROLL                  0\r
55 #define CARRY                   1\r
56 #define SCROLL_AND_CARRY        2\r
57 \r
58 // Means-of-death for Sector_SetDamage --------------------------------------\r
59 \r
60 #define MOD_UNKNOWN             0\r
61 #define MOD_ROCKET              5\r
62 #define MOD_R_SPLASH            6\r
63 #define MOD_PLASMARIFLE         7\r
64 #define MOD_BFG_BOOM            8\r
65 #define MOD_BFG_SPLASH          9\r
66 #define MOD_CHAINSAW            10\r
67 #define MOD_SSHOTGUN            11\r
68 #define MOD_WATER               12\r
69 #define MOD_SLIME               13\r
70 #define MOD_LAVA                14\r
71 #define MOD_CRUSH               15\r
72 #define MOD_TELEFRAG            16\r
73 #define MOD_FALLING             17\r
74 #define MOD_SUICIDE             18\r
75 #define MOD_BARREL              19\r
76 #define MOD_EXIT                20\r
77 #define MOD_SPLASH              21\r
78 #define MOD_HIT                 22\r
79 #define MOD_RAILGUN             23\r
80 #define MOD_ICE                 24\r
81 #define MOD_DISINTEGRATE        25\r
82 #define MOD_POISON              26\r
83 #define MOD_ELECTRIC            27\r
84 \r
85 // Return values for PlayMovie ----------------------------------------------\r
86 \r
87 #define MOVIE_Played            0\r
88 #define MOVIE_Played_NoVideo    1\r
89 #define MOVIE_Played_Aborted    2\r
90 #define MOVIE_Failed           -1\r
91 \r
92 \r
93 // Player properties --------------------------------------------------------\r
94 \r
95 #define PROP_FROZEN                     0\r
96 #define PROP_NOTARGET                   1\r
97 #define PROP_INSTANTWEAPONSWITCH        2\r
98 #define PROP_FLY                        3\r
99 #define PROP_TOTALLYFROZEN              4\r
100 #define PROP_BUDDHA                     16\r
101 \r
102 // The following properties correspond to powers given by certain items\r
103 #define PROP_INVULNERABILITY            5\r
104 #define PROP_STRENGTH                   6\r
105 #define PROP_INVISIBILITY               7\r
106 #define PROP_RADIATIONSUIT              8\r
107 #define PROP_ALLMAP                     9\r
108 #define PROP_INFRARED                   10\r
109 #define PROP_WEAPONLEVEL2               11\r
110 #define PROP_FLIGHT                     12\r
111 #define PROP_SPEED                      15\r
112 \r
113 // Player input -------------------------------------------------------------\r
114 \r
115 // These are the original inputs sent by the player.\r
116 #define INPUT_OLDBUTTONS                0\r
117 #define INPUT_BUTTONS                   1\r
118 #define INPUT_PITCH                             2\r
119 #define INPUT_YAW                               3\r
120 #define INPUT_ROLL                              4\r
121 #define INPUT_FORWARDMOVE               5\r
122 #define INPUT_SIDEMOVE                  6\r
123 #define INPUT_UPMOVE                    7\r
124 \r
125 // These are the inputs, as modified by P_PlayerThink().\r
126 // Most of the time, these will match the original inputs, but\r
127 // they can be different if a player is frozen or using a\r
128 // chainsaw.\r
129 #define MODINPUT_OLDBUTTONS             8\r
130 #define MODINPUT_BUTTONS                9\r
131 #define MODINPUT_PITCH                  10\r
132 #define MODINPUT_YAW                    11\r
133 #define MODINPUT_ROLL                   12\r
134 #define MODINPUT_FORWARDMOVE    13\r
135 #define MODINPUT_SIDEMOVE               14\r
136 #define MODINPUT_UPMOVE                 15\r
137 \r
138 // Player buttons -----------------------------------------------------------\r
139 \r
140 #define BT_ATTACK                               1\r
141 #define BT_USE                                  2\r
142 #define BT_JUMP                                 4\r
143 #define BT_CROUCH                               8\r
144 #define BT_TURN180                              16\r
145 #define BT_ALTATTACK                    32\r
146 #define BT_RELOAD                               64\r
147 #define BT_ZOOM                                 128\r
148 \r
149 #define BT_SPEED                                256\r
150 #define BT_STRAFE                               512\r
151 \r
152 #define BT_MOVERIGHT                    1024\r
153 #define BT_MOVELEFT                             2048\r
154 #define BT_BACK                                 4096\r
155 #define BT_FORWARD                              8192\r
156 #define BT_RIGHT                                16384\r
157 #define BT_LEFT                                 32768\r
158 #define BT_LOOKUP                               65536\r
159 #define BT_LOOKDOWN                             131072\r
160 #define BT_MOVEUP                               262144\r
161 #define BT_MOVEDOWN                             524288\r
162 #define BT_SHOWSCORES                   1048576\r
163 \r
164 // Do whatever you want with these.\r
165 #define BT_USER1                                2097152\r
166 #define BT_USER2                                4194304\r
167 #define BT_USER3                                8388608\r
168 #define BT_USER4                                16777216\r
169 \r
170 // Text colors --------------------------------------------------------------\r
171 \r
172 #define CR_UNTRANSLATED         -1\r
173 #define CR_BRICK                0\r
174 #define CR_TAN                  1\r
175 #define CR_GRAY                 2\r
176 #define CR_GREY                 2\r
177 #define CR_GREEN                3\r
178 #define CR_BROWN                4\r
179 #define CR_GOLD                 5\r
180 #define CR_RED                  6\r
181 #define CR_BLUE                 7\r
182 #define CR_ORANGE               8\r
183 #define CR_WHITE                9\r
184 #define CR_YELLOW               10\r
185 #define CR_BLACK                                12\r
186 #define CR_LIGHTBLUE                    13\r
187 #define CR_CREAM                                14\r
188 #define CR_OLIVE                                15\r
189 #define CR_DARKGREEN                    16\r
190 #define CR_DARKRED                              17\r
191 #define CR_DARKBROWN                    18\r
192 #define CR_PURPLE                               19\r
193 #define CR_DARKGRAY                             20\r
194 #define CR_DARKGREY                             20\r
195 #define CR_CYAN                                 21\r
196 \r
197 // HUD message types --------------------------------------------------------\r
198 \r
199 #define HUDMSG_PLAIN            0\r
200 #define HUDMSG_FADEOUT          1\r
201 #define HUDMSG_TYPEON           2\r
202 #define HUDMSG_FADEINOUT        3\r
203 \r
204 // OR this with one of the above to log the hudmessage to the console.\r
205 // i.e. instead of HUDMSG_PLAIN, you can use HUDMSG_PLAIN | HUDMSG_LOG\r
206 #define HUDMSG_LOG                                      0x80000000\r
207 \r
208 // OR this with one of the above if the color you passed is a string\r
209 // instead of one of the CR_ constants.\r
210 #define HUDMSG_COLORSTRING                      0x40000000\r
211 \r
212 // OR this with one of the above to use additive blending when drawing the\r
213 // HUD message.\r
214 #define HUDMSG_ADDBLEND                         0x20000000\r
215 \r
216 // OR this with one of the above to use the extra alpha parameter\r
217 #define HUDMSG_ALPHA                            0x10000000\r
218 \r
219 // Or this with one of the above to not wrap lines\r
220 #define HUDMSG_NOWRAP                           0x08000000\r
221 \r
222 // HUD message layers; these are not flags\r
223 #define HUDMSG_LAYER_OVERHUD            0x00000000\r
224 #define HUDMSG_LAYER_UNDERHUD           0x00001000\r
225 #define HUDMSG_LAYER_OVERMAP            0x00002000\r
226 \r
227 // HUD message visibility flags\r
228 #define HUDMSG_NOTWITH3DVIEW            0x00010000\r
229 #define HUDMSG_NOTWITHFULLMAP           0x00020000\r
230 #define HUDMSG_NOTWITHOVERLAYMAP        0x00040000\r
231 \r
232 \r
233 // "Scripted" Marine weapon types -------------------------------------------\r
234 \r
235 #define MARINEWEAPON_Dummy              0\r
236 #define MARINEWEAPON_Fist               1\r
237 #define MARINEWEAPON_BerserkFist        2\r
238 #define MARINEWEAPON_Chainsaw           3\r
239 #define MARINEWEAPON_Pistol             4\r
240 #define MARINEWEAPON_Shotgun            5\r
241 #define MARINEWEAPON_SuperShotgun       6\r
242 #define MARINEWEAPON_Chaingun           7\r
243 #define MARINEWEAPON_RocketLauncher     8\r
244 #define MARINEWEAPON_PlasmaRifle        9\r
245 #define MARINEWEAPON_Railgun            10\r
246 #define MARINEWEAPON_BFG                11\r
247 \r
248 // Actor properties you can get/set -----------------------------------------\r
249 \r
250 #define APROP_Health            0\r
251 #define APROP_Speed                     1\r
252 #define APROP_Damage            2\r
253 #define APROP_Alpha                     3\r
254 #define APROP_RenderStyle       4\r
255 #define APROP_SeeSound          5       // Sounds can only be set, not gotten\r
256 #define APROP_AttackSound       6\r
257 #define APROP_PainSound         7\r
258 #define APROP_DeathSound        8\r
259 #define APROP_ActiveSound       9\r
260 #define APROP_Ambush            10\r
261 #define APROP_Invulnerable      11\r
262 #define APROP_JumpZ                     12\r
263 #define APROP_ChaseGoal         13\r
264 #define APROP_Frightened        14\r
265 #define APROP_Gravity           15\r
266 #define APROP_Friendly          16\r
267 #define APROP_SpawnHealth       17\r
268 #define APROP_Dropped           18\r
269 #define APROP_Notarget          19\r
270 #define APROP_Species           20\r
271 #define APROP_Nametag           21\r
272 #define APROP_Score                     22\r
273 #define APROP_Notrigger         23\r
274 #define APROP_DamageFactor      24\r
275 #define APROP_MasterTID         25\r
276 #define APROP_TargetTID         26\r
277 #define APROP_TracerTID         27\r
278 #define APROP_Waterlevel        28\r
279 #define APROP_ScaleX        29\r
280 #define APROP_ScaleY        30\r
281 #define APROP_Dormant           31\r
282 #define APROP_Mass                      32\r
283 #define APROP_Accuracy      33\r
284 #define APROP_Stamina       34\r
285 #define APROP_Height            35\r
286 #define APROP_Radius            36\r
287 #define APROP_Reactiontime      37\r
288 #define APROP_MeleeRange        38\r
289 #define APROP_ViewHeight        39\r
290 #define APROP_AttackZOffset     40\r
291 #define APROP_StencilColor      41\r
292 \r
293 // Render Styles ------------------------------------------------------------\r
294 \r
295 #define STYLE_None                      0       // Do not draw\r
296 #define STYLE_Normal            1       // Normal; just copy the image to the screen\r
297 #define STYLE_Fuzzy                     2       // Draw silhouette using "fuzz" effect\r
298 #define STYLE_SoulTrans         3       // Draw translucent with amount in r_transsouls\r
299 #define STYLE_OptFuzzy          4       // Draw as fuzzy, translucent or shadow, based on user preference\r
300 #define STYLE_Stencil           5       // Draw as solid color\r
301 #define STYLE_Translucent       64      // Draw translucent\r
302 #define STYLE_Add                       65      // Draw additive\r
303 #define STYLE_Shaded            66      // \r
304 #define STYLE_TranslucentStencil 67\r
305 #define STYLE_Shadow            68      // Draw dark translucent stencil\r
306 #define STYLE_Subtract  69  // Draw subtractive\r
307 \r
308 // Properties you can use with GetLevelInfo() -------------------------------\r
309 \r
310 #define LEVELINFO_PAR_TIME              0\r
311 #define LEVELINFO_CLUSTERNUM            1\r
312 #define LEVELINFO_LEVELNUM              2\r
313 #define LEVELINFO_TOTAL_SECRETS         3\r
314 #define LEVELINFO_FOUND_SECRETS         4\r
315 #define LEVELINFO_TOTAL_ITEMS           5\r
316 #define LEVELINFO_FOUND_ITEMS           6\r
317 #define LEVELINFO_TOTAL_MONSTERS        7\r
318 #define LEVELINFO_KILLED_MONSTERS       8\r
319 #define LEVELINFO_SUCK_TIME             9\r
320 \r
321 // Properties you can use with GetPlayerInfo() ------------------------------\r
322 \r
323 #define PLAYERINFO_TEAM                 0\r
324 #define PLAYERINFO_AIMDIST              1\r
325 #define PLAYERINFO_COLOR                2\r
326 #define PLAYERINFO_GENDER               3\r
327 #define PLAYERINFO_NEVERSWITCH  4\r
328 #define PLAYERINFO_MOVEBOB              5\r
329 #define PLAYERINFO_STILLBOB             6\r
330 #define PLAYERINFO_PLAYERCLASS  7\r
331 #define PLAYERINFO_FOV                  8\r
332 #define PLAYERINFO_DESIREDFOV   9\r
333 \r
334 \r
335 // Flags for ReplaceTextures ------------------------------------------------\r
336 \r
337 #define NOT_BOTTOM                              1\r
338 #define NOT_MIDDLE                              2\r
339 #define NOT_TOP                                 4\r
340 #define NOT_FLOOR                               8\r
341 #define NOT_CEILING                             16\r
342 \r
343 // Flags for SectorDamage ---------------------------------------------------\r
344 \r
345 #define DAMAGE_PLAYERS                          1\r
346 #define DAMAGE_NONPLAYERS                       2\r
347 #define DAMAGE_IN_AIR                           4\r
348 #define DAMAGE_SUBCLASSES_PROTECT       8\r
349 \r
350 // Flags for MorphActor -----------------------------------------------------\r
351 \r
352 #define MRF_OLDEFFECTS                  0x00000000\r
353 #define MRF_ADDSTAMINA                  0x00000001\r
354 #define MRF_FULLHEALTH                  0x00000002\r
355 #define MRF_UNDOBYTOMEOFPOWER   0x00000004\r
356 #define MRF_UNDOBYCHAOSDEVICE   0x00000008\r
357 #define MRF_FAILNOTELEFRAG              0x00000010\r
358 #define MRF_FAILNOLAUGH                 0x00000020\r
359 #define MRF_WHENINVULNERABLE    0x00000040\r
360 #define MRF_LOSEACTUALWEAPON    0x00000080\r
361 #define MRF_NEWTIDBEHAVIOUR             0x00000100\r
362 #define MRF_UNDOBYDEATH                 0x00000200\r
363 #define MRF_UNDOBYDEATHFORCED   0x00000400\r
364 #define MRF_UNDOBYDEATHSAVES    0x00000800\r
365 \r
366 // Shared spawnable things from Hexen. You can spawn these in the other -----\r
367 // games if you provide sprites for them, otherwise they'll be invisible. ---\r
368 \r
369 #define T_ROCK1                 41\r
370 #define T_ROCK2                 42\r
371 #define T_ROCK3                 43\r
372 #define T_DIRT1                 44\r
373 #define T_DIRT2                 45\r
374 #define T_DIRT3                 46\r
375 #define T_DIRT4                 47\r
376 #define T_DIRT5                 48\r
377 #define T_DIRT6                 49\r
378 #define T_STAINEDGLASS1         54\r
379 #define T_STAINEDGLASS2         55\r
380 #define T_STAINEDGLASS3         56\r
381 #define T_STAINEDGLASS4         57\r
382 #define T_STAINEDGLASS5         58\r
383 #define T_STAINEDGLASS6         59\r
384 #define T_STAINEDGLASS7         60\r
385 #define T_STAINEDGLASS8         61\r
386 #define T_STAINEDGLASS9         62\r
387 #define T_STAINEDGLASS0         63\r
388 \r
389 // Doom Spawnable things (used for thingcount() and thing spawners) ---------\r
390 \r
391 #define T_NONE                  0\r
392 #define T_SHOTGUY               1\r
393 #define T_CHAINGUY              2\r
394 #define T_BARON                 3\r
395 #define T_ZOMBIE                4\r
396 #define T_IMP                   5\r
397 #define T_ARACHNOTRON           6\r
398 #define T_SPIDERMASTERMIND      7\r
399 #define T_DEMON                 8\r
400 #define T_SPECTRE               9\r
401 #define T_IMPFIREBALL           10\r
402 #define T_CLIP                  11\r
403 #define T_SHELLS                12\r
404 #define T_CACODEMON             19\r
405 #define T_REVENANT              20\r
406 #define T_BRIDGE                21\r
407 #define T_ARMORBONUS            22\r
408 #define T_STIMPACK              23\r
409 #define T_MEDKIT                24\r
410 #define T_SOULSPHERE            25\r
411 #define T_SHOTGUN               27\r
412 #define T_CHAINGUN              28\r
413 #define T_ROCKETLAUNCHER        29\r
414 #define T_PLASMAGUN             30\r
415 #define T_BFG                   31\r
416 #define T_CHAINSAW              32\r
417 #define T_SUPERSHOTGUN          33\r
418 #define T_PLASMABOLT            51\r
419 #define T_TRACER                53\r
420 #define T_GREENARMOR            68\r
421 #define T_BLUEARMOR             69\r
422 #define T_CELL                  75\r
423 #define T_BLUEKEYCARD           85\r
424 #define T_REDKEYCARD            86\r
425 #define T_YELLOWKEYCARD         87\r
426 #define T_YELLOWSKULLKEY        88\r
427 #define T_REDSKULLKEY           89\r
428 #define T_BLUESKULLKEY          90\r
429 #define T_TEMPLARGEFLAME        98\r
430 #define T_STEALTHBARON          100\r
431 #define T_STEALTHKNIGHT         101\r
432 #define T_STEALTHZOMBIE         102\r
433 #define T_STEALTHSHOTGUY        103\r
434 \r
435 #define T_LOSTSOUL              110\r
436 #define T_VILE                  111\r
437 #define T_MANCUBUS              112\r
438 #define T_HELLKNIGHT            113\r
439 #define T_CYBERDEMON            114\r
440 #define T_PAINELEMENTAL         115\r
441 #define T_WOLFSS                116\r
442 #define T_STEALTHARACHNOTRON    117\r
443 #define T_STEALTHVILE           118\r
444 #define T_STEALTHCACODEMON      119\r
445 #define T_STEALTHCHAINGUY       120\r
446 #define T_STEALTHSERGEANT       121\r
447 #define T_STEALTHIMP            122\r
448 #define T_STEALTHMANCUBUS       123\r
449 #define T_STEALTHREVENANT       124\r
450 #define T_BARREL                125\r
451 #define T_CACODEMONSHOT         126\r
452 #define T_ROCKET                127\r
453 #define T_BFGSHOT               128\r
454 #define T_ARACHNOTRONPLASMA     129\r
455 #define T_BLOOD                 130\r
456 #define T_PUFF                  131\r
457 #define T_MEGASPHERE            132\r
458 #define T_INVULNERABILITY       133\r
459 #define T_BERSERK               134\r
460 #define T_INVISIBILITY          135\r
461 #define T_IRONFEET              136\r
462 #define T_COMPUTERMAP           137\r
463 #define T_LIGHTAMP              138\r
464 #define T_AMMOBOX               139\r
465 #define T_ROCKETAMMO            140\r
466 #define T_ROCKETBOX             141\r
467 #define T_BATTERY               142\r
468 #define T_SHELLBOX              143\r
469 #define T_BACKPACK              144\r
470 #define T_GUTS                  145\r
471 #define T_BLOODPOOL             146\r
472 #define T_BLOODPOOL1            147\r
473 #define T_BLOODPOOL2            148\r
474 #define T_FLAMINGBARREL         149\r
475 #define T_BRAINS                150\r
476 #define T_SCRIPTEDMARINE        151\r
477 #define T_HEALTHBONUS           152\r
478 #define T_MANCUBUSSHOT          153\r
479 #define T_BARONBALL             154\r
480 \r
481 // Heretic Spawnable things (used for thingcount() and thing spawners) ------\r
482 \r
483 #define T_CLINK                 1\r
484 #define T_MUMMYLEADER           2\r
485 #define T_BEAST                 3\r
486 #define T_MUMMY                 4\r
487 //#define T_IMP                 5   // Defined above\r
488 #define T_KNIGHT                6\r
489 #define T_IMPLEADER             7\r
490 #define T_MUMMYGHOST            8\r
491 #define T_MUMMYLEADERGHOST      9\r
492 //#define T_IMPFIREBALL         10\r
493 #define T_WIMPYWANDAMMO         11\r
494 #define T_HEFTYWANDAMMO         12\r
495 #define T_ITEMEGG               14\r
496 #define T_ITEMFLIGHT            15\r
497 #define T_ITEMTELEPORT          18\r
498 #define T_WIZARD                19\r
499 #define T_IRONLICH              20\r
500 #define T_ITEMHEALTHPOTION      23\r
501 #define T_ITEMHEALTHFLASH       24      // incorrect name but keep it for compatibility\r
502 #define T_ITEMHEALTHFLASK       24\r
503 #define T_ITEMHEALTHFULL        25\r
504 #define T_CROSSBOW              27\r
505 #define T_BLASTER               28\r
506 #define T_PHOENIXROD            29\r
507 #define T_SKULLROD              30\r
508 #define T_MACE                  31\r
509 #define T_GAUNTLETS             32\r
510 #define T_WIMPYCROSSBOWAMMO     33\r
511 #define T_HEFTYCROSSBOWAMMO     34\r
512 #define T_WIMPYMACEAMMO         35\r
513 #define T_HEFTYMACEAMMO         36\r
514 #define T_WIMPYBLASTERAMMO      37\r
515 #define T_HEFTYBLASTERAMMO      38\r
516 #define T_MORPHBLAST            40\r
517 #define T_SHIELD1               68\r
518 #define T_SHIELD2               69\r
519 #define T_ITEMTIMEBOMB          72\r
520 #define T_ITEMTORCH             73\r
521 #define T_BLUEKEY               85\r
522 #define T_GREENKEY              86\r
523 #define T_YELLOWKEY             87\r
524 \r
525 #define T_SOUND_WIND            110\r
526 #define T_SOUND_WATERFALL       111\r
527 \r
528 #define T_BEASTBALL             120\r
529 #define T_FEATHER               121\r
530 #define T_CHICKEN               122\r
531 #define T_VOLCANOBALL           123\r
532 #define T_TINYVOLCANOBALL       124\r
533 #define T_POD                   125\r
534 #define T_PODGENERATOR          126\r
535 #define T_KNIGHTAXE             127\r
536 #define T_KNIGHTBLOODAXE        128\r
537 #define T_KNIGHTGHOST           129\r
538 #define T_MUMMYHEAD             131\r
539 #define T_SNAKE                 132\r
540 #define T_ITEMINVULNERABILITY   133\r
541 #define T_ITEMTOME              134\r
542 #define T_ITEMINVISIBILITY      135\r
543 #define T_ITEMBAGOFHOLDING      136\r
544 #define T_ITEMALLMAP            137\r
545 #define T_SNAKEPROJECTILE       138\r
546 #define T_SNAKEPROJECTILEBIG    139\r
547 #define T_WIZARDSHOT            140\r
548 \r
549 #define T_DSPARILTELEPORTDEST   141\r
550 #define T_DSPARILONSERPENT      142\r
551 #define T_DSPARILALONE          143\r
552 #define T_SERPENTFIREBALL       144\r
553 #define T_DSPARILBLUESHOT       145\r
554 #define T_DSPARILWIZARDSPAWNER  146\r
555 \r
556 #define T_CROSSBOWMAINBLAST     147\r
557 #define T_CROSSBOWMINIBLAST     148\r
558 #define T_CROSSBOWPOWERBLAST    149\r
559 #define T_VOLCANO               150\r
560 #define T_POWERWANDMINIBLAST    151\r
561 #define T_POWERWANDBIGGERBLAST  152\r
562 #define T_DEATHBALL             153\r
563 #define T_NOGRAVITYMACEBALL     154\r
564 #define T_BOUNCYMACEBALL        155\r
565 #define T_HEAVYMACEBALL         156\r
566 #define T_RIPPER                157\r
567 #define T_WIMPYSKULLRODAMMO     158\r
568 #define T_HEFTYSKULLRODAMMO     159\r
569 #define T_SKULLRODBLAST         160\r
570 #define T_WIMPYPHOENIXRODAMMO   161\r
571 #define T_HEFTYPHOENIXRODAMMO   162\r
572 #define T_PHOENIXSHOT           163\r
573 #define T_IRONLICHBLUESHOT      164\r
574 #define T_WHIRLWIND             165\r
575 #define T_REDTELEGLITTER        166\r
576 #define T_BLUETELEGLITTER       167\r
577 \r
578 // Hexen Spawnable things (used for thingcount() and thing spawners) ------\r
579 \r
580 #define T_CENTAUR                               1\r
581 #define T_CENTAURLEADER                 2\r
582 #define T_DEMON1                                3\r
583 #define T_ETTIN                                 4\r
584 #define T_FIREGARGOYLE                  5\r
585 #define T_WATERLURKER                   6\r
586 #define T_WATERLURKERLEADER             7\r
587 #define T_WRAITH                                8\r
588 #define T_WRAITHBURIED                  9\r
589 #define T_FIREBALL1                             10\r
590 #define T_MANA1                                 11\r
591 #define T_MANA2                                 12\r
592 #define T_ITEMBOOTS                             13\r
593 #define T_ITEMPORK                              14\r
594 #define T_ITEMSUMMON                    16\r
595 #define T_ITEMTPORTOTHER                17\r
596 #define T_BISHOP                                19\r
597 #define T_ICEGOLEM                              20\r
598 #define T_DRAGONSKINBRACERS             22\r
599 #define T_ITEMBOOSTMANA                 26\r
600 #define T_FIGHTERAXE                    27\r
601 #define T_FIGHTERHAMMER                 28\r
602 #define T_FIGHTERSWORD1                 29\r
603 #define T_FIGHTERSWORD2                 30\r
604 #define T_FIGHTERSWORD3                 31\r
605 #define T_CLERICSTAFF                   32\r
606 #define T_CLERICHOLY1                   33\r
607 #define T_CLERICHOLY2                   34\r
608 #define T_CLERICHOLY3                   35\r
609 #define T_MAGESHARDS                    36\r
610 #define T_MAGESTAFF1                    37\r
611 #define T_MAGESTAFF2                    38\r
612 #define T_MAGESTAFF3                    39\r
613 #define T_ARROW                                 50\r
614 #define T_DART                                  51\r
615 #define T_POISONDART                    52\r
616 #define T_RIPPERBALL                    53\r
617 #define T_BLADE                                 64\r
618 #define T_ICESHARD                              65\r
619 #define T_FLAME_SMALL                   66\r
620 #define T_FLAME_LARGE                   67\r
621 #define T_MESHARMOR                             68\r
622 #define T_FALCONSHIELD                  69\r
623 #define T_PLATINUMHELM                  70\r
624 #define T_AMULETOFWARDING               71\r
625 #define T_ITEMFLECHETTE                 72\r
626 #define T_ITEMREPULSION                 74\r
627 #define T_MANA3                                 75\r
628 #define T_PUZZSKULL                             76\r
629 #define T_PUZZGEMBIG                    77\r
630 #define T_PUZZGEMRED                    78\r
631 #define T_PUZZGEMGREEN1                 79\r
632 #define T_PUZZGEMGREEN2                 80\r
633 #define T_PUZZGEMBLUE1                  81\r
634 #define T_PUZZGEMBLUE2                  82\r
635 #define T_PUZZBOOK1                             83\r
636 #define T_PUZZBOOK2                             84\r
637 #define T_METALKEY                              85\r
638 #define T_SMALLMETALKEY                 86\r
639 #define T_AXEKEY                                87\r
640 #define T_FIREKEY                               88\r
641 #define T_EMERALDKEY                    89\r
642 #define T_MACEKEY                               90\r
643 #define T_SILVERKEY                             91\r
644 #define T_RUSTYKEY                              92\r
645 #define T_HORNKEY                               93\r
646 #define T_SERPENTKEY                    94\r
647 #define T_WATERDRIP                             95\r
648 #define T_TEMPSMALLFLAME                96\r
649 #define T_PERMSMALLFLAME                97\r
650 #define T_PERMLARGEFLAME                99\r
651 #define T_DEMON_MASH                    100\r
652 #define T_DEMON2_MASH                   101\r
653 #define T_ETTIN_MASH                    102\r
654 #define T_CENTAUR_MASH                  103\r
655 #define T_THRUSTSPIKEUP                 104\r
656 #define T_THRUSTSPIKEDOWN               105\r
657 #define T_FLESH_DRIP1                   106\r
658 #define T_FLESH_DRIP2                   107\r
659 #define T_SPARK_DRIP                    108\r
660 \r
661 \r
662 // Flags returned by ClassifyActor\r
663 \r
664 #define ACTOR_NONE                              0\r
665 #define ACTOR_WORLD                             1\r
666 #define ACTOR_PLAYER                    2\r
667 #define ACTOR_BOT                               4\r
668 #define ACTOR_VOODOODOLL                8\r
669 #define ACTOR_MONSTER                   16\r
670 #define ACTOR_ALIVE                             32\r
671 #define ACTOR_DEAD                              64\r
672 #define ACTOR_MISSILE                   128\r
673 #define ACTOR_GENERIC                   256\r
674 \r
675 \r
676 // Physical volumes for SoundSequenceOnSector\r
677 \r
678 #define SECSEQ_FLOOR                    1\r
679 #define SECSEQ_CEILING                  2\r
680 #define SECSEQ_FULLHEIGHT               3\r
681 #define SECSEQ_INTERIOR                 4\r
682 \r
683 // Channels for PlaySound and StopSound\r
684 \r
685 #define CHAN_AUTO                               0\r
686 #define CHAN_WEAPON                             1\r
687 #define CHAN_VOICE                              2\r
688 #define CHAN_ITEM                               3\r
689 #define CHAN_BODY                               4\r
690 \r
691 // Modifier flags for PlaySound\r
692 \r
693 #define CHAN_LISTENERZ                  8\r
694 #define CHAN_MAYBE_LOCAL                16\r
695 #define CHAN_UI                                 32\r
696 #define CHAN_NOPAUSE                    64\r
697 \r
698 // Standard attenuation values for PlaySound\r
699 \r
700 #define ATTN_NONE                               0               // full volume the entire level\r
701 #define ATTN_NORM                               1.0\r
702 #define ATTN_IDLE                               1.001\r
703 #define ATTN_STATIC                             3.0             // dimish very rapidly with distance\r
704 \r
705 // Identifiers for PlayActorSound\r
706 \r
707 #define SOUND_See                               0\r
708 #define SOUND_Attack                    1\r
709 #define SOUND_Pain                              2\r
710 #define SOUND_Death                             3\r
711 #define SOUND_Active                    4\r
712 #define SOUND_Use                               5\r
713 #define SOUND_Bounce                    6\r
714 #define SOUND_WallBounce                7\r
715 #define SOUND_CrushPain                 8\r
716 #define SOUND_Howl                              9\r
717 \r
718 // Flags for SpawnDecal\r
719 \r
720 #define SDF_ABSANGLE                    1\r
721 #define SDF_PERMANENT                   2\r
722 \r
723 // Actor pointer selectors\r
724 \r
725 #DEFINE AAPTR_DEFAULT 0\r
726 #DEFINE AAPTR_NULL 0x1\r
727 #DEFINE AAPTR_TARGET 0x2\r
728 #DEFINE AAPTR_MASTER 0x4\r
729 #DEFINE AAPTR_TRACER 0x8\r
730 \r
731 #DEFINE AAPTR_PLAYER_GETTARGET 0x10\r
732 #DEFINE AAPTR_PLAYER_GETCONVERSATION 0x20\r
733 \r
734 #DEFINE AAPTR_PLAYER1 0x40\r
735 #DEFINE AAPTR_PLAYER2 0x80\r
736 #DEFINE AAPTR_PLAYER3 0x100\r
737 #DEFINE AAPTR_PLAYER4 0x200\r
738 #DEFINE AAPTR_PLAYER5 0x400\r
739 #DEFINE AAPTR_PLAYER6 0x800\r
740 #DEFINE AAPTR_PLAYER7 0x1000\r
741 #DEFINE AAPTR_PLAYER8 0x2000\r
742 \r
743 #DEFINE AAPTR_FRIENDPLAYER 0x4000\r
744 \r
745 // Actor pointer operation flags\r
746 \r
747 #DEFINE PTROP_UNSAFETARGET 1\r
748 #DEFINE PTROP_UNSAFEMASTER 2\r
749 #DEFINE PTROP_NOSAFEGUARDS PTROP_UNSAFETARGET |PTROP_UNSAFEMASTER \r
750 \r
751 // Line activation flags\r
752 \r
753 #define SPAC_Cross                      1               // when player crosses line\r
754 #define SPAC_Use                        2               // when player uses line\r
755 #define SPAC_MCross                     4               // when monster crosses line\r
756 #define SPAC_Impact                     8               // when projectile hits line\r
757 #define SPAC_Push                       16              // when player pushes line\r
758 #define SPAC_PCross                     32              // when projectile crosses line\r
759 #define SPAC_UseThrough         64              // when player uses line (doesn't block)\r
760 #define SPAC_AnyCross           128             // when anything without the TELEPORT flag crosses the line\r
761 #define SPAC_MUse                       256             // monsters can use\r
762 #define SPAC_MPush                      512             // monsters can push\r
763 #define SPAC_UseBack            1024    // can be used from the back side\r
764 \r
765 #define SPAC_None                       0\r
766 \r
767 // ==========================================================================\r
768 // Skulltag Definitions\r
769 // ==========================================================================\r
770 \r
771 // Skulltag Teams -----------------------------------------------------------\r
772 #define TEAM_BLUE                               0\r
773 #define TEAM_RED                                1\r
774 #define NO_TEAM                                 2\r
775 \r
776 // Team properties ----------------------------------------------------------\r
777 #define TPROP_Name                              0\r
778 #define TPROP_Score                             1\r
779 #define TPROP_IsValid                   2\r
780 #define TPROP_NumPlayers                3\r
781 #define TPROP_NumLivePlayers    4\r
782 #define TPROP_TextColor                 5\r
783 #define TPROP_PlayerStartNum    6\r
784 #define TPROP_Spread                    7\r
785 #define TPROP_Carrier                   8\r
786 #define TPROP_Assister                  9\r
787 #define TPROP_FragCount                 10\r
788 #define TPROP_DeathCount                11\r
789 #define TPROP_WinCount                  12\r
790 #define TPROP_PointCount                13\r
791 #define TPROP_ReturnTics                14\r
792 #define TPROP_TeamItem                  15\r
793 #define TPROP_WinnerTheme               16\r
794 #define TPROP_LoserTheme                17\r
795 \r
796 // Skulltag Invasion --------------------------------------------------------\r
797 #define IS_WAITINGFORPLAYERS    0\r
798 #define IS_FIRSTCOUNTDOWN               1\r
799 #define IS_INPROGRESS                   2\r
800 #define IS_BOSSFIGHT                    3\r
801 #define IS_WAVECOMPLETE                 4\r
802 #define IS_COUNTDOWN                    5\r
803 \r
804 \r
805 #define T_GRENADE                               216\r
806 #define T_BFG10KSHOT                    217\r
807 #define T_DARKIMPFIREBALL               218\r
808 #define T_CACOLANTERNSHOT               219\r
809 #define T_ABADDONSHOT                   221\r
810 \r
811 // Skulltag Monsters --------------------------------------------------------\r
812 #define T_DARKIMP                               155\r
813 #define T_BLOODDEMON                    156\r
814 #define T_SSGGUY                                157\r
815 #define T_HECTEBUS                              158\r
816 #define T_CACOLANTERN                   159\r
817 #define T_BELPHEGOR                             215\r
818 #define T_ABADDON                               220\r
819 \r
820 // Skulltag Weapons ---------------------------------------------------------\r
821 #define T_PISTOL                                162\r
822 #define T_GRENADELAUNCHER               163\r
823 #define T_RAILGUN                               164\r
824 #define T_BFG10000                              165\r
825 #define T_MINIGUN                               214\r
826 \r
827 // Skulltag Armor/Health Items ----------------------------------------------\r
828 #define T_MAXHEALTHBONUS                166\r
829 #define T_MAXARMORBONUS                 167\r
830 #define T_REDARMOR                              168\r
831 \r
832 // Skulltag Powerups --------------------------------------------------------\r
833 #define T_TURBOSPHERE                   169\r
834 #define T_ANTIGRAVBELT                  170\r
835 #define T_TIMEFREEZER                   171\r
836 #define T_INFRAGOGGLES                  172\r
837 #define T_INFRATRACKER                  173\r
838 #define T_TRANSLUCENCY                  174\r
839 #define T_DOOMSPHERE                    175\r
840 #define T_RANDOMPOWERUP                 176\r
841 \r
842 // Skulltag Flags -----------------------------------------------------------\r
843 #define T_BLUEFLAG                              177\r
844 #define T_REDFLAG                               178\r
845 #define T_WHITEFLAG                             179\r
846 \r
847 // Skulltag Runes -----------------------------------------------------------\r
848 #define T_STRENGTH                              180\r
849 #define T_RAGE                                  181\r
850 #define T_DRAIN                                 182\r
851 #define T_SPREAD                                183\r
852 #define T_RESISTANCE                    184\r
853 #define T_REGENERATION                  185\r
854 #define T_PROSPERITY                    186\r
855 #define T_REFLECTION                    187\r
856 #define T_HIGHJUMP                              188\r
857 #define T_HASTE                                 189\r
858 \r
859 \r
860 // Events when you have input grabbed\r
861 \r
862 #define EV_KeyDown                              1       // data1: unshifted ASCII, data2: shifted ASCII\r
863 #define EV_KeyRepeat                    2       // data1: unshifted ASCII, data2: shifted ASCII\r
864 #define EV_KeyUp                                3       // data1: unshifted ASCII, data2: shifted ASCII\r
865 #define EV_Char                                 4       // data1: translated character for text input\r
866 #define EV_MouseMove                    5       // data1: x, data2: y\r
867 #define EV_LButtonDown                  6\r
868 #define EV_LButtonUp                    7\r
869 #define EV_LButtonDblClick              8\r
870 #define EV_MButtonDown                  9\r
871 #define EV_MButtonUp                    10\r
872 #define EV_MButtonDblClick              11\r
873 #define EV_RButtonDown                  12\r
874 #define EV_RButtonUp                    13\r
875 #define EV_RButtonDblClick              14\r
876 #define EV_WheelDown                    15\r
877 #define EV_WheelUp                              16\r
878 \r
879 // Key modifiers (or'd with event type)\r
880 \r
881 #define GKM_SHIFT                               256\r
882 #define GKM_CTRL                                512\r
883 #define GKM_ALT                                 1024\r
884 \r
885 // Button modifiers are only valid for EV_MouseMove events\r
886 \r
887 #define GKM_LBUTTON                             2048\r
888 #define GKM_MBUTTON                             4096\r
889 #define GKM_RBUTTON                             8192\r
890 \r
891 // Special codes for some GUI keys, including a few real ASCII codes.\r
892 \r
893 #define GK_PGDN                 1\r
894 #define GK_PGUP                 2\r
895 #define GK_HOME                 3\r
896 #define GK_END                  4\r
897 #define GK_LEFT                 5\r
898 #define GK_RIGHT                6\r
899 #define GK_ALERT                7               // ASCII bell\r
900 #define GK_BACKSPACE    8               // ASCII\r
901 #define GK_TAB                  9               // ASCII\r
902 #define GK_LINEFEED             10              // ASCII\r
903 #define GK_DOWN                 10\r
904 #define GK_VTAB                 11              // ASCII\r
905 #define GK_UP                   11\r
906 #define GK_FORMFEED             12              // ASCII\r
907 #define GK_RETURN               13              // ASCII\r
908 #define GK_F1                   14\r
909 #define GK_F2                   15\r
910 #define GK_F3                   16\r
911 #define GK_F4                   17\r
912 #define GK_F5                   18\r
913 #define GK_F6                   19\r
914 #define GK_F7                   20\r
915 #define GK_F8                   21\r
916 #define GK_F9                   22\r
917 #define GK_F10                  23\r
918 #define GK_F11                  24\r
919 #define GK_F12                  25\r
920 #define GK_DEL                  26\r
921 #define GK_ESCAPE               27              // ASCII\r
922 #define GK_FREE1                28\r
923 #define GK_FREE2                29\r
924 #define GK_FREE3                30\r
925 #define GK_CESCAPE              31              // color escape\r
926 \r
927 #define CHANGELEVEL_KEEPFACING 1\r
928 #define CHANGELEVEL_RESETINVENTORY 2\r
929 #define CHANGELEVEL_NOMONSTERS 4\r
930 #define CHANGELEVEL_CHANGESKILL 8\r
931 #define CHANGELEVEL_NOINTERMISSION 16\r
932 #define CHANGELEVEL_RESETHEALTH 32\r
933 #define CHANGELEVEL_PRERAISEWEAPON 64\r
934 \r
935 #define NO_CHANGE 32767.0\r
936 \r
937 #define SECF_SILENT 1\r
938 #define SECF_NOFALLINGDAMAGE 2\r
939 #define SECF_FLOORDROP 4\r
940 #define SECF_NORESPAWN 8\r
941 \r
942 #define BLOCKF_CREATURES 1\r
943 #define BLOCKF_MONSTERS 2\r
944 #define BLOCKF_PLAYERS 4\r
945 #define BLOCKF_FLOATERS 8\r
946 #define BLOCKF_PROJECTILES 16\r
947 #define BLOCKF_EVERYTHING 32\r
948 #define BLOCKF_RAILING 64\r
949 #define BLOCKF_USE 128\r
950 #define BLOCKF_SIGHT 256\r
951 #define BLOCKF_HITSCAN 512\r
952 \r
953 #define FOGP_DENSITY 0\r
954 #define FOGP_OUTSIDEDENSITY 1\r
955 #define FOGP_SKYFOG 2\r
956 \r
957 #define PRINTNAME_LEVELNAME -1\r
958 #define PRINTNAME_LEVEL -2\r
959 #define PRINTNAME_SKILL -3\r
960 \r
961 #define CSF_NOFAKEFLOORS 1\r
962 #define CSF_NOBLOCKALL 2\r
963 \r
964 #define FHF_NORANDOMPUFFZ       1\r