2 //**************************************************************************
\r
6 //** Common definitions for use when compiling ACS scripts for ZDoom
\r
8 //**************************************************************************
\r
17 #define LINE_FRONT 0
\r
20 #define SIDE_FRONT 0
\r
23 #define TEXTURE_TOP 0
\r
24 #define TEXTURE_MIDDLE 1
\r
25 #define TEXTURE_BOTTOM 2
\r
27 #define GAME_SINGLE_PLAYER 0
\r
28 #define GAME_NET_COOPERATIVE 1
\r
29 #define GAME_NET_DEATHMATCH 2
\r
30 #define GAME_TITLE_MAP 3
\r
32 // Classes are only useful with Hexen
\r
33 #define CLASS_FIGHTER 0
\r
34 #define CLASS_CLERIC 1
\r
35 #define CLASS_MAGE 2
\r
37 #define SKILL_VERY_EASY 0
\r
38 #define SKILL_EASY 1
\r
39 #define SKILL_NORMAL 2
\r
40 #define SKILL_HARD 3
\r
41 #define SKILL_VERY_HARD 4
\r
43 #define BLOCK_NOTHING 0
\r
44 #define BLOCK_CREATURES 1
\r
45 #define BLOCK_EVERYTHING 2
\r
46 #define BLOCK_RAILING 3
\r
47 #define BLOCK_PLAYERS 4
\r
51 #define SCROLL_AND_CARRY 2
\r
53 // Means-of-death for Sector_SetDamage --------------------------------------
\r
55 #define MOD_UNKNOWN 0
\r
56 #define MOD_ROCKET 5
\r
57 #define MOD_R_SPLASH 6
\r
58 #define MOD_PLASMARIFLE 7
\r
59 #define MOD_BFG_BOOM 8
\r
60 #define MOD_BFG_SPLASH 9
\r
61 #define MOD_CHAINSAW 10
\r
62 #define MOD_SSHOTGUN 11
\r
63 #define MOD_WATER 12
\r
64 #define MOD_SLIME 13
\r
66 #define MOD_CRUSH 15
\r
67 #define MOD_TELEFRAG 16
\r
68 #define MOD_FALLING 17
\r
69 #define MOD_SUICIDE 18
\r
70 #define MOD_BARREL 19
\r
72 #define MOD_SPLASH 21
\r
74 #define MOD_RAILGUN 23
\r
76 #define MOD_DISINTEGRATE 25
\r
77 #define MOD_POISON 26
\r
78 #define MOD_ELECTRIC 27
\r
80 // Return values for PlayMovie ----------------------------------------------
\r
82 #define MOVIE_Played 0
\r
83 #define MOVIE_Played_NoVideo 1
\r
84 #define MOVIE_Played_Aborted 2
\r
85 #define MOVIE_Failed -1
\r
88 // Player properties --------------------------------------------------------
\r
90 #define PROP_FROZEN 0
\r
91 #define PROP_NOTARGET 1
\r
92 #define PROP_INSTANTWEAPONSWITCH 2
\r
94 #define PROP_TOTALLYFROZEN 4
\r
96 // The following properties correspond to powers given by certain items
\r
97 #define PROP_INVULNERABILITY 5
\r
98 #define PROP_STRENGTH 6
\r
99 #define PROP_INVISIBILITY 7
\r
100 #define PROP_RADIATIONSUIT 8
\r
101 #define PROP_ALLMAP 9
\r
102 #define PROP_INFRARED 10
\r
103 #define PROP_WEAPONLEVEL2 11
\r
104 #define PROP_FLIGHT 12
\r
105 #define PROP_SPEED 15
\r
107 // Text colors --------------------------------------------------------------
\r
109 #define CR_UNTRANSLATED -1
\r
119 #define CR_ORANGE 8
\r
121 #define CR_YELLOW 10
\r
122 #define CR_BLACK 12
\r
123 #define CR_LIGHTBLUE 13
\r
124 #define CR_CREAM 14
\r
125 #define CR_OLIVE 15
\r
126 #define CR_DARKGREEN 16
\r
127 #define CR_DARKRED 17
\r
128 #define CR_DARKBROWN 18
\r
129 #define CR_PURPLE 19
\r
130 #define CR_DARKGRAY 20
\r
131 #define CR_DARKGREY 20
\r
133 // HUD message types --------------------------------------------------------
\r
135 #define HUDMSG_PLAIN 0
\r
136 #define HUDMSG_FADEOUT 1
\r
137 #define HUDMSG_TYPEON 2
\r
138 #define HUDMSG_FADEINOUT 3
\r
140 // OR this with one of the above to log the hudmessage to the console.
\r
141 // i.e. instead of HUDMSG_PLAIN, you can use HUDMSG_PLAIN | HUDMSG_LOG
\r
142 #define HUDMSG_LOG 0x80000000
\r
144 // OR this with one of the above if the color you passed is a string
\r
145 // instead of one of the CR_ constants.
\r
146 #define HUDMSG_COLORSTRING 0x40000000
\r
148 // "Scripted" Marine weapon types -------------------------------------------
\r
150 #define MARINEWEAPON_Dummy 0
\r
151 #define MARINEWEAPON_Fist 1
\r
152 #define MARINEWEAPON_BerserkFist 2
\r
153 #define MARINEWEAPON_Chainsaw 3
\r
154 #define MARINEWEAPON_Pistol 4
\r
155 #define MARINEWEAPON_Shotgun 5
\r
156 #define MARINEWEAPON_SuperShotgun 6
\r
157 #define MARINEWEAPON_Chaingun 7
\r
158 #define MARINEWEAPON_RocketLauncher 8
\r
159 #define MARINEWEAPON_PlasmaRifle 9
\r
160 #define MARINEWEAPON_Railgun 10
\r
161 #define MARINEWEAPON_BFG 11
\r
163 // Actor properties you can get/set -----------------------------------------
\r
165 #define APROP_Health 0
\r
166 #define APROP_Speed 1
\r
167 #define APROP_Damage 2
\r
168 #define APROP_Alpha 3
\r
169 #define APROP_RenderStyle 4
\r
170 #define APROP_Ambush 10
\r
171 #define APROP_Invulnerable 11
\r
172 #define APROP_JumpZ 12
\r
173 #define APROP_ChaseGoal 13
\r
174 #define APROP_Frightened 14
\r
175 #define APROP_Gravity 15
\r
176 #define APROP_Friendly 16
\r
177 #define APROP_SeeSound 5 // Sounds can only be set, not gotten
\r
178 #define APROP_AttackSound 6
\r
179 #define APROP_PainSound 7
\r
180 #define APROP_DeathSound 8
\r
181 #define APROP_ActiveSound 9
\r
183 // Render Styles ------------------------------------------------------------
\r
185 #define STYLE_None 0 // Do not draw
\r
186 #define STYLE_Normal 1 // Normal; just copy the image to the screen
\r
187 #define STYLE_Fuzzy 2 // Draw silhouette using "fuzz" effect
\r
188 #define STYLE_SoulTrans 3 // Draw translucent with amount in r_transsouls
\r
189 #define STYLE_OptFuzzy 4 // Draw as fuzzy or translucent, based on user preference
\r
190 #define STYLE_Translucent 64 // Draw translucent
\r
191 #define STYLE_Add 65 // Draw additive
\r
193 // Properties you can use with GetLevelInfo() -------------------------------
\r
195 #define LEVELINFO_PAR_TIME 0
\r
196 #define LEVELINFO_CLUSTERNUM 1
\r
197 #define LEVELINFO_LEVELNUM 2
\r
198 #define LEVELINFO_TOTAL_SECRETS 3
\r
199 #define LEVELINFO_FOUND_SECRETS 4
\r
200 #define LEVELINFO_TOTAL_ITEMS 5
\r
201 #define LEVELINFO_FOUND_ITEMS 6
\r
202 #define LEVELINFO_TOTAL_MONSTERS 7
\r
203 #define LEVELINFO_KILLED_MONSTERS 8
\r
204 #define LEVELINFO_SUCK_TIME 9
\r
206 // Properties you can use with GetPlayerInfo() ------------------------------
\r
208 #define PLAYERINFO_TEAM 0
\r
209 #define PLAYERINFO_AIMDIST 1
\r
210 #define PLAYERINFO_COLOR 2
\r
211 #define PLAYERINFO_GENDER 3
\r
212 #define PLAYERINFO_NEVERSWITCH 4
\r
213 #define PLAYERINFO_MOVEBOB 5
\r
214 #define PLAYERINFO_STILLBOB 6
\r
215 #define PLAYERINFO_PLAYERCLASS 7
\r
218 // Flags for ReplaceTextures ------------------------------------------------
\r
220 #define NOT_BOTTOM 1
\r
221 #define NOT_MIDDLE 2
\r
223 #define NOT_FLOOR 8
\r
224 #define NOT_CEILING 16
\r
226 // Flags for SectorDamage ---------------------------------------------------
\r
228 #define DAMAGE_PLAYERS 1
\r
229 #define DAMAGE_NONPLAYERS 2
\r
230 #define DAMAGE_IN_AIR 4
\r
231 #define DAMAGE_SUBCLASSES_PROTECT 8
\r
233 // Shared spawnable things from Hexen. You can spawn these in the other -----
\r
234 // games if you provide sprites for them, otherwise they'll be invisible. ---
\r
245 #define T_STAINEDGLASS1 54
\r
246 #define T_STAINEDGLASS2 55
\r
247 #define T_STAINEDGLASS3 56
\r
248 #define T_STAINEDGLASS4 57
\r
249 #define T_STAINEDGLASS5 58
\r
250 #define T_STAINEDGLASS6 59
\r
251 #define T_STAINEDGLASS7 60
\r
252 #define T_STAINEDGLASS8 61
\r
253 #define T_STAINEDGLASS9 62
\r
254 #define T_STAINEDGLASS0 63
\r
256 // Doom Spawnable things (used for thingcount() and thing spawners) ---------
\r
259 #define T_SHOTGUY 1
\r
260 #define T_CHAINGUY 2
\r
264 #define T_ARACHNOTRON 6
\r
265 #define T_SPIDERMASTERMIND 7
\r
267 #define T_SPECTRE 9
\r
268 #define T_IMPFIREBALL 10
\r
270 #define T_SHELLS 12
\r
271 #define T_CACODEMON 19
\r
272 #define T_REVENANT 20
\r
273 #define T_BRIDGE 21
\r
274 #define T_ARMORBONUS 22
\r
275 #define T_STIMPACK 23
\r
276 #define T_MEDKIT 24
\r
277 #define T_SOULSPHERE 25
\r
278 #define T_SHOTGUN 27
\r
279 #define T_CHAINGUN 28
\r
280 #define T_ROCKETLAUNCHER 29
\r
281 #define T_PLASMAGUN 30
\r
283 #define T_CHAINSAW 32
\r
284 #define T_SUPERSHOTGUN 33
\r
285 #define T_PLASMABOLT 51
\r
286 #define T_TRACER 53
\r
287 #define T_GREENARMOR 68
\r
288 #define T_BLUEARMOR 69
\r
290 #define T_BLUEKEYCARD 85
\r
291 #define T_REDKEYCARD 86
\r
292 #define T_YELLOWKEYCARD 87
\r
293 #define T_YELLOWSKULLKEY 88
\r
294 #define T_REDSKULLKEY 89
\r
295 #define T_BLUESKULLKEY 90
\r
296 #define T_TEMPLARGEFLAME 98
\r
297 #define T_STEALTHBARON 100
\r
298 #define T_STEALTHKNIGHT 101
\r
299 #define T_STEALTHZOMBIE 102
\r
300 #define T_STEALTHSHOTGUY 103
\r
302 #define T_LOSTSOUL 110
\r
304 #define T_MANCUBUS 112
\r
305 #define T_HELLKNIGHT 113
\r
306 #define T_CYBERDEMON 114
\r
307 #define T_PAINELEMENTAL 115
\r
308 #define T_WOLFSS 116
\r
309 #define T_STEALTHARACHNOTRON 117
\r
310 #define T_STEALTHVILE 118
\r
311 #define T_STEALTHCACODEMON 119
\r
312 #define T_STEALTHCHAINGUY 120
\r
313 #define T_STEALTHSERGEANT 121
\r
314 #define T_STEALTHIMP 122
\r
315 #define T_STEALTHMANCUBUS 123
\r
316 #define T_STEALTHREVENANT 124
\r
317 #define T_BARREL 125
\r
318 #define T_CACODEMONSHOT 126
\r
319 #define T_ROCKET 127
\r
320 #define T_BFGSHOT 128
\r
321 #define T_ARACHNOTRONPLASMA 129
\r
322 #define T_BLOOD 130
\r
324 #define T_MEGASPHERE 132
\r
325 #define T_INVULNERABILITY 133
\r
326 #define T_BERSERK 134
\r
327 #define T_INVISIBILITY 135
\r
328 #define T_IRONFEET 136
\r
329 #define T_COMPUTERMAP 137
\r
330 #define T_LIGHTAMP 138
\r
331 #define T_AMMOBOX 139
\r
332 #define T_ROCKETAMMO 140
\r
333 #define T_ROCKETBOX 141
\r
334 #define T_BATTERY 142
\r
335 #define T_SHELLBOX 143
\r
336 #define T_BACKPACK 144
\r
338 #define T_BLOODPOOL 146
\r
339 #define T_BLOODPOOL1 147
\r
340 #define T_BLOODPOOL2 148
\r
341 #define T_FLAMINGBARREL 149
\r
342 #define T_BRAINS 150
\r
343 #define T_SCRIPTEDMARINE 151
\r
344 #define T_HEALTHBONUS 152
\r
345 #define T_MANCUBUSSHOT 153
\r
346 #define T_BARONBALL 154
\r
348 // Heretic Spawnable things (used for thingcount() and thing spawners) ------
\r
351 #define T_MUMMYLEADER 2
\r
354 //#define T_IMP 5 // Defined above
\r
356 #define T_IMPLEADER 7
\r
357 #define T_MUMMYGHOST 8
\r
358 #define T_MUMMYLEADERGHOST 9
\r
359 //#define T_IMPFIREBALL 10
\r
360 #define T_WIMPYWANDAMMO 11
\r
361 #define T_HEFTYWANDAMMO 12
\r
362 #define T_ITEMEGG 14
\r
363 #define T_ITEMFLIGHT 15
\r
364 #define T_ITEMTELEPORT 18
\r
365 #define T_WIZARD 19
\r
366 #define T_IRONLICH 20
\r
367 #define T_ITEMHEALTHPOTION 23
\r
368 #define T_ITEMHEALTHFLASH 24
\r
369 #define T_ITEMHEALTHFULL 25
\r
370 #define T_CROSSBOW 27
\r
371 #define T_BLASTER 28
\r
372 #define T_PHOENIXROD 29
\r
373 #define T_SKULLROD 30
\r
375 #define T_GAUNTLETS 32
\r
376 #define T_WIMPYCROSSBOWAMMO 33
\r
377 #define T_HEFTYCROSSBOWAMMO 34
\r
378 #define T_WIMPYMACEAMMO 35
\r
379 #define T_HEFTYMACEAMMO 36
\r
380 #define T_WIMPYBLASTERAMMO 37
\r
381 #define T_HEFTYBLASTERAMMO 38
\r
382 #define T_MORPHBLAST 40
\r
383 #define T_SHIELD1 68
\r
384 #define T_SHIELD2 69
\r
385 #define T_ITEMTIMEBOMB 72
\r
386 #define T_ITEMTORCH 73
\r
387 #define T_BLUEKEY 85
\r
388 #define T_GREENKEY 86
\r
389 #define T_YELLOWKEY 87
\r
391 #define T_SOUND_WIND 110
\r
392 #define T_SOUND_WATERFALL 111
\r
394 #define T_BEASTBALL 120
\r
395 #define T_FEATHER 121
\r
396 #define T_CHICKEN 122
\r
397 #define T_VOLCANOBALL 123
\r
398 #define T_TINYVOLCANOBALL 124
\r
400 #define T_PODGENERATOR 126
\r
401 #define T_KNIGHTAXE 127
\r
402 #define T_KNIGHTBLOODAXE 128
\r
403 #define T_KNIGHTGHOST 129
\r
404 #define T_MUMMYHEAD 131
\r
405 #define T_SNAKE 132
\r
406 #define T_ITEMINVULNERABILITY 133
\r
407 #define T_ITEMTOME 134
\r
408 #define T_ITEMINVISIBILITY 135
\r
409 #define T_ITEMBAGOFHOLDING 136
\r
410 #define T_ITEMALLMAP 137
\r
411 #define T_SNAKEPROJECTILE 138
\r
412 #define T_SNAKEPROJECTILEBIG 139
\r
413 #define T_WIZARDSHOT 140
\r
415 // All D'Sparil teleport destinations must be spawned before D'Sparil alone.
\r
416 // D'Sparil can be spawned alone manually, and he is also spawned automatically
\r
417 // when he "dies" on his serpent.
\r
418 #define T_DSPARILTELEPORTDEST 141
\r
419 #define T_DSPARILONSERPENT 142
\r
420 #define T_DSPARILALONE 143
\r
421 #define T_SERPENTFIREBALL 144
\r
422 #define T_DSPARILBLUESHOT 145
\r
423 #define T_DSPARILWIZARDSPAWNER 146
\r
425 #define T_CROSSBOWMAINBLAST 147
\r
426 #define T_CROSSBOWMINIBLAST 148
\r
427 #define T_CROSSBOWPOWERBLAST 149
\r
428 #define T_VOLCANO 150
\r
429 #define T_POWERWANDMINIBLAST 151
\r
430 #define T_POWERWANDBIGGERBLAST 152
\r
431 #define T_DEATHBALL 153
\r
432 #define T_NOGRAVITYMACEBALL 154
\r
433 #define T_BOUNCYMACEBALL 155
\r
434 #define T_HEAVYMACEBALL 156
\r
435 #define T_RIPPER 157
\r
436 #define T_WIMPYSKULLRODAMMO 158
\r
437 #define T_HEFTYSKULLRODAMMO 159
\r
438 #define T_SKULLRODBLAST 160
\r
439 #define T_WIMPYPHOENIXRODAMMO 161
\r
440 #define T_HEFTYPHOENIXRODAMMO 162
\r
441 #define T_PHOENIXSHOT 163
\r
442 #define T_IRONLICHBLUESHOT 164
\r
443 #define T_WHIRLWIND 165
\r
444 #define T_REDTELEGLITTER 166
\r
445 #define T_BLUETELEGLITTER 167
\r
447 // Events when you have input grabbed
\r
449 #define EV_KeyDown 1 // data1: unshifted ASCII, data2: shifted ASCII
\r
450 #define EV_KeyRepeat 2 // data1: unshifted ASCII, data2: shifted ASCII
\r
451 #define EV_KeyUp 3 // data1: unshifted ASCII, data2: shifted ASCII
\r
452 #define EV_Char 4 // data1: translated character for text input
\r
453 #define EV_MouseMove 5 // data1: x, data2: y
\r
454 #define EV_LButtonDown 6
\r
455 #define EV_LButtonUp 7
\r
456 #define EV_LButtonDblClick 8
\r
457 #define EV_MButtonDown 9
\r
458 #define EV_MButtonUp 10
\r
459 #define EV_MButtonDblClick 11
\r
460 #define EV_RButtonDown 12
\r
461 #define EV_RButtonUp 13
\r
462 #define EV_RButtonDblClick 14
\r
463 #define EV_WheelDown 15
\r
464 #define EV_WheelUp 16
\r
466 // Key modifiers (or'd with event type)
\r
468 #define GKM_SHIFT 256
\r
469 #define GKM_CTRL 512
\r
470 #define GKM_ALT 1024
\r
472 // Button modifiers are only valid for EV_MouseMove events
\r
474 #define GKM_LBUTTON 2048
\r
475 #define GKM_MBUTTON 4096
\r
476 #define GKM_RBUTTON 8192
\r
478 // Special codes for some GUI keys, including a few real ASCII codes.
\r
486 #define GK_ALERT 7 // ASCII bell
\r
487 #define GK_BACKSPACE 8 // ASCII
\r
488 #define GK_TAB 9 // ASCII
\r
489 #define GK_LINEFEED 10 // ASCII
\r
491 #define GK_VTAB 11 // ASCII
\r
493 #define GK_FORMFEED 12 // ASCII
\r
494 #define GK_RETURN 13 // ASCII
\r
508 #define GK_ESCAPE 27 // ASCII
\r
509 #define GK_FREE1 28
\r
510 #define GK_FREE2 29
\r
511 #define GK_FREE3 30
\r
512 #define GK_CESCAPE 31 // color escape
\r
514 #define CHANGELEVEL_KEEPFACING 1
\r
515 #define CHANGELEVEL_RESETINVENTORY 2
\r
516 #define CHANGELEVEL_NOMONSTERS 4
\r
517 #define CHANGELEVEL_CHANGESKILL 8
\r
518 #define CHANGELEVEL_NOINTERMISSION 16
\r