Source

ACC++ / libacspp / zdefs.acs

Full commit
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785

//**************************************************************************
//**
//** zdefs.acs
//**
//** Common definitions for use when compiling ACS scripts for ZDoom
//**
//**************************************************************************

#define TRUE                    1
#define FALSE                   0
#define ON                      1
#define OFF                     0
#define YES                     1
#define NO                      0

#define LINE_FRONT              0
#define LINE_BACK               1

#define SIDE_FRONT              0
#define SIDE_BACK               1

#define TEXTURE_TOP             0
#define TEXTURE_MIDDLE          1
#define TEXTURE_BOTTOM          2

// same information as combinable bit flags
#define TEXFLAG_TOP				1
#define TEXFLAG_MIDDLE			2
#define TEXFLAG_BOTTOM			4

#define GAME_SINGLE_PLAYER      0
#define GAME_NET_COOPERATIVE    1
#define GAME_NET_DEATHMATCH     2
#define GAME_TITLE_MAP		3

// Classes are only useful with Hexen
#define CLASS_FIGHTER           0
#define CLASS_CLERIC            1
#define CLASS_MAGE              2

#define SKILL_VERY_EASY         0
#define SKILL_EASY              1
#define SKILL_NORMAL            2
#define SKILL_HARD              3
#define SKILL_VERY_HARD         4

#define BLOCK_NOTHING           0
#define BLOCK_CREATURES         1
#define BLOCK_EVERYTHING        2
#define BLOCK_RAILING			3
#define BLOCK_PLAYERS			4

#define SCROLL                  0
#define CARRY                   1
#define SCROLL_AND_CARRY        2

// Means-of-death for Sector_SetDamage --------------------------------------

#define MOD_UNKNOWN             0
#define MOD_ROCKET              5
#define MOD_R_SPLASH            6
#define MOD_PLASMARIFLE         7
#define MOD_BFG_BOOM            8
#define MOD_BFG_SPLASH          9
#define MOD_CHAINSAW            10
#define MOD_SSHOTGUN            11
#define MOD_WATER               12
#define MOD_SLIME               13
#define MOD_LAVA                14
#define MOD_CRUSH               15
#define MOD_TELEFRAG            16
#define MOD_FALLING             17
#define MOD_SUICIDE             18
#define MOD_BARREL              19
#define MOD_EXIT                20
#define MOD_SPLASH              21
#define MOD_HIT                 22
#define MOD_RAILGUN		23
#define MOD_ICE			24
#define MOD_DISINTEGRATE	25
#define MOD_POISON		26
#define MOD_ELECTRIC		27

// Return values for PlayMovie ----------------------------------------------

#define MOVIE_Played            0
#define MOVIE_Played_NoVideo    1
#define MOVIE_Played_Aborted    2
#define MOVIE_Failed           -1


// Player properties --------------------------------------------------------

#define PROP_FROZEN                     0
#define PROP_NOTARGET                   1
#define PROP_INSTANTWEAPONSWITCH        2
#define PROP_FLY			3
#define PROP_TOTALLYFROZEN		4

// The following properties correspond to powers given by certain items
#define PROP_INVULNERABILITY		5
#define PROP_STRENGTH			6
#define PROP_INVISIBILITY		7
#define PROP_RADIATIONSUIT		8
#define PROP_ALLMAP			9
#define PROP_INFRARED			10
#define PROP_WEAPONLEVEL2		11
#define PROP_FLIGHT			12
#define PROP_SPEED			15

// Player input -------------------------------------------------------------

// These are the original inputs sent by the player.
#define INPUT_OLDBUTTONS		0
#define INPUT_BUTTONS			1
#define INPUT_PITCH				2
#define INPUT_YAW				3
#define INPUT_ROLL				4
#define INPUT_FORWARDMOVE		5
#define INPUT_SIDEMOVE			6
#define INPUT_UPMOVE			7

// These are the inputs, as modified by P_PlayerThink().
// Most of the time, these will match the original inputs, but
// they can be different if a player is frozen or using a
// chainsaw.
#define MODINPUT_OLDBUTTONS		8
#define MODINPUT_BUTTONS		9
#define MODINPUT_PITCH			10
#define MODINPUT_YAW			11
#define MODINPUT_ROLL			12
#define MODINPUT_FORWARDMOVE	13
#define MODINPUT_SIDEMOVE		14
#define MODINPUT_UPMOVE			15

// Player buttons -----------------------------------------------------------

#define BT_ATTACK				1
#define BT_USE					2
#define BT_JUMP					4
#define BT_CROUCH				8
#define BT_TURN180				16
#define BT_ALTATTACK			32
#define BT_RELOAD				64
#define BT_ZOOM					128

#define BT_SPEED				256
#define BT_STRAFE				512

#define BT_MOVERIGHT			1024
#define BT_MOVELEFT				2048
#define BT_BACK					4096
#define BT_FORWARD				8192
#define BT_RIGHT				16384
#define BT_LEFT					32768
#define BT_LOOKUP				65536
#define BT_LOOKDOWN				131072
#define BT_MOVEUP				262144
#define BT_MOVEDOWN				524288
#define BT_SHOWSCORES			1048576

// Do whatever you want with these.
#define BT_USER1				2097152
#define BT_USER2				4194304
#define BT_USER3				8388608
#define BT_USER4				16777216

// Text colors --------------------------------------------------------------

#define CR_UNTRANSLATED         -1
#define CR_BRICK                0
#define CR_TAN                  1
#define CR_GRAY                 2
#define CR_GREY                 2
#define CR_GREEN                3
#define CR_BROWN                4
#define CR_GOLD                 5
#define CR_RED                  6
#define CR_BLUE                 7
#define CR_ORANGE               8
#define CR_WHITE                9
#define CR_YELLOW               10
#define CR_BLACK				12
#define CR_LIGHTBLUE			13
#define CR_CREAM				14
#define CR_OLIVE				15
#define CR_DARKGREEN			16
#define CR_DARKRED				17
#define CR_DARKBROWN			18
#define CR_PURPLE				19
#define CR_DARKGRAY				20
#define CR_DARKGREY				20

// HUD message types --------------------------------------------------------

#define HUDMSG_PLAIN		0
#define HUDMSG_FADEOUT		1
#define HUDMSG_TYPEON		2
#define HUDMSG_FADEINOUT	3

// OR this with one of the above to log the hudmessage to the console.
// i.e. instead of HUDMSG_PLAIN, you can use HUDMSG_PLAIN | HUDMSG_LOG
#define HUDMSG_LOG	0x80000000

// OR this with one of the above if the color you passed is a string
// instead of one of the CR_ constants.
#define HUDMSG_COLORSTRING	0x40000000

// "Scripted" Marine weapon types -------------------------------------------

#define MARINEWEAPON_Dummy		0
#define MARINEWEAPON_Fist		1
#define MARINEWEAPON_BerserkFist	2
#define MARINEWEAPON_Chainsaw		3
#define MARINEWEAPON_Pistol		4
#define MARINEWEAPON_Shotgun		5
#define MARINEWEAPON_SuperShotgun	6
#define MARINEWEAPON_Chaingun		7
#define MARINEWEAPON_RocketLauncher	8
#define MARINEWEAPON_PlasmaRifle	9
#define MARINEWEAPON_Railgun		10
#define MARINEWEAPON_BFG		11

// Actor properties you can get/set -----------------------------------------

#define APROP_Health		0
#define APROP_Speed			1
#define APROP_Damage		2
#define APROP_Alpha			3
#define APROP_RenderStyle	4
#define APROP_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

// Render Styles ------------------------------------------------------------

#define STYLE_None		0	// Do not draw
#define STYLE_Normal		1	// Normal; just copy the image to the screen
#define STYLE_Fuzzy		2	// Draw silhouette using "fuzz" effect
#define STYLE_SoulTrans		3	// Draw translucent with amount in r_transsouls
#define STYLE_OptFuzzy		4	// Draw as fuzzy or translucent, based on user preference
#define STYLE_Translucent	64	// Draw translucent
#define STYLE_Add		65	// Draw additive

// Properties you can use with GetLevelInfo() -------------------------------

#define LEVELINFO_PAR_TIME		0
#define LEVELINFO_CLUSTERNUM		1
#define LEVELINFO_LEVELNUM		2
#define LEVELINFO_TOTAL_SECRETS		3
#define LEVELINFO_FOUND_SECRETS		4
#define LEVELINFO_TOTAL_ITEMS		5
#define LEVELINFO_FOUND_ITEMS		6
#define LEVELINFO_TOTAL_MONSTERS	7
#define LEVELINFO_KILLED_MONSTERS	8
#define LEVELINFO_SUCK_TIME		9

// Properties you can use with GetPlayerInfo() ------------------------------

#define PLAYERINFO_TEAM			0
#define PLAYERINFO_AIMDIST		1
#define PLAYERINFO_COLOR		2
#define PLAYERINFO_GENDER		3
#define PLAYERINFO_NEVERSWITCH	4
#define PLAYERINFO_MOVEBOB		5
#define PLAYERINFO_STILLBOB		6
#define PLAYERINFO_PLAYERCLASS	7


// Flags for ReplaceTextures ------------------------------------------------

#define NOT_BOTTOM				1
#define NOT_MIDDLE				2
#define NOT_TOP					4
#define NOT_FLOOR				8
#define NOT_CEILING				16

// Flags for SectorDamage ---------------------------------------------------

#define DAMAGE_PLAYERS				1
#define DAMAGE_NONPLAYERS			2
#define DAMAGE_IN_AIR				4
#define DAMAGE_SUBCLASSES_PROTECT	8

// Flags for MorphActor -----------------------------------------------------

#define MRF_OLDEFFECTS			0x00000000
#define MRF_ADDSTAMINA			0x00000001
#define MRF_FULLHEALTH			0x00000002
#define MRF_UNDOBYTOMEOFPOWER	0x00000004
#define MRF_UNDOBYCHAOSDEVICE	0x00000008
#define MRF_FAILNOTELEFRAG		0x00000010
#define MRF_FAILNOLAUGH			0x00000020
#define MRF_WHENINVULNERABLE	0x00000040
#define MRF_LOSEACTUALWEAPON	0x00000080
#define MRF_NEWTIDBEHAVIOUR		0x00000100
#define MRF_UNDOBYDEATH			0x00000200
#define MRF_UNDOBYDEATHFORCED	0x00000400
#define MRF_UNDOBYDEATHSAVES	0x00000800

// Shared spawnable things from Hexen. You can spawn these in the other -----
// games if you provide sprites for them, otherwise they'll be invisible. ---

#define T_ROCK1                 41
#define T_ROCK2                 42
#define T_ROCK3                 43
#define T_DIRT1                 44
#define T_DIRT2                 45
#define T_DIRT3                 46
#define T_DIRT4                 47
#define T_DIRT5                 48
#define T_DIRT6                 49
#define T_STAINEDGLASS1         54
#define T_STAINEDGLASS2         55
#define T_STAINEDGLASS3         56
#define T_STAINEDGLASS4         57
#define T_STAINEDGLASS5         58
#define T_STAINEDGLASS6         59
#define T_STAINEDGLASS7         60
#define T_STAINEDGLASS8         61
#define T_STAINEDGLASS9         62
#define T_STAINEDGLASS0         63

// Doom Spawnable things (used for thingcount() and thing spawners) ---------

#define T_NONE                  0
#define T_SHOTGUY               1
#define T_CHAINGUY              2
#define T_BARON                 3
#define T_ZOMBIE                4
#define T_IMP                   5
#define T_ARACHNOTRON           6
#define T_SPIDERMASTERMIND      7
#define T_DEMON                 8
#define T_SPECTRE               9
#define T_IMPFIREBALL           10
#define T_CLIP                  11
#define T_SHELLS                12
#define T_CACODEMON             19
#define T_REVENANT              20
#define T_BRIDGE                21
#define T_ARMORBONUS            22
#define T_STIMPACK              23
#define T_MEDKIT                24
#define T_SOULSPHERE            25
#define T_SHOTGUN               27
#define T_CHAINGUN              28
#define T_ROCKETLAUNCHER        29
#define T_PLASMAGUN             30
#define T_BFG                   31
#define T_CHAINSAW              32
#define T_SUPERSHOTGUN          33
#define T_PLASMABOLT            51
#define T_TRACER                53
#define T_GREENARMOR            68
#define T_BLUEARMOR             69
#define T_CELL                  75
#define T_BLUEKEYCARD           85
#define T_REDKEYCARD            86
#define T_YELLOWKEYCARD         87
#define T_YELLOWSKULLKEY        88
#define T_REDSKULLKEY           89
#define T_BLUESKULLKEY          90
#define T_TEMPLARGEFLAME        98
#define T_STEALTHBARON          100
#define T_STEALTHKNIGHT         101
#define T_STEALTHZOMBIE         102
#define T_STEALTHSHOTGUY        103

#define T_LOSTSOUL              110
#define T_VILE                  111
#define T_MANCUBUS              112
#define T_HELLKNIGHT            113
#define T_CYBERDEMON            114
#define T_PAINELEMENTAL         115
#define T_WOLFSS                116
#define T_STEALTHARACHNOTRON    117
#define T_STEALTHVILE           118
#define T_STEALTHCACODEMON      119
#define T_STEALTHCHAINGUY       120
#define T_STEALTHSERGEANT       121
#define T_STEALTHIMP            122
#define T_STEALTHMANCUBUS       123
#define T_STEALTHREVENANT       124
#define T_BARREL                125
#define T_CACODEMONSHOT         126
#define T_ROCKET                127
#define T_BFGSHOT               128
#define T_ARACHNOTRONPLASMA     129
#define T_BLOOD                 130
#define T_PUFF                  131
#define T_MEGASPHERE            132
#define T_INVULNERABILITY       133
#define T_BERSERK               134
#define T_INVISIBILITY          135
#define T_IRONFEET              136
#define T_COMPUTERMAP           137
#define T_LIGHTAMP              138
#define T_AMMOBOX               139
#define T_ROCKETAMMO            140
#define T_ROCKETBOX             141
#define T_BATTERY               142
#define T_SHELLBOX              143
#define T_BACKPACK              144
#define T_GUTS                  145
#define T_BLOODPOOL             146
#define T_BLOODPOOL1            147
#define T_BLOODPOOL2            148
#define T_FLAMINGBARREL         149
#define T_BRAINS                150
#define T_SCRIPTEDMARINE	151
#define T_HEALTHBONUS           152
#define T_MANCUBUSSHOT		153
#define T_BARONBALL		154

// Heretic Spawnable things (used for thingcount() and thing spawners) ------

#define T_CLINK                 1
#define T_MUMMYLEADER           2
#define T_BEAST                 3
#define T_MUMMY                 4
//#define T_IMP                 5   // Defined above
#define T_KNIGHT                6
#define T_IMPLEADER             7
#define T_MUMMYGHOST            8
#define T_MUMMYLEADERGHOST      9
//#define T_IMPFIREBALL         10
#define T_WIMPYWANDAMMO         11
#define T_HEFTYWANDAMMO         12
#define T_ITEMEGG               14
#define T_ITEMFLIGHT            15
#define T_ITEMTELEPORT          18
#define T_WIZARD                19
#define T_IRONLICH              20
#define T_ITEMHEALTHPOTION      23
#define T_ITEMHEALTHFLASH       24	// incorrect name but keep it for compatibility
#define T_ITEMHEALTHFLASK       24
#define T_ITEMHEALTHFULL        25
#define T_CROSSBOW              27
#define T_BLASTER               28
#define T_PHOENIXROD            29
#define T_SKULLROD              30
#define T_MACE                  31
#define T_GAUNTLETS             32
#define T_WIMPYCROSSBOWAMMO     33
#define T_HEFTYCROSSBOWAMMO     34
#define T_WIMPYMACEAMMO         35
#define T_HEFTYMACEAMMO         36
#define T_WIMPYBLASTERAMMO      37
#define T_HEFTYBLASTERAMMO      38
#define T_MORPHBLAST            40
#define T_SHIELD1               68
#define T_SHIELD2               69
#define T_ITEMTIMEBOMB          72
#define T_ITEMTORCH             73
#define T_BLUEKEY               85
#define T_GREENKEY              86
#define T_YELLOWKEY             87

#define T_SOUND_WIND            110
#define T_SOUND_WATERFALL       111

#define T_BEASTBALL             120
#define T_FEATHER               121
#define T_CHICKEN               122
#define T_VOLCANOBALL           123
#define T_TINYVOLCANOBALL       124
#define T_POD                   125
#define T_PODGENERATOR          126
#define T_KNIGHTAXE             127
#define T_KNIGHTBLOODAXE        128
#define T_KNIGHTGHOST           129
#define T_MUMMYHEAD             131
#define T_SNAKE                 132
#define T_ITEMINVULNERABILITY   133
#define T_ITEMTOME              134
#define T_ITEMINVISIBILITY      135
#define T_ITEMBAGOFHOLDING      136
#define T_ITEMALLMAP            137
#define T_SNAKEPROJECTILE       138
#define T_SNAKEPROJECTILEBIG    139
#define T_WIZARDSHOT            140

// All D'Sparil teleport destinations must be spawned before D'Sparil alone.
// D'Sparil can be spawned alone manually, and he is also spawned automatically
// when he "dies" on his serpent.
#define T_DSPARILTELEPORTDEST   141
#define T_DSPARILONSERPENT      142
#define T_DSPARILALONE          143
#define T_SERPENTFIREBALL       144
#define T_DSPARILBLUESHOT       145
#define T_DSPARILWIZARDSPAWNER  146

#define T_CROSSBOWMAINBLAST     147
#define T_CROSSBOWMINIBLAST     148
#define T_CROSSBOWPOWERBLAST    149
#define T_VOLCANO               150
#define T_POWERWANDMINIBLAST    151
#define T_POWERWANDBIGGERBLAST  152
#define T_DEATHBALL             153
#define T_NOGRAVITYMACEBALL     154
#define T_BOUNCYMACEBALL        155
#define T_HEAVYMACEBALL         156
#define T_RIPPER                157
#define T_WIMPYSKULLRODAMMO     158
#define T_HEFTYSKULLRODAMMO     159
#define T_SKULLRODBLAST         160
#define T_WIMPYPHOENIXRODAMMO   161
#define T_HEFTYPHOENIXRODAMMO   162
#define T_PHOENIXSHOT           163
#define T_IRONLICHBLUESHOT      164
#define T_WHIRLWIND             165
#define T_REDTELEGLITTER        166
#define T_BLUETELEGLITTER       167

// Hexen Spawnable things (used for thingcount() and thing spawners) ------

#define T_CENTAUR				1
#define T_CENTAURLEADER			2
#define T_DEMON1				3
#define T_ETTIN					4
#define T_FIREGARGOYLE			5
#define T_WATERLURKER			6
#define T_WATERLURKERLEADER		7
#define T_WRAITH				8
#define T_WRAITHBURIED			9
#define T_FIREBALL1				10
#define T_MANA1					11
#define T_MANA2					12
#define T_ITEMBOOTS				13
#define T_ITEMPORK				14
#define T_ITEMSUMMON			16
#define T_ITEMTPORTOTHER		17
#define T_BISHOP				19
#define T_ICEGOLEM				20
#define T_DRAGONSKINBRACERS		22
#define T_ITEMBOOSTMANA			26
#define T_FIGHTERAXE			27
#define T_FIGHTERHAMMER			28
#define T_FIGHTERSWORD1			29
#define T_FIGHTERSWORD2			30
#define T_FIGHTERSWORD3			31
#define T_CLERICSTAFF			32
#define T_CLERICHOLY1			33
#define T_CLERICHOLY2			34
#define T_CLERICHOLY3			35
#define T_MAGESHARDS			36
#define T_MAGESTAFF1			37
#define T_MAGESTAFF2			38
#define T_MAGESTAFF3			39
#define T_ARROW					50
#define T_DART					51
#define T_POISONDART			52
#define T_RIPPERBALL			53
#define T_BLADE					64
#define T_ICESHARD				65
#define T_FLAME_SMALL			66
#define T_FLAME_LARGE			67
#define T_MESHARMOR				68
#define T_FALCONSHIELD			69
#define T_PLATINUMHELM			70
#define T_AMULETOFWARDING		71
#define T_ITEMFLECHETTE			72
#define T_ITEMREPULSION			74
#define T_MANA3					75
#define T_PUZZSKULL				76
#define T_PUZZGEMBIG			77
#define T_PUZZGEMRED			78
#define T_PUZZGEMGREEN1			79
#define T_PUZZGEMGREEN2			80
#define T_PUZZGEMBLUE1			81
#define T_PUZZGEMBLUE2			82
#define T_PUZZBOOK1				83
#define T_PUZZBOOK2				84
#define T_METALKEY				85
#define T_SMALLMETALKEY			86
#define T_AXEKEY				87
#define T_FIREKEY				88
#define T_EMERALDKEY			89
#define T_MACEKEY				90
#define T_SILVERKEY				91
#define T_RUSTYKEY				92
#define T_HORNKEY				93
#define T_SERPENTKEY			94
#define T_WATERDRIP				95
#define T_TEMPSMALLFLAME		96
#define T_PERMSMALLFLAME		97
#define T_PERMLARGEFLAME		99
#define T_DEMON_MASH			100
#define T_DEMON2_MASH			101
#define T_ETTIN_MASH			102
#define T_CENTAUR_MASH			103
#define T_THRUSTSPIKEUP			104
#define T_THRUSTSPIKEDOWN		105
#define T_FLESH_DRIP1			106
#define T_FLESH_DRIP2			107
#define T_SPARK_DRIP			108


// Flags returned by ClassifyActor

#define ACTOR_NONE				0
#define ACTOR_WORLD				1
#define ACTOR_PLAYER			2
#define ACTOR_BOT				4
#define ACTOR_VOODOODOLL		8
#define ACTOR_MONSTER			16
#define ACTOR_ALIVE				32
#define ACTOR_DEAD				64
#define ACTOR_MISSILE			128
#define ACTOR_GENERIC			256


// ==========================================================================
// Skulltag Definitions
// ==========================================================================

// Skulltag Teams -----------------------------------------------------------
#define TEAM_BLUE				0
#define TEAM_RED				1
#define NO_TEAM					2

// 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_MASARMORBONUS			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


// Events when you have input grabbed

#define EV_KeyDown				1	// data1: unshifted ASCII, data2: shifted ASCII
#define EV_KeyRepeat			2	// data1: unshifted ASCII, data2: shifted ASCII
#define EV_KeyUp				3	// data1: unshifted ASCII, data2: shifted ASCII
#define EV_Char					4	// data1: translated character for text input
#define EV_MouseMove			5	// data1: x, data2: y
#define EV_LButtonDown			6
#define EV_LButtonUp			7
#define EV_LButtonDblClick		8
#define EV_MButtonDown			9
#define EV_MButtonUp			10
#define EV_MButtonDblClick		11
#define EV_RButtonDown			12
#define EV_RButtonUp			13
#define EV_RButtonDblClick		14
#define EV_WheelDown			15
#define EV_WheelUp				16

// Key modifiers (or'd with event type)

#define GKM_SHIFT				256
#define GKM_CTRL				512
#define GKM_ALT					1024

// Button modifiers are only valid for EV_MouseMove events

#define GKM_LBUTTON				2048
#define GKM_MBUTTON				4096
#define GKM_RBUTTON				8192

// Special codes for some GUI keys, including a few real ASCII codes.

#define GK_PGDN			1
#define GK_PGUP			2
#define GK_HOME			3
#define GK_END			4
#define GK_LEFT			5
#define GK_RIGHT		6
#define GK_ALERT		7		// ASCII bell
#define GK_BACKSPACE	8		// ASCII
#define GK_TAB			9		// ASCII
#define GK_LINEFEED		10		// ASCII
#define GK_DOWN			10
#define GK_VTAB			11		// ASCII
#define GK_UP			11
#define GK_FORMFEED		12		// ASCII
#define GK_RETURN		13		// ASCII
#define GK_F1			14
#define GK_F2			15
#define GK_F3			16
#define GK_F4			17
#define GK_F5			18
#define GK_F6			19
#define GK_F7			20
#define GK_F8			21
#define GK_F9			22
#define GK_F10			23
#define GK_F11			24
#define GK_F12			25
#define GK_DEL			26
#define GK_ESCAPE		27		// ASCII
#define GK_FREE1		28
#define GK_FREE2		29
#define GK_FREE3		30
#define GK_CESCAPE		31		// color escape

#define CHANGELEVEL_KEEPFACING 1
#define CHANGELEVEL_RESETINVENTORY 2
#define CHANGELEVEL_NOMONSTERS 4
#define CHANGELEVEL_CHANGESKILL 8
#define CHANGELEVEL_NOINTERMISSION 16

#define NO_CHANGE -32767.0

#define SECF_SILENT 1
#define SECF_NOFALLINGDAMAGE 2

#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