/
dehacked.txt
2615 lines (2332 loc) · 125 KB
/
dehacked.txt
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
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
=====================================================
Dehacked support in PrBoom libretro, extended support
=====================================================
This document is based on "Dehacked support in BOOM".
Extensions that were ported from other engines and included
as new addition for PrBoom libretro port are documented here.
-------------------------------THINGS-----------------------------
#####
USAGE
#####
The Things block follows the syntax.
Thing <nn> (<optional description>)
<property> = <value>
With the following possible properties:
Property name Description
------------------------------------------------------------------
ID #, Id used in maps (Doomednum)
Initial frame, Frame number in which the thing will spawn
Hit points, Default initial health
First moving frame, Frame number to switch when starting to walk
Alert sound, Sound number played when awakening
Reaction time, Ticks to wait before new attack and other checks
Attack sound, Sound number played when attacking
Injury frame, Frame number used when hurt
Pain chance, Chance to feel pain from 0 (never) to 255 (always)
Pain sound, Sound number played when in pain
Close attack frame, Frame number for melee attack (if zero, no melee)
Far attack frame, Frame number for ranged attack (if zero, no range)
Death frame, Frame number when dying (if zero, it dissappears)
Exploding frame, Frame number when gibbed (if zero, normal death)
Death sound, Sound number played by Scream nodepointer
Dropped item, Thing id (dehacked number) to drop on death
Speed, Movement on each Chase frame or, in missiles, tic
Width, Fixed-point value for the radius of the thing
Height, Fixed-point value for the height of the thing
Mass, Number used as mass factor calculating thrust
Missile damage, Damage multipler, used by missiles & some codepointers
Action sound, Sound number played sometimes (3/256) on Chase
Bits, Number that holds several flags, see below for info
Bits2, Number that holds several flags, see below for info
Respawn frame, Frame number when resurrecting (if zero, it can't)
Melee threshold, Distance to switch from missile to melee attack
Max target range, Maximum distance range to start shooting
Min missile chance, Minimum chance for firing a missile
A BEX extension allows to use mnemonics to set the Bit flags.
This is actually something you can use to hack your Dehacked
output file to be more understandable and modifiable. Note that
once you do this you won't be able to bring it back into
Dehacked.
You will find an area in a Dehacked output file for Things,
starting with an entry such as:
Thing 31 (Barrel)
Down a few lines, if you've altered the bits at all, you'll see
a line like:
Bits = 205636102
That horrible number is why we are providing some mnemonics
instead. All you need to do is to put the appropriate ones
of the following mnemonics on the line where the big number is,
and it'll be read in and converted to the number for you. An
example line:
Bits = SOLID+SHOOTABLE+NOBLOOD
which converts to Bits = 524294 but you didn't have to figure
that part out. Just use plus signs between the mnemonics.
Here's the list, along with a bit of explanation of each,
and the phrase that's used in Dehacked to describe them. If
there are any disagreements between the 2 definitions, ours
wins. There is a complete list of all the DOOM2 Things in
Appendix B at the end of this file, with which bits they have
by default in BOOM (including for example which Things are
translucent)
Mnemonic Bit mask Meaning / Dehacked phrase
------------------------------------------------------------------
SPECIAL, 0x00000001 - call P_Specialthing when touched
Can be picked up
SOLID, 0x00000002 - block movement
Obstacle
SHOOTABLE, 0x00000004 - can be hit
Shootable
NOSECTOR, 0x00000008 - invisible but touchable
Total invisibility
NOBLOCKMAP, 0x00000010 - inert but displayable
Can't be hit
AMBUSH, 0x00000020 - deaf monster
Semi-deaf
JUSTHIT, 0x00000040 - will try to attack right back
In pain
JUSTATTACKED, 0x00000080 - take at least 1 step before attacking
Steps before attack
SPAWNCEILING, 0x00000100 - initially hang from ceiling
Hangs from ceiling
NOGRAVITY, 0x00000200 - don't apply gravity during play
No Gravity
DROPOFF, 0x00000400 - can jump from high places
Travels over cliffs
PICKUP, 0x00000800 - will pick up items
Picks up items
NOCLIP, 0x00001000 - goes through walls
No clipping
SLIDE, 0x00002000 - keep info about sliding along walls
Slides along walls
FLOAT, 0x00004000 - allow movement to any height
Floating
TELEPORT, 0x00008000 - don't cross lines or look at teleport heights
Semi-no clipping
MISSILE, 0x00010000 - don't hit same species, explode on block
Projectiles
DROPPED, 0x00020000 - dropped, not spawned (like ammo clip)
Disappearing weapon
SHADOW, 0x00040000 - use fuzzy draw like spectres
Partial invisibility
NOBLOOD, 0x00080000 - puffs instead of blood when shot
Puffs (vs. bleeds)
CORPSE, 0x00100000 - so it will slide down steps when dead
Sliding helpless
INFLOAT, 0x00200000 - float but not to target height
No auto-leveling
COUNTKILL, 0x00400000 - count toward the kills total
Affects Kill %
COUNTITEM, 0x00800000 - count toward the items total
Affects Item %
SKULLFLY, 0x01000000 - special handling for flying skulls
Running
NOTDMATCH, 0x02000000 - do not spawn in deathmatch
Not in deathmatch
TRANSLATION1, 0x04000000 - use translation table for color (players)
Color 1 (gray/red)
TRANSLATION2, 0x08000000 - second bit for selecting translation table
Color 2 (brown/red)
TOUCHY, 0x10000000 - dies on contact with solid objects (MBF)
BOUNCES, 0x20000000 - bounces off floors, ceilings and maybe walls (MBF)
FRIEND, 0x40000000 - a friend of the player(s) (MBF)
TRANSLUCENT, 0x80000000 - apply translucency to sprite (BOOM)
TRANSLATION, 0x04000000 - for compatibility, same as TRANSLATION1
UNUSED1, 0x08000000 - for compatibility, same as TRANSLATION2
UNUSED2, 0x10000000 - for compatibility, same as TOUCHY
UNUSED3, 0x20000000 - for compatibility, same as BOUNCES
UNUSED4, 0x40000000 - for compatibility, same as FRIEND
The previous table pertains to the first (lower) 32 bits, as used in
vanilla Doom with some popular extensions.
In addition to the flags above, the field was expanded so that it's
possible to have additional flags to have finer control of behavior
that was previously hardcoded to some specific enemies, such as the
way the cyberdemon is immune to splash damage from explosions.
Because these flags are not common between ports, it's recomended
to use in this case always the mnemonics to ensure that they are
properly ignored in ports that don't support it.
If a monster has already had any of these flags set, you won't be
able to unset it by using the "Bits" field, you'll need to use the
"Bits2" field, this is so it's possible to keep compatibility.
For example:
Bits2 = ISMONSTER+MISSILEMORE+NOTARGET
If a number was to be given instead (which is not recomended), the
bits will be shifted so only the extended flags are affected.
Mnemonic Bit(2) mask Meaning
----------------------------------------------------------------------------
NOTARGET, 0x00000001 - won't be targetted even on accidental infight
MISSILEMORE, 0x00000002 - shoots missiles more often from far away
FULLVOLSIGHT, 0x00000004 - plays its alert sound at full volume
FULLVOLDEATH, 0x00000008 - plays its death sound at full volume
NORADIUSDMG, 0x00000010 - radius (explosive) damage doesnt harm it
QUICKTORETALIATE, 0x00000020 - immediately switch target if attacked
ISMONSTER, 0x00000040 - for all monsters, even if don't count in kill%
DONTFALL, 0x00000080 - don't fall down after killed (like Lost Soul)
----------------------------CODE POINTERS-------------------------
#####
USAGE
#####
Insert this block into your BEX file:
[CODEPTR]
FRAME nn = mnemonic
...
The Frame number is the same as you would use in Dehacked, and the
mnemonic is one of the ones listed below. These mnemonics, though
not perfectly clear, are the actual names of the functions in DOOM
that are called, so it makes the most sense to use them.
When using Dehacked frame code pointer changes, BOOM will write out
a line for each one used showing what you'd put into a BEX [CODEPTR]
block, in the DEHOUT.TXT file. For example:
Original Dehacked file lines:
Pointer 93 (Frame 196)
Codep Frame = 176
Output from BOOM in the DEHOUT.TXT file when processing them:
Line='Pointer 93 (Frame 196)'
Processing function [2] for Pointer
Processing Pointer at index 196: Frame
- applied 1c53c from codeptr[176] to states[196]
BEX [CODEPTR] -> FRAME 196 = Chase
You could then use this in the [CODEPTR] block of a BEX file
instead of the Dehacked lines, making it much more clear
that in frame 196 you expect the monster to Chase the player:
FRAME 196 = Chase
In addition, you can now put any code pointer into any frame, whereas
Dehacked is limited to replacing only the existing ones.
Valid mnemonics you can use:
NULL << new, zeroes out an existing codepointer
Light0
WeaponReady
Lower
Raise
Punch
ReFire
FirePistol
Light1
FireShotgun
Light2
FireShotgun2
CheckReload
OpenShotgun2
LoadShotgun2
CloseShotgun2
FireCGun
GunFlash
FireMissile
Saw
FirePlasma
BFGsound
FireBFG
BFGSpray
Explode
Pain
PlayerScream
Fall
XScream
Look
Chase
FaceTarget
PosAttack
Scream
SPosAttack
VileChase
VileStart
VileTarget
VileAttack
StartFire
Fire
FireCrackle
Tracer
SkelWhoosh
SkelFist
SkelMissile
FatRaise
FatAttack1
FatAttack2
FatAttack3
BossDeath
CPosAttack
CPosRefire
TroopAttack
SargAttack
HeadAttack
BruisAttack
SkullAttack
Metal
SpidRefire
BabyMetal
BspiAttack
Hoof
CyberAttack
PainAttack
PainDie
KeenDie
BrainPain
BrainScream
BrainDie
BrainAwake
BrainSpit
SpawnSound
SpawnFly
BrainExplode
Detonate << MBF
Mushroom
Die
Spawn
Turn
Face
Scratch
PlaySound
RandomJump
LineEffect
FireOldBFG
BetaSkullAttack
Stop
See the end of this file for the Code Pointer Appendix
which contains the actual default settings for code pointers
and frames. Remember, changing code pointers with BEX files is
no less prone to you trying to do something impossible that will
crash than it ever was in Dehacked--it's just simpler and more
flexible, and clearer to read, in specification.
----------------------------PAR TIMES-----------------------------
#####
USAGE
#####
Insert the following block in your BEX file, using one or more
of the par lines depending on if you want to alter them for
DOOM 1 or DOOM 2.
[PARS]
par e m p << for DOOM 1: episode, map, parseconds
par m p << for DOOM 2: mapnumber, parseconds
You may have as many par times listed as you wish in the pars block.
----------------------------INCLUDES------------------------------
#####
USAGE
#####
To include a DEH or BEX file in another one, put one or more of the
following lines in your BEX file:
INCLUDE filename
INCLUDE NOTEXT filename
Filename must be specified in full, including a path if it's not
going to be in the current directory, and including its .deh or
.bex extension. By far better is to ship a file as a completely
self-contained file, but you can use this during testing and development.
The NOTEXT directive will cause BOOM to skip any deh-style text blocks
in the included file, with the assumption that you're doing something
else in your main BEX file instead. Note that this will include any text
changes, including sprite names, etc.
You may not nest include files (one include file can't include another).
-----------------------------STRINGS------------------------------
##########
BACKGROUND
##########
The basic Dehacked file is understood and properly evaluated to change
such things as sounds, frame rewiring, Thing attributes, etc. No change
is required to the original .deh file for those things. However, text
is handled differently in BOOM for several reasons:
1. Dehacked by the nature of the program was simply doing a search and
replace action on the strings as found in the executable. This is
clumsy and dangerous, though as good as can be done when dealing with
a compiled executable program. We now have the ability to change the
actual string values during play, a safer and better solution.
2. Because Dehacked used the original string to find the place to
plug in the replacement, there was no way to write a generic hack that
would replace strings in all versions regardless of language. In BOOM,
the strings are identified by their names, which are the same in all
cases.
3. Because Dehacked was replacing strings in a physical location in
the program file, it was limited to approximately the same size string
as the original. Though this is generally practical, it is limiting in
flexibility. BOOM allows any length string to replace any of the ones
in the game (this also applies to cheats).
4. The purpose of replacing a string is to show the player some text
at a particular point in the game. Finding the original text that was
there and replacing it with other text worked, but logically what the
author should have been able to do was assign strings depending on the
desired purpose, and not have to recognize the original text to do so.
In BOOM, all strings are identified by a mnemonic name (actually the
name of the internal variable), making it easier to assign a string to
its desired purpose. In later versions we may also make other aliases
for some of those.
Detailed information is available further down in this file, explaining
the mnemonic codes that are used for all the replaceable strings. Note
that some of the strings are always displayed in the small (uppercase
only) font, so capitalization is not important for those.
The dehacked method of supplying an old texture followed by a new one,
with the lengths of the before and after strings in the dehacked file,
will be supported so long as the old string can be found as the default
value of one of the supported strings (see below). This should take
care of 97% of actual hacks, since intermission texts, informational
messages and level names for the automap are by far the most
prevalent and important changes. We urge the patch authors to also
provide new BEX format files, for clarity, supportability and
flexibility.
#####
USAGE
#####
To use extended string support in BOOM, start the section with a
[STRINGS] section marker, followed by lines that start with the key
mnemonic, an equal sign, and the value to assign to that string. You
may split the value to be assigned onto multiple lines by ending
each line that is to be continued with a backslash. Don't put
quotes around the string if you don't want them to show up in the
result. A couple of examples:
# Start comments with a #
# Change the level name that shows up in the automap for MAP12:
[STRINGS]
HUSTR_12 = The Twelfth Night
# and now the new red key message for switches
PD_REDO = You need the scarlet pimpernel to \
turn on this machine.
# Note that the blank before the backslash is included in the string
# but that the indentation before the word "turn" is not, allowing
# the change file to be easy to read.
Other example files are included in the BEX_SAMP.ZIP file. All use the
.bex extension to avoid conflict with existing .deh files of the same
name.
########################################
MNEMONIC KEYS AND ORIGINAL VALUES TABLES
########################################
Note:
If the original initial value is longer than about 40 characters,
the string will have been truncated and will have an ellipsis (...)
after the closing double-quote. There should be enough in the part
that is shown to recognize it.
If a string has C language printf() characters in it, such as %s or %d,
you should be sure that your replacement string either contains the
same ones in the same order, or that you leave them out of your string.
If that confuses you, you need to learn C or leave 'em alone <g>.
Some trailing linefeeds have been removed for clarity, though \n in
the middle of a string indicates an internal linefeed and your
replacement can do likewise.
===========================================
Part 1 - GENERAL INITIALIZATION AND PROMPTS
===========================================
MNEMONIC Purpose
Initial original value (just the first part if long)
------------------ -----------------------------------------------------
D_DEVSTR What shows during init if -devparm is used
"Development mode ON."
D_CDROM Init: if switch -cdrom is used
"CD-ROM Version: default.cfg from c:\\doomdata"
QUITMSG Default display when you pick Quit
"are you sure you want to\nquit this great game?"
LOADNET Warning when you try to load during a network game
"you can't do load while in a net game!"
QLOADNET Warning when you try quickload during a network game
"you can't quickload during a netgame!"
QSAVESPOT Warning when you quickload without a quicksaved game
"you haven't picked a quicksave slot yet!"
SAVEDEAD Warning when not playing or dead and you try to save
"you can't save if you aren't playing!"
QSPROMPT Prompt when quicksaving your game
"quicksave over your game named\n\n'%s'?"
QLPROMPT Prompt when quickloading a game
"do you want to quickload the game named\n\n'%s'?"
NEWGAME Warning if you try to start a game during network play
"you can't start a new game\nwhile in a network"...
NIGHTMARE Nightmare mode warning
"are you sure? this skill level\nisn't even rem"...
SWSTRING Warning when you pick any episode but 1 in Shareware
"this is the shareware version of doom.\n\nyou '...
MSGOFF Message when toggling messages off (F8)
"Messages OFF"
MSGON Message when toggling messages back on (F8)
"Messages ON"
NETEND Message when you try to Quit during a network game
"you can't end a netgame!"
ENDGAME Warning when you try to end the game
"are you sure you want to end the game?"
DETAILHI Message switching to high detail (obsolete in BOOM)
"High detail"
DETAILLO Message switching to high detail (obsolete in BOOM)
"Low detail"
GAMMALVL0 Message when gamma correction is set off
"Gamma correction OFF"
GAMMALVL1 Message when gamma correction is set to 1
"Gamma correction level 1"
GAMMALVL2 Message when gamma correction is set to 2
"Gamma correction level 2"
GAMMALVL3 Message when gamma correction is set to 3
"Gamma correction level 3"
GAMMALVL4 Message when gamma correction is set to 4
"Gamma correction level 4"
EMPTYSTRING Value that shows up in an unused savegame slot
"empty slot"
GGSAVED Message after a savegame has been written to disk
"game saved."
SAVEGAMENAME Saved game name, number is appended during save
"BOOMSAV" << new 5/3/98
=============================================
Part 2 - MESSAGES WHEN THE PLAYER GETS THINGS
=============================================
GOTARMOR Picking up the Green armor (100%)
"Picked up the armor."
GOTMEGA Picking up the Blue armor (200%)
"Picked up the MegaArmor!"
GOTHTHBONUS Picking up a health bottle (1%)
"Picked up a health bonus."
GOTARMBONUS Picking up an armor helmet (1%)
"Picked up an armor bonus."
GOTSTIM Picking up a stimpack (10%)
"Picked up a stimpack."
GOTMEDINEED Picking up a medikit (25%) when very low on health
"Picked up a medikit that you REALLY need!"
GOTMEDIKIT Picking up a medikit (25%) under normal conditions
"Picked up a medikit."
GOTSUPER Picking up the blue health orb (200%)
"Supercharge!"
GOTBLUECARD Picking up the blue keycard
"Picked up a blue keycard."
GOTYELWCARD Picking up the yellow keycard
"Picked up a yellow keycard."
GOTREDCARD Picking up the red keycard
"Picked up a red keycard."
GOTBLUESKUL Picking up the blue skull key
"Picked up a blue skull key."
GOTYELWSKUL Picking up the yellow skull key
"Picked up a yellow skull key."
GOTREDSKULL Picking up the red skull key
"Picked up a red skull key."
GOTINVUL Picking up the invulnerability sphere
"Invulnerability!"
GOTBERSERK Picking up the berserk box
"Berserk!"
GOTINVIS Picking up the invisibility sphere
"Partial Invisibility"
GOTSUIT Picking up the rad suit
"Radiation Shielding Suit"
GOTMAP Picking up the computer map
"Computer Area Map"
GOTVISOR Picking up the light-amp goggles
"Light Amplification Visor"
GOTMSPHERE Picking up the mega orb (200%/200%)
"MegaSphere!"
GOTCLIP Picking up an ammo clip
"Picked up a clip."
GOTCLIPBOX Picking up a box of ammo
"Picked up a box of bullets."
GOTROCKET Picking up a single rocket
"Picked up a rocket."
GOTROCKBOX Picking up a box of rockets
"Picked up a box of rockets."
GOTCELL Picking up an energy cell (20 units)
"Picked up an energy cell."
GOTCELLBOX Picking up an energy pack (100 units)
"Picked up an energy cell pack."
GOTSHELLS Picking up a set of 4 shells
"Picked up 4 shotgun shells."
GOTSHELLBOX Picking up a box of 20 shells
"Picked up a box of shotgun shells."
GOTBACKPACK Picking up a backpack
"Picked up a backpack full of ammo!"
GOTBFG9000 Picking up the BFG (weapon 7)
"You got the BFG9000! Oh, yes."
GOTCHAINGUN Picking up the chaingun (weapon 4)
"You got the chaingun!"
GOTCHAINSAW Picking up the chainsaw (weapon 8)
"A chainsaw! Find some meat!"
GOTLAUNCHER Picking up the rocket launcher (weapon 5)
"You got the rocket launcher!"
GOTPLASMA Picking up the plasma gun (weapon 6)
"You got the plasma gun!"
GOTSHOTGUN Picking up the shotgun (weapon 3)
"You got the shotgun!"
GOTSHOTGUN2 Picking up the double-barreled shotgun (weapon 9)
"You got the super shotgun!"
======================================
Part 3 - MESSAGES WHEN KEYS ARE NEEDED (*)= BOOM extensions
======================================
PD_BLUEO When you don't have the blue key for a switch
"You need a blue key to activate this object"
PD_REDO When you don't have the red key for a switch
"You need a red key to activate this object"
PD_YELLOWO When you don't have the yellow key for a switch
"You need a yellow key to activate this object"
PD_BLUEK Blue key needed to open a door
"You need a blue key to open this door"
PD_REDK Red key needed to open a door
"You need a red key to open this door"
PD_YELLOWK Yellow key needed to open a door
"You need a yellow key to open this door"
PD_BLUEC Blue card key needed, not skull (*)
"You need a blue card to open this door"
PD_REDC Red card key needed, not skull (*)
"You need a red card to open this door"
PD_YELLOWC Yellow card key needed, not skull (*)
"You need a yellow card to open this door"
PD_BLUES Blue skull key needed, not card (*)
"You need a blue skull to open this door"
PD_REDS Red skull key needed, not card (*)
"You need a red skull to open this door"
PD_YELLOWS Yellow skull key needed, not card (*)
"You need a yellow skull to open this door"
PD_ANY You need a key but any of them will do (*)
"Any key will open this door"
PD_ALL3 You need red, blue and yellow keys (*)
"You need all three keys to open this door"
PD_ALL6 You need both skulls and cards in all 3 colors (*)
"You need all six keys to open this door"
==============================
Part 4 - MULTIPLAYER MESSAGING
==============================
HUSTR_MSGU If you try to send a blank message?
"[Message unsent]"
HUSTR_MESSAGESENT After you send a message? Haven't seen it
"[Message Sent]"
* Chat macros 1-10
* Original values in quotes
HUSTR_CHATMACRO1 "I'm ready to kick butt!"
HUSTR_CHATMACRO2 "I'm OK."
HUSTR_CHATMACRO3 "I'm not looking too good!"
HUSTR_CHATMACRO4 "Help!"
HUSTR_CHATMACRO5 "You suck!"
HUSTR_CHATMACRO6 "Next time, scumbag..."
HUSTR_CHATMACRO7 "Come here!"
HUSTR_CHATMACRO8 "I'll take care of it."
HUSTR_CHATMACRO9 "Yes"
HUSTR_CHATMACRO0 "No"
* What shows up when you message yourself, depending
* on how many times you've done it during the game
HUSTR_TALKTOSELF1 "You mumble to yourself"
HUSTR_TALKTOSELF2 "Who's there?"
HUSTR_TALKTOSELF3 "You scare yourself"
HUSTR_TALKTOSELF4 "You start to rave"
HUSTR_TALKTOSELF5 "You've lost it..."
* Prefixes for the multiplayer messages when displayed
HUSTR_PLRGREEN "Green: "
HUSTR_PLRINDIGO "Indigo: "
HUSTR_PLRBROWN "Brown: "
HUSTR_PLRRED "Red: "
===================================
Part 5 - LEVEL NAMES IN THE AUTOMAP
===================================
* For DOOM - These names are made up of HUSTR_ and
* ExMx for the episode and map numbers. Original
* names are shown in quotes. Episode 4 entries are
* for Ultimate DOOM only.
* Blank lines separate sky change groupings
HUSTR_E1M1 "E1M1: Hangar"
HUSTR_E1M2 "E1M2: Nuclear Plant"
HUSTR_E1M3 "E1M3: Toxin Refinery"
HUSTR_E1M4 "E1M4: Command Control"
HUSTR_E1M5 "E1M5: Phobos Lab"
HUSTR_E1M6 "E1M6: Central Processing"
HUSTR_E1M7 "E1M7: Computer Station"
HUSTR_E1M8 "E1M8: Phobos Anomaly"
HUSTR_E1M9 "E1M9: Military Base"
HUSTR_E2M1 "E2M1: Deimos Anomaly"
HUSTR_E2M2 "E2M2: Containment Area"
HUSTR_E2M3 "E2M3: Refinery"
HUSTR_E2M4 "E2M4: Deimos Lab"
HUSTR_E2M5 "E2M5: Command Center"
HUSTR_E2M6 "E2M6: Halls of the Damned"
HUSTR_E2M7 "E2M7: Spawning Vats"
HUSTR_E2M8 "E2M8: Tower of Babel"
HUSTR_E2M9 "E2M9: Fortress of Mystery"
HUSTR_E3M1 "E3M1: Hell Keep"
HUSTR_E3M2 "E3M2: Slough of Despair"
HUSTR_E3M3 "E3M3: Pandemonium"
HUSTR_E3M4 "E3M4: House of Pain"
HUSTR_E3M5 "E3M5: Unholy Cathedral"
HUSTR_E3M6 "E3M6: Mt. Erebus"
HUSTR_E3M7 "E3M7: Limbo"
HUSTR_E3M8 "E3M8: Dis"
HUSTR_E3M9 "E3M9: Warrens"
HUSTR_E4M1 "E4M1: Hell Beneath"
HUSTR_E4M2 "E4M2: Perfect Hatred"
HUSTR_E4M3 "E4M3: Sever The Wicked"
HUSTR_E4M4 "E4M4: Unruly Evil"
HUSTR_E4M5 "E4M5: They Will Repent"
HUSTR_E4M6 "E4M6: Against Thee Wickedly"
HUSTR_E4M7 "E4M7: And Hell Followed"
HUSTR_E4M8 "E4M8: Unto The Cruel"
HUSTR_E4M9 "E4M9: Fear"
HUSTR_E5M1 "E5M1: Baphomet's Demesne";
HUSTR_E5M2 "E5M2: Sheol";
HUSTR_E5M3 "E5M3: Cages of the Damned";
HUSTR_E5M4 "E5M4: Paths of Wretchedness";
HUSTR_E5M5 "E5M5: Abaddon's Void";
HUSTR_E5M6 "E5M6: Unspeakable Persecution";
HUSTR_E5M7 "E5M7: Nightmare Underworld";
HUSTR_E5M8 "E5M8: Halls of Perdition";
HUSTR_E5M9 "E5M9: Realm of Iblis";
* For DOOM2 - These names are made up of HUSTR_ and
* a number for the map number. Original names are shown in quotes.
* Blank lines separate sky change groupings
HUSTR_1 "level 1: entryway"
HUSTR_2 "level 2: underhalls"
HUSTR_3 "level 3: the gantlet"
HUSTR_4 "level 4: the focus"
HUSTR_5 "level 5: the waste tunnels"
HUSTR_6 "level 6: the crusher"
HUSTR_7 "level 7: dead simple"
HUSTR_8 "level 8: tricks and traps"
HUSTR_9 "level 9: the pit"
HUSTR_10 "level 10: refueling base"
HUSTR_11 "level 11: 'o' of destruction!"
HUSTR_12 "level 12: the factory"
HUSTR_13 "level 13: downtown"
HUSTR_14 "level 14: the inmost dens"
HUSTR_15 "level 15: industrial zone"
HUSTR_16 "level 16: suburbs"
HUSTR_17 "level 17: tenements"
HUSTR_18 "level 18: the courtyard"
HUSTR_19 "level 19: the citadel"
HUSTR_20 "level 20: gotcha!"
HUSTR_21 "level 21: nirvana"
HUSTR_22 "level 22: the catacombs"
HUSTR_23 "level 23: barrels o' fun"
HUSTR_24 "level 24: the chasm"
HUSTR_25 "level 25: bloodfalls"
HUSTR_26 "level 26: the abandoned mines"
HUSTR_27 "level 27: monster condo"
HUSTR_28 "level 28: the spirit world"
HUSTR_29 "level 29: the living end"
HUSTR_30 "level 30: icon of sin"
* Secret levels
HUSTR_31 "level 31: wolfenstein"
HUSTR_32 "level 32: grosse"
* For PLUTONIA - These names are made up of PHUSTR_ and
* a number for the map number. Original names are shown in quotes.
* Blank lines separate sky change groupings
PHUSTR_1 "level 1: congo"
PHUSTR_2 "level 2: well of souls"
PHUSTR_3 "level 3: aztec"
PHUSTR_4 "level 4: caged"
PHUSTR_5 "level 5: ghost town"
PHUSTR_6 "level 6: baron's lair"
PHUSTR_7 "level 7: caughtyard"
PHUSTR_8 "level 8: realm"
PHUSTR_9 "level 9: abattoire"
PHUSTR_10 "level 10: onslaught"
PHUSTR_11 "level 11: hunted"
PHUSTR_12 "level 12: speed"
PHUSTR_13 "level 13: the crypt"
PHUSTR_14 "level 14: genesis"
PHUSTR_15 "level 15: the twilight"
PHUSTR_16 "level 16: the omen"
PHUSTR_17 "level 17: compound"
PHUSTR_18 "level 18: neurosphere"
PHUSTR_19 "level 19: nme"
PHUSTR_20 "level 20: the death domain"
PHUSTR_21 "level 21: slayer"
PHUSTR_22 "level 22: impossible mission"
PHUSTR_23 "level 23: tombstone"
PHUSTR_24 "level 24: the final frontier"
PHUSTR_25 "level 25: the temple of darkness"
PHUSTR_26 "level 26: bunker"
PHUSTR_27 "level 27: anti-christ"
PHUSTR_28 "level 28: the sewers"
PHUSTR_29 "level 29: odyssey of noises"
PHUSTR_30 "level 30: the gateway of hell"
PHUSTR_31 "level 31: cyberden"
PHUSTR_32 "level 32: go 2 it"
* For TNT:Evilution - These names are made up of THUSTR_ and
* a number for the map number. Original names are shown in quotes.
* Blank lines separate sky change groupings
THUSTR_1 "level 1: system control"
THUSTR_2 "level 2: human bbq"
THUSTR_3 "level 3: power control"
THUSTR_4 "level 4: wormhole"
THUSTR_5 "level 5: hanger"
THUSTR_6 "level 6: open season"
THUSTR_7 "level 7: prison"
THUSTR_8 "level 8: metal"
THUSTR_9 "level 9: stronghold"
THUSTR_10 "level 10: redemption"
THUSTR_11 "level 11: storage facility"
THUSTR_12 "level 12: crater"
THUSTR_13 "level 13: nukage processing"
THUSTR_14 "level 14: steel works"
THUSTR_15 "level 15: dead zone"
THUSTR_16 "level 16: deepest reaches"
THUSTR_17 "level 17: processing area"
THUSTR_18 "level 18: mill"
THUSTR_19 "level 19: shipping/respawning"
THUSTR_20 "level 20: central processing"
THUSTR_21 "level 21: administration center"
THUSTR_22 "level 22: habitat"
THUSTR_23 "level 23: lunar mining project"
THUSTR_24 "level 24: quarry"
THUSTR_25 "level 25: baron's den"
THUSTR_26 "level 26: ballistyx"
THUSTR_27 "level 27: mount pain"
THUSTR_28 "level 28: heck"
THUSTR_29 "level 29: river styx"
THUSTR_30 "level 30: last call"
THUSTR_31 "level 31: pharaoh"
THUSTR_32 "level 32: caribbean"
================================================
Part 6 - MESSAGES AS A RESULT OF TOGGLING STATES
================================================
AMSTR_FOLLOWON Automap follow mode toggled on (F)
"Follow Mode ON"
AMSTR_FOLLOWOFF Automap follow mode toggled off (F)
"Follow Mode OFF"
AMSTR_GRIDON Automap grid mode toggled on (G)
"Grid ON"
AMSTR_GRIDOFF Automap grid mode toggled off (G)
"Grid OFF"
AMSTR_MARKEDSPOT Automap spot marked (M)
"Marked Spot"
AMSTR_MARKSCLEARED Automap marks cleared (C)
"All Marks Cleared"
STSTR_MUS Music changed with IDMUSnn
"Music Change"
STSTR_NOMUS Error message [IDMUS] to bad number
"IMPOSSIBLE SELECTION"
STSTR_DQDON God mode toggled on [IDDQD]
"Degreelessness Mode On"
STSTR_DQDOFF God mode toggled off [IDDQD]
"Degreelessness Mode Off"
STSTR_KFAADDED Ammo and keys added [IDKFA]
"Very Happy Ammo Added"
STSTR_FAADDED Ammo no keys added [IDK or IDKA]
"Ammo (no keys) Added"
STSTR_NCON Walk through walls toggled on [IDCLIP or IDSPISPOPD]
"No Clipping Mode ON"
STSTR_NCOFF Walk through walls off [IDCLIP or IDSPISPOPD]
"No Clipping Mode OFF"
STSTR_BEHOLD Prompt for IDBEHOLD cheat menu
"inVuln, Str, Inviso, Rad, Allmap, or Lite-amp"
STSTR_BEHOLDX Prompt after toggling the special with IDBEHOLD
"Power-up Toggled"
STSTR_CHOPPERS Message when the chainsaw is picked [IDCHOPPERS]
"... doesn't suck - GM"
STSTR_CLEV Message while changing levels [IDCLEVxx]
"Changing Level..."
STSTR_COMPON Message when turning on DOOM compatibility mode (*)
"Compatibility Mode On"
STSTR_COMPOFF Message when turning off DOOM compatibility mode (*)
"Compatibility Mode Off"
===================================
Part 7 - EPISODE INTERMISSION TEXTS
===================================
* DOOM/Ultimate DOOM Intermissions
E1TEXT Message after Episode 1 of DOOM
"Once you beat the big badasses and\nclean out "...
E2TEXT Message after Episode 2 of DOOM
"You've done it! The hideous cyber-\ndemon lord"...
E3TEXT Message after Episode 3 of DOOM
"The loathsome spiderdemon that\nmasterminded t"...
E4TEXT Message after Episode 4 of Ultimate DOOM
"the spider mastermind must have sent forth\nit"...
E5TEXT Message after Episode 5 of SIGIL
"Baphomet was only doing Satan's bidding\nby br"...
* DOOM2 Intermissions
C1TEXT Message after MAP06
"YOU HAVE ENTERED DEEPLY INTO THE INFESTED\nSTA"...
C2TEXT Message after MAP11
"YOU HAVE WON! YOUR VICTORY HAS ENABLED\nHUMANK"...
C3TEXT Message after MAP20
"YOU ARE AT THE CORRUPT HEART OF THE CITY,\nSUR"...
C4TEXT Message after MAP30
"THE HORRENDOUS VISAGE OF THE BIGGEST\nDEMON YO"...
C5TEXT Message when entering MAP31
"CONGRATULATIONS, YOU'VE FOUND THE SECRET\nLEVE"...
C6TEXT Message when entering MAP32
"CONGRATULATIONS, YOU'VE FOUND THE\nSUPER SECRE"...
* PLUTONIA Intermissions
P1TEXT Message after MAP06
"You gloat over the steaming carcass of the\nGu"...
P2TEXT Message after MAP11
"Even the deadly Arch-Vile labyrinth could\nnot"...
P3TEXT Message after MAP20
"You've bashed and battered your way into\nthe "...
P4TEXT Message after MAP30
"The Gatekeeper's evil face is splattered\nall "...
P5TEXT Message when entering MAP31
"You've found the second-hardest level we\ngot."...
P6TEXT Message when entering MAP32
"Betcha wondered just what WAS the hardest\nlev"...
* TNT:Evilution Intermissions
T1TEXT Message after MAP06
"You've fought your way out of the infested\nex"...
T2TEXT Message after MAP11
"You hear the grinding of heavy machinery\nahea"...
T3TEXT Message after MAP20
"The vista opening ahead looks real damn\nfamil"...
T4TEXT Message after MAP30
"Suddenly, all is silent, from one horizon\nto "...
T5TEXT Message when entering MAP31
"What now? Looks totally different. Kind\nof li"...
T6TEXT Message when entering MAP32
"Time for a vacation. You've burst the\nbowels "...
======================================
Part 8 - CREATURE NAMES FOR THE FINALE
======================================
CC_ZOMBIE Trooper
"ZOMBIEMAN"
CC_SHOTGUN Sargeant
"SHOTGUN GUY"
CC_HEAVY Chaingunner
"HEAVY WEAPON DUDE"
CC_IMP Imp
"IMP"
CC_DEMON Demon
"DEMON"
CC_LOST Lost Soul
"LOST SOUL"
CC_CACO Cacodemon
"CACODEMON"
CC_HELL Hell Knight
"HELL KNIGHT"
CC_BARON Baron of Hell
"BARON OF HELL"
CC_ARACH Arachnotron (baby spider)
"ARACHNOTRON"
CC_PAIN Pain Elemental
"PAIN ELEMENTAL"
CC_REVEN Revenant