OrgHeights { 56, 56, 56, 56, 16, 56, 8, 16, 64, 8, 56, 56, 56, 56, 56, 64, 8, 64, 56, 100, 64, 110, 56, 56, 72, 16, 32, 32, 32, 16, 42, 8, 8, 8, 8, 8, 8, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 68, 84, 84, 68, 52, 84, 68, 52, 52, 68, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 88, 88, 64, 64, 64, 64, 16, 16, 16 }; // This is a list of all the action functions used by each of Doom's states. ActionList { NULL, Light0, WeaponReady, Lower, Raise, NULL, Punch, NULL, NULL, ReFire, WeaponReady, Lower, Raise, NULL, FirePistol, NULL, ReFire, Light1, WeaponReady, Lower, Raise, NULL, FireShotgun, NULL, NULL, NULL, NULL, NULL, NULL, ReFire, Light1, Light2, WeaponReady, Lower, Raise, NULL, FireShotgun2, NULL, CheckReload, OpenShotgun2, NULL, LoadShotgun2, NULL, CloseShotgun2, ReFire, NULL, NULL, Light1, Light2, WeaponReady, Lower, Raise, FireCGun, FireCGun, ReFire, Light1, Light2, WeaponReady, Lower, Raise, GunFlash, FireMissile, ReFire, Light1, NULL, Light2, Light2, WeaponReady, WeaponReady, Lower, Raise, Saw, Saw, ReFire, WeaponReady, Lower, Raise, FirePlasma, ReFire, Light1, Light1, WeaponReady, Lower, Raise, BFGsound, GunFlash, FireBFG, ReFire, Light1, Light2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, BFGSpray, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Explode, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Pain, NULL, PlayerScream, Fall, NULL, NULL, NULL, NULL, NULL, XScream, Fall, NULL, NULL, NULL, NULL, NULL, NULL, Look, Look, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, FaceTarget, PosAttack, NULL, NULL, Pain, NULL, Scream, Fall, NULL, NULL, NULL, XScream, Fall, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Look, Look, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, FaceTarget, SPosAttack, NULL, NULL, Pain, NULL, Scream, Fall, NULL, NULL, NULL, XScream, Fall, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Look, Look, VileChase, VileChase, VileChase, VileChase, VileChase, VileChase, VileChase, VileChase, VileChase, VileChase, VileChase, VileChase, VileStart, FaceTarget, VileTarget, FaceTarget, FaceTarget, FaceTarget, FaceTarget, FaceTarget, FaceTarget, VileAttack, NULL, NULL, NULL, NULL, NULL, Pain, NULL, Scream, Fall, NULL, NULL, NULL, NULL, NULL, NULL, NULL, StartFire, Fire, Fire, Fire, FireCrackle, Fire, Fire, Fire, Fire, Fire, Fire, Fire, Fire, Fire, Fire, Fire, Fire, Fire, FireCrackle, Fire, Fire, Fire, Fire, Fire, Fire, Fire, Fire, Fire, Fire, Fire, NULL, NULL, NULL, NULL, NULL, Tracer, Tracer, NULL, NULL, NULL, Look, Look, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, FaceTarget, SkelWhoosh, FaceTarget, SkelFist, FaceTarget, FaceTarget, SkelMissile, FaceTarget, NULL, Pain, NULL, NULL, Scream, Fall, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Look, Look, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, FatRaise, FatAttack1, FaceTarget, FaceTarget, FatAttack2, FaceTarget, FaceTarget, FatAttack3, FaceTarget, FaceTarget, NULL, Pain, NULL, Scream, Fall, NULL, NULL, NULL, NULL, NULL, NULL, BossDeath, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Look, Look, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, FaceTarget, CPosAttack, CPosAttack, CPosRefire, NULL, Pain, NULL, Scream, Fall, NULL, NULL, NULL, NULL, NULL, XScream, Fall, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Look, Look, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, FaceTarget, FaceTarget, TroopAttack, NULL, Pain, NULL, Scream, NULL, Fall, NULL, NULL, XScream, NULL, Fall, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Look, Look, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, FaceTarget, FaceTarget, SargAttack, NULL, Pain, NULL, Scream, NULL, Fall, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Look, Chase, FaceTarget, FaceTarget, HeadAttack, NULL, Pain, NULL, NULL, Scream, NULL, NULL, Fall, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Look, Look, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, FaceTarget, FaceTarget, BruisAttack, NULL, Pain, NULL, Scream, NULL, Fall, NULL, NULL, BossDeath, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Look, Look, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, FaceTarget, FaceTarget, BruisAttack, NULL, Pain, NULL, Scream, NULL, Fall, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Look, Look, Chase, Chase, FaceTarget, SkullAttack, NULL, NULL, NULL, Pain, NULL, Scream, NULL, Fall, NULL, NULL, Look, Look, Metal, Chase, Chase, Chase, Metal, Chase, Chase, Chase, Metal, Chase, Chase, Chase, FaceTarget, SPosAttack, SPosAttack, SpidRefire, NULL, Pain, Scream, Fall, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, BossDeath, Look, Look, NULL, BabyMetal, Chase, Chase, Chase, Chase, Chase, BabyMetal, Chase, Chase, Chase, Chase, Chase, FaceTarget, BspiAttack, NULL, SpidRefire, NULL, Pain, Scream, Fall, NULL, NULL, NULL, NULL, BossDeath, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Look, Look, Hoof, Chase, Chase, Chase, Chase, Chase, Metal, Chase, FaceTarget, CyberAttack, FaceTarget, CyberAttack, FaceTarget, CyberAttack, Pain, NULL, Scream, NULL, NULL, NULL, Fall, NULL, NULL, NULL, BossDeath, Look, Chase, Chase, Chase, Chase, Chase, Chase, FaceTarget, FaceTarget, FaceTarget, PainAttack, NULL, Pain, NULL, Scream, NULL, NULL, PainDie, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Look, Look, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, FaceTarget, FaceTarget, CPosAttack, FaceTarget, CPosAttack, CPosRefire, NULL, Pain, NULL, Scream, Fall, NULL, NULL, NULL, XScream, Fall, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Scream, NULL, NULL, NULL, NULL, NULL, NULL, NULL, KeenDie, NULL, NULL, Pain, NULL, BrainPain, BrainScream, NULL, NULL, BrainDie, Look, BrainAwake, BrainSpit, SpawnSound, SpawnFly, SpawnFly, SpawnFly, Fire, Fire, Fire, Fire, Fire, Fire, Fire, Fire, NULL, NULL, BrainExplode, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Scream, NULL, Explode, // 156 NULLs so we can get to MBF-specific entries NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, // Now, these are all new to MBF. Die, Scream, Detonate, NULL, Look, Look, Chase, Chase, Chase, Chase, Chase, Chase, Chase, Chase, FaceTarget, FaceTarget, SargAttack, NULL, Pain, NULL, Scream, NULL, Fall, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, BFGsound, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, FireOldBFG, Light0, ReFire, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, Look, Chase, Chase, Chase, Chase, FaceTarget, BetaSkullAttack, NULL, NULL, Pain, NULL, NULL, NULL, NULL, NULL, Scream, NULL, Fall, Stop, Mushroom }; // DeHackEd made the erroneous assumption that if a state didn't appear in // Doom with an action function, then it was incorrect to assign it one. // This is a list of the states that had action functions, so we can figure // out where in the original list of states a DeHackEd codepointer is. // (DeHackEd might also have done this for compatibility between Doom // versions, because states could move around, but actions would never // disappear, but that doesn't explain why frame patches specify an exact // state rather than a code pointer.) CodePConv { 1, 2, 3, 4, 6, 9, 10, 11, 12, 14, 16, 17, 18, 19, 20, 22, 29, 30, 31, 32, 33, 34, 36, 38, 39, 41, 43, 44, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 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, 119, 127, 157, 159, 160, 166, 167, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 188, 190, 191, 195, 196, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 221, 223, 224, 228, 229, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 270, 272, 273, 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, 316, 317, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 344, 347, 348, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 387, 389, 390, 397, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 421, 423, 424, 430, 431, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 456, 458, 460, 463, 465, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 489, 491, 493, 502, 503, 504, 505, 506, 508, 511, 514, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 541, 543, 545, 548, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 570, 572, 574, 585, 586, 587, 588, 589, 590, 594, 596, 598, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 620, 621, 622, 631, 632, 633, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 650, 652, 653, 654, 659, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 692, 696, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 713, 715, 718, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 743, 745, 746, 750, 751, 766, 774, 777, 779, 780, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 801, 809, 811, // 448th // Now for the 74 MBF states with code pointers 968, 969, 970, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 986, 988, 990, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1065, 1071, 1073, 1074, 1075 // Total: 522 }; // Sprite names in the order Doom originally had them. OrgSprNames { TROO,SHTG,PUNG,PISG,PISF,SHTF,SHT2,CHGG,CHGF,MISG, MISF,SAWG,PLSG,PLSF,BFGG,BFGF,BLUD,PUFF,BAL1,BAL2, PLSS,PLSE,MISL,BFS1,BFE1,BFE2,TFOG,IFOG,PLAY,POSS, SPOS,VILE,FIRE,FATB,FBXP,SKEL,MANF,FATT,CPOS,SARG, HEAD,BAL7,BOSS,BOS2,SKUL,SPID,BSPI,APLS,APBX,CYBR, PAIN,SSWV,KEEN,BBRN,BOSF,ARM1,ARM2,BAR1,BEXP,FCAN, BON1,BON2,BKEY,RKEY,YKEY,BSKU,RSKU,YSKU,STIM,MEDI, SOUL,PINV,PSTR,PINS,MEGA,SUIT,PMAP,PVIS,CLIP,AMMO, ROCK,BROK,CELL,CELP,SHEL,SBOX,BPAK,BFUG,MGUN,CSAW, LAUN,PLAS,SHOT,SGN2,COLU,SMT2,GOR1,POL2,POL5,POL4, POL3,POL1,POL6,GOR2,GOR3,GOR4,GOR5,SMIT,COL1,COL2, COL3,COL4,CAND,CBRA,COL6,TRE1,TRE2,ELEC,CEYE,FSKU, COL5,TBLU,TGRN,TRED,SMBT,SMGT,SMRT,HDB1,HDB2,HDB3, HDB4,HDB5,HDB6,POB1,POB2,BRS1,TLMP,TLP2, TNT1,DOGS,PLS1,PLS2,BON3,BON4,BLD2, // Added by MBF (BLD2 by Doom Retro) SP00,SP01,SP02,SP03,SP04,SP05,SP06,SP07,SP08,SP09, SP10,SP11,SP12,SP13,SP14,SP15,SP16,SP17,SP18,SP19, SP20,SP21,SP22,SP23,SP24,SP25,SP26,SP27,SP28,SP29, SP30,SP31,SP32,SP33,SP34,SP35,SP36,SP37,SP38,SP39, SP40,SP41,SP42,SP43,SP44,SP45,SP46,SP47,SP48,SP49, SP50,SP51,SP52,SP53,SP54,SP55,SP56,SP57,SP58,SP59, SP60,SP61,SP62,SP63,SP64,SP65,SP66,SP67,SP68,SP69, SP70,SP71,SP72,SP73,SP74,SP75,SP76,SP77,SP78,SP79, SP80,SP81,SP82,SP83,SP84,SP85,SP86,SP87,SP88,SP89, SP90,SP91,SP92,SP93,SP94,SP95,SP96,SP97,SP98,SP99, }; StateMap { // S_NULL is implicit Weapon, LightDone, 1, // S_LIGHTDONE Fist, Ready, 8, // S_PUNCH - S_PUNCH5 Pistol, Ready, 8, // S_PISTOL - S_PISTOLFLASH Shotgun, Ready, 14, // S_SGUN - S_SGUNFLASH2 SuperShotgun, Ready, 17, // S_DSGUN - S_DSGUNFLASH2 Chaingun, Ready, 8, // S_CHAIN - S_CHAINFLASH2 RocketLauncher, Ready, 10, // S_MISSILE - S_MISSILEFLASH4 Chainsaw, Ready, 7, // S_SAW - S_SAW3 PlasmaRifle, Ready, 7, // S_PLASMA - S_PLASMAFLASH2 BFG9000, Ready, 9, // S_BFG - S_BFGFLASH2 Blood, Spawn, 3, // S_BLOOD1 - S_BLOOD3 BulletPuff, Spawn, 4, // S_PUFF1 - S_PUFF4 DoomImpBall, Spawn, 5, // S_TBALL1 - S_TBALLX3 CacodemonBall, Spawn, 5, // S_RBALL1 - S_RBALLX3 PlasmaBall, Spawn, 7, // S_PLASBALL - S_PLASEXP5 Rocket, Spawn, 1, // S_ROCKET BFGBall, Spawn, 8, // S_BFGSHOT - S_BFGLAND6 BFGExtra, Spawn, 4, // S_BFGEXP - S_BFGEXP4 Rocket, Death, 3, // S_EXPLODE1 - S_EXPLODE3 TeleportFog, Spawn, 12, // S_TFOG - S_TFOG10 ItemFog, Spawn, 7, // S_IFOG - S_IFOG5 DoomPlayer, Spawn, 9, // S_PLAY - S_PLAY_PAIN2 DoomPlayer, Death1, 7, // S_PLAY_DIE - S_PLAY_DIE7 DoomPlayer, XDeath1, 9, // S_PLAY_XDIE - S_PLAY_XDIE9 ZombieMan, Spawn, 33, // S_POSS_STND - S_POSS_RAISE4 ShotgunGuy, Spawn, 34, // S_SPOS_STND - S_SPOS_RAISE5 Archvile, Spawn, 40, // S_VILE_STND - S_VILE_DIE10 ArchvileFire, Spawn, 30, // S_FIRE1 - S_FIRE30 RevenantTracerSmoke, Spawn, 5, // S_SMOKE1 - S_SMOKE5 RevenantTracer, Spawn, 5, // S_TRACER - S_TRACEEXP3 Revenant, Spawn, 36, // S_SKEL_STND - S_SKEL_RAISE6 FatShot, Spawn, 5, // S_FATSHOT1 - S_FATSHOTX3 Fatso, Spawn, 44, // S_FATT_STND - S_FATT_RAISE8 ChaingunGuy, Spawn, 36, // S_CPOS_STND - S_CPOS_RAISE7 DoomImp, Spawn, 33, // S_TROO_STND - S_TROO_RAISE5 Demon, Spawn, 27, // S_SARG_STND - S_SARG_RAISE6 Cacodemon, Spawn, 20, // S_HEAD_STND - S_HEAD_RAISE6 BaronBall, Spawn, 5, // S_BRBALL1 - S_BRBALLX3 BaronOfHell, Spawn, 29, // S_BOSS_STND - S_BOSS_RAISE7 HellKnight, Spawn, 29, // S_BOS2_STND - S_BOS2_RAISE7 LostSoul, Spawn, 16, // S_SKULL_STND - S_SKULL_DIE6 SpiderMastermind, Spawn, 31, // S_SPID_STND - S_SPID_DIE11 Arachnotron, Spawn, 35, // S_BSPI_STND - S_BSPI_RAISE7 ArachnotronPlasma, Spawn, 7, // S_ARACH_PLAZ - S_ARACH_PLEX5 Cyberdemon, Spawn, 27, // S_CYBER_STND - S_CYBER_DIE10 PainElemental, Spawn, 25, // S_PAIN_STND - S_PAIN_RAISE6 WolfensteinSS, Spawn, 37, // S_SSWV_STND - S_SSWV_RAISE5 CommanderKeen, Spawn, 15, // S_KEENSTND - S_KEENPAIN2 BossBrain, Spawn, 6, // S_BRAIN - S_BRAIN_DIE4 BossEye, Spawn, 3, // S_BRAINEYE - S_BRAINEYE1 SpawnShot, Spawn, 4, // S_SPAWN1 - S_SPAWN4 SpawnFire, Spawn, 8, // S_SPAWNFIRE1 - S_SPAWNFIRE8 Rocket, BrainExplode, 3, // S_BRAINEXPLODE1 - S_BRAINEXPLODE3 GreenArmor, Spawn, 2, // S_ARM1 - S_ARM1A BlueArmor, Spawn, 2, // S_ARM2 - S_ARM2A ExplosiveBarrel, Spawn, 7, // S_BAR1 - S_BEXP5 BurningBarrel, Spawn, 3, // S_BBAR1 - S_BBAR3 HealthBonus, Spawn, 6, // S_BON1 - S_BON1E ArmorBonus, Spawn, 6, // S_BON2 - S_BON2E BlueCard, Spawn, 2, // S_BKEY - S_BKEY2 RedCard, Spawn, 2, // S_RKEY - S_RKEY2 YellowCard, Spawn, 2, // S_YKEY - S_YKEY2 BlueSkull, Spawn, 2, // S_BSKULL - S_BSKULL2 RedSkull, Spawn, 2, // S_RSKULL - S_RSKULL2 YellowSkull, Spawn, 2, // S_YSKULL - S_YSKULL2 Stimpack, Spawn, 1, // S_STIM Medikit, Spawn, 1, // S_MEDI Soulsphere, Spawn, 6, // S_SOUL - S_SOUL6 InvulnerabilitySphere, Spawn, 4, // S_PINV - S_PINV4 Berserk, Spawn, 1, // S_PSTR BlurSphere, Spawn, 4, // S_PINS - P_PINS4 Megasphere, Spawn, 4, // S_MEGA - S_MEGA4 RadSuit, Spawn, 1, // S_SUIT Allmap, Spawn, 6, // S_PMAP - S_PMAP6 Infrared, Spawn, 2, // S_PVIS - S_PVIS2 Clip, Spawn, 1, // S_CLIP ClipBox, Spawn, 1, // S_AMMO RocketAmmo, Spawn, 1, // S_ROCK RocketBox, Spawn, 1, // S_BROK Cell, Spawn, 1, // S_CELL CellPack, Spawn, 1, // S_CELP Shell, Spawn, 1, // S_SHEL ShellBox, Spawn, 1, // S_SBOX Backpack, Spawn, 1, // S_BPAK BFG9000, Spawn, 1, // S_BFUG Chaingun, Spawn, 1, // S_MGUN Chainsaw, Spawn, 1, // S_CSAW RocketLauncher, Spawn, 1, // S_LAUN PlasmaRifle, Spawn, 1, // S_PLAS Shotgun, Spawn, 1, // S_SHOT SuperShotgun, Spawn, 1, // S_SHOT2 Column, Spawn, 1, // S_COLU DoomUnusedStates, Label1, 1, // S_STALAG BloodyTwitch, Spawn, 4, // S_BLOODYTWITCH - S_BLOODYTWITCH4 DoomUnusedStates, Label2, 2, // S_DEADTORSO - S_DEADBOTTOM HeadsOnAStick, Spawn, 1, // S_HEADSONSTICK Actor, GenericCrush, 1, // S_GIBS HeadOnAStick, Spawn, 1, // S_HEADONASTICK HeadCandles, Spawn, 2, // S_HEADCANDLES - S_HEADCANDLES2 DeadStick, Spawn, 1, // S_DEADSTICK LiveStick, Spawn, 2, // S_LIVESTICK Meat2, Spawn, 1, // S_MEAT2 Meat3, Spawn, 1, // S_MEAT3 Meat4, Spawn, 1, // S_MEAT4 Meat5, Spawn, 1, // S_MEAT5 Stalagtite, Spawn, 1, // S_STALAGTITE TallGreenColumn, Spawn, 1, // S_TALLGRNCOL ShortGreenColumn, Spawn, 1, // S_SHRTGRNCOL TallRedColumn, Spawn, 1, // S_TALLREDCOL ShortRedColumn, Spawn, 1, // S_SHRTREDCOL Candlestick, Spawn, 1, // S_CANDLESTIK Candelabra, Spawn, 1, // S_CANDELABRA SkullColumn, Spawn, 1, // S_SKULLCOL TorchTree, Spawn, 1, // S_TORCHTREE BigTree, Spawn, 1, // S_BIGTREE TechPillar, Spawn, 1, // S_TECHPILLAR EvilEye, Spawn, 4, // S_EVILEYE - S_EVILEYE4 FloatingSkull, Spawn, 3, // S_FLOATSKULL - S_FLOATSKULL3 HeartColumn, Spawn, 2, // S_HEARTCOL - S_HEARTCOL2 BlueTorch, Spawn, 4, // S_BLUETORCH - S_BLUETORCH4 GreenTorch, Spawn, 4, // S_GREENTORCH - S_GREENTORCH4 RedTorch, Spawn, 4, // S_REDTORCH - S_REDTORCH4 ShortBlueTorch, Spawn, 4, // S_BTORCHSHRT - S_BTORCHSHRT4 ShortGreenTorch, Spawn, 4, // S_GTORCHSHRT - S_GTORCHSHRT4 ShortRedTorch, Spawn, 4, // S_RTORCHSHRT - S_RTORCHSHRT4 HangNoGuts, Spawn, 1, // S_HANGNOGUTS HangBNoBrain, Spawn, 1, // S_HANGBNOBRAIN HangTLookingDown, Spawn, 1, // S_HANGTLOOKDN HangTSkull, Spawn, 1, // S_HANGTSKULL HangTLookingUp, Spawn, 1, // S_HANGTLOOKUP HangTNoBrain, Spawn, 1, // S_HANGTNOBRAIN ColonGibs, Spawn, 1, // S_COLONGIBS SmallBloodPool, Spawn, 1, // S_SMALLPOOL BrainStem, Spawn, 1, // S_BRAINSTEM TechLamp, Spawn, 4, // S_TECHLAMP - S_TECHLAMP4 TechLamp2, Spawn, 4, // S_TECH2LAMP - S_TECH2LAMP4 DoomUnusedStates, TNT, 1, // [MBF] S_TNT1 967 Grenade, Grenade, 1, // [MBF] S_GRENADE 968 Grenade, Detonate, 3, // [MBF] S_DETONATE - S_DETONATE3 969-971 MBFHelperDog, Spawn, 27, // [MBF] S_DOGS_STND - S_DOGS_RAISE6 972-998 BFG9000, OldFire, 43, // [MBF] S_OLDBFG1 - S_OLDBFG43 999-1041 PlasmaBall1, Spawn, 7, // [MBF] S_PLS1BALL - S_PLS1EXP5 1042-1048 PlasmaBall2, Spawn, 5, // [MBF] S_PLS2BALL - S_PLS2BALLX3 1049-1053 EvilSceptre, Spawn, 1, // [MBF] S_BON3 1054 UnholyBible, Spawn, 1, // [MBF] S_BON4 1055 BetaSkull, Spawn, 19, // [MBF] S_BSKUL_STND - S_BSKUL_DIE8 1056-1074 Grenade, Mushroom, 1, // [MBF] S_MUSHROOM 1075 Deh_Actor_250, Deh, 2925, // Doom Retro/Crispy Doom extensions. }; // Sound equivalences. When a patch tries to change a sound, use these sound names. SoundMap { "weapons/pistol", "weapons/shotgf", "weapons/shotgr", "weapons/sshotf", "weapons/sshoto", "weapons/sshotc", "weapons/sshotl", "weapons/plasmaf", "weapons/bfgf", "weapons/sawup", "weapons/sawidle", "weapons/sawfull", "weapons/sawhit", "weapons/rocklf", "weapons/bfgx", "imp/attack", "imp/shotx", "plats/pt1_strt", "plats/pt1_stop", "doors/dr1_open", "doors/dr1_clos", "plats/pt1_mid", "switches/normbutn", "switches/exitbutn", "*pain100", "demon/pain", "grunt/pain", "vile/pain", "fatso/pain", "pain/pain", "misc/gibbed", "misc/i_pkup", "misc/w_pkup", "*land", "misc/teleport", "grunt/sight", "grunt/sight", "grunt/sight", "imp/sight", "imp/sight", "demon/sight", "caco/sight", "baron/sight", "cyber/sight", "spider/sight", "baby/sight", "knight/sight", "vile/sight", "fatso/sight", "pain/sight", "skull/melee", "demon/melee", "skeleton/melee", "vile/start", "imp/melee", "skeleton/swing", "*death", "*xdeath", "grunt/death", "grunt/death", "grunt/death", "imp/death", "imp/death", "demon/death", "caco/death", "misc/unused", "baron/death", "cyber/death", "spider/death", "baby/death", "vile/death", "knight/death", "pain/death", "skeleton/death", "grunt/active", "imp/active", "demon/active", "baby/active", "baby/walk", "vile/active", "*grunt", "world/barrelx", "*fist", "cyber/hoof", "spider/walk", "weapons/chngun", "misc/chat2", "doors/dr2_open", "doors/dr2_clos", "misc/spawn", "vile/firecrkl", "vile/firestrt", "misc/p_pkup", "brain/spit", "brain/cube", "brain/sight", "brain/pain", "brain/death", "fatso/attack", "fatso/death", "wolfss/sight", "wolfss/death", "keen/pain", "keen/death", "skeleton/active", "skeleton/sight", "skeleton/attack", "misc/chat", "dog/sight", "dog/attack", "dog/active", "dog/death", "dog/pain", // Padding -- DEHEXTRA's new sound range // starts at sound ID 500, so we need // to insert a bunch of blanks in between. "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","","","","","", "","","","","","", //Crispy/Retro (DEHEXTRA) "dehextra/sound000", "dehextra/sound001", "dehextra/sound002", "dehextra/sound003", "dehextra/sound004", "dehextra/sound005", "dehextra/sound006", "dehextra/sound007", "dehextra/sound008", "dehextra/sound009", "dehextra/sound010", "dehextra/sound011", "dehextra/sound012", "dehextra/sound013", "dehextra/sound014", "dehextra/sound015", "dehextra/sound016", "dehextra/sound017", "dehextra/sound018", "dehextra/sound019", "dehextra/sound020", "dehextra/sound021", "dehextra/sound022", "dehextra/sound023", "dehextra/sound024", "dehextra/sound025", "dehextra/sound026", "dehextra/sound027", "dehextra/sound028", "dehextra/sound029", "dehextra/sound030", "dehextra/sound031", "dehextra/sound032", "dehextra/sound033", "dehextra/sound034", "dehextra/sound035", "dehextra/sound036", "dehextra/sound037", "dehextra/sound038", "dehextra/sound039", "dehextra/sound040", "dehextra/sound041", "dehextra/sound042", "dehextra/sound043", "dehextra/sound044", "dehextra/sound045", "dehextra/sound046", "dehextra/sound047", "dehextra/sound048", "dehextra/sound049", "dehextra/sound050", "dehextra/sound051", "dehextra/sound052", "dehextra/sound053", "dehextra/sound054", "dehextra/sound055", "dehextra/sound056", "dehextra/sound057", "dehextra/sound058", "dehextra/sound059", "dehextra/sound060", "dehextra/sound061", "dehextra/sound062", "dehextra/sound063", "dehextra/sound064", "dehextra/sound065", "dehextra/sound066", "dehextra/sound067", "dehextra/sound068", "dehextra/sound069", "dehextra/sound070", "dehextra/sound071", "dehextra/sound072", "dehextra/sound073", "dehextra/sound074", "dehextra/sound075", "dehextra/sound076", "dehextra/sound077", "dehextra/sound078", "dehextra/sound079", "dehextra/sound080", "dehextra/sound081", "dehextra/sound082", "dehextra/sound083", "dehextra/sound084", "dehextra/sound085", "dehextra/sound086", "dehextra/sound087", "dehextra/sound088", "dehextra/sound089", "dehextra/sound090", "dehextra/sound091", "dehextra/sound092", "dehextra/sound093", "dehextra/sound094", "dehextra/sound095", "dehextra/sound096", "dehextra/sound097", "dehextra/sound098", "dehextra/sound099", "dehextra/sound100", "dehextra/sound101", "dehextra/sound102", "dehextra/sound103", "dehextra/sound104", "dehextra/sound105", "dehextra/sound106", "dehextra/sound107", "dehextra/sound108", "dehextra/sound109", "dehextra/sound110", "dehextra/sound111", "dehextra/sound112", "dehextra/sound113", "dehextra/sound114", "dehextra/sound115", "dehextra/sound116", "dehextra/sound117", "dehextra/sound118", "dehextra/sound119", "dehextra/sound120", "dehextra/sound121", "dehextra/sound122", "dehextra/sound123", "dehextra/sound124", "dehextra/sound125", "dehextra/sound126", "dehextra/sound127", "dehextra/sound128", "dehextra/sound129", "dehextra/sound130", "dehextra/sound131", "dehextra/sound132", "dehextra/sound133", "dehextra/sound134", "dehextra/sound135", "dehextra/sound136", "dehextra/sound137", "dehextra/sound138", "dehextra/sound139", "dehextra/sound140", "dehextra/sound141", "dehextra/sound142", "dehextra/sound143", "dehextra/sound144", "dehextra/sound145", "dehextra/sound146", "dehextra/sound147", "dehextra/sound148", "dehextra/sound149", "dehextra/sound150", "dehextra/sound151", "dehextra/sound152", "dehextra/sound153", "dehextra/sound154", "dehextra/sound155", "dehextra/sound156", "dehextra/sound157", "dehextra/sound158", "dehextra/sound159", "dehextra/sound160", "dehextra/sound161", "dehextra/sound162", "dehextra/sound163", "dehextra/sound164", "dehextra/sound165", "dehextra/sound166", "dehextra/sound167", "dehextra/sound168", "dehextra/sound169", "dehextra/sound170", "dehextra/sound171", "dehextra/sound172", "dehextra/sound173", "dehextra/sound174", "dehextra/sound175", "dehextra/sound176", "dehextra/sound177", "dehextra/sound178", "dehextra/sound179", "dehextra/sound180", "dehextra/sound181", "dehextra/sound182", "dehextra/sound183", "dehextra/sound184", "dehextra/sound185", "dehextra/sound186", "dehextra/sound187", "dehextra/sound188", "dehextra/sound189", "dehextra/sound190", "dehextra/sound191", "dehextra/sound192", "dehextra/sound193", "dehextra/sound194", "dehextra/sound195", "dehextra/sound196", "dehextra/sound197", "dehextra/sound198", "dehextra/sound199", }; // Names of different actor types, in original Doom 2 order InfoNames { DoomPlayer, ZombieMan, ShotgunGuy, Archvile, ArchvileFire, Revenant, RevenantTracer, RevenantTracerSmoke, Fatso, FatShot, ChaingunGuy, DoomImp, Demon, Spectre, Cacodemon, BaronOfHell, BaronBall, HellKnight, LostSoul, SpiderMastermind, Arachnotron, Cyberdemon, PainElemental, WolfensteinSS, CommanderKeen, BossBrain, BossEye, BossTarget, SpawnShot, SpawnFire, ExplosiveBarrel, DoomImpBall, CacodemonBall, Rocket, PlasmaBall, BFGBall, ArachnotronPlasma, BulletPuff, Blood, TeleportFog, ItemFog, TeleportDest, BFGExtra, GreenArmor, BlueArmor, HealthBonus, ArmorBonus, BlueCard, RedCard, YellowCard, YellowSkull, RedSkull, BlueSkull, Stimpack, Medikit, Soulsphere, InvulnerabilitySphere, Berserk, BlurSphere, RadSuit, Allmap, Infrared, Megasphere, Clip, ClipBox, RocketAmmo, RocketBox, Cell, CellPack, Shell, ShellBox, Backpack, BFG9000, Chaingun, Chainsaw, RocketLauncher, PlasmaRifle, Shotgun, SuperShotgun, TechLamp, TechLamp2, Column, TallGreenColumn, ShortGreenColumn, TallRedColumn, ShortRedColumn, SkullColumn, HeartColumn, EvilEye, FloatingSkull, TorchTree, BlueTorch, GreenTorch, RedTorch, ShortBlueTorch, ShortGreenTorch, ShortRedTorch, Stalagtite, TechPillar, Candlestick, Candelabra, BloodyTwitch, Meat2, Meat3, Meat4, Meat5, NonsolidMeat2, NonsolidMeat4, NonsolidMeat3, NonsolidMeat5, NonsolidTwitch, DeadCacodemon, DeadMarine, DeadZombieMan, DeadDemon, DeadLostSoul, DeadDoomImp, DeadShotgunGuy, GibbedMarine, GibbedMarineExtra, HeadsOnAStick, Gibs, HeadOnAStick, HeadCandles, DeadStick, LiveStick, BigTree, BurningBarrel, HangNoGuts, HangBNoBrain, HangTLookingDown, HangTSkull, HangTLookingUp, HangTNoBrain, ColonGibs, SmallBloodPool, BrainStem, // Boom additional actors: PointPusher, PointPuller, // MBF additional actors: MBFHelperDog, PlasmaBall1, PlasmaBall2, EvilSceptre, UnholyBible, // Crispy/Retro MusicChanger, Deh_Actor_145, Deh_Actor_146, Deh_Actor_147, Deh_Actor_148, Deh_Actor_149, Deh_Actor_150, Deh_Actor_151, Deh_Actor_152, Deh_Actor_153, Deh_Actor_154, Deh_Actor_155, Deh_Actor_156, Deh_Actor_157, Deh_Actor_158, Deh_Actor_159, Deh_Actor_160, Deh_Actor_161, Deh_Actor_162, Deh_Actor_163, Deh_Actor_164, Deh_Actor_165, Deh_Actor_166, Deh_Actor_167, Deh_Actor_168, Deh_Actor_169, Deh_Actor_170, Deh_Actor_171, Deh_Actor_172, Deh_Actor_173, Deh_Actor_174, Deh_Actor_175, Deh_Actor_176, Deh_Actor_177, Deh_Actor_178, Deh_Actor_179, Deh_Actor_180, Deh_Actor_181, Deh_Actor_182, Deh_Actor_183, Deh_Actor_184, Deh_Actor_185, Deh_Actor_186, Deh_Actor_187, Deh_Actor_188, Deh_Actor_189, Deh_Actor_190, Deh_Actor_191, Deh_Actor_192, Deh_Actor_193, Deh_Actor_194, Deh_Actor_195, Deh_Actor_196, Deh_Actor_197, Deh_Actor_198, Deh_Actor_199, Deh_Actor_200, Deh_Actor_201, Deh_Actor_202, Deh_Actor_203, Deh_Actor_204, Deh_Actor_205, Deh_Actor_206, Deh_Actor_207, Deh_Actor_208, Deh_Actor_209, Deh_Actor_210, Deh_Actor_211, Deh_Actor_212, Deh_Actor_213, Deh_Actor_214, Deh_Actor_215, Deh_Actor_216, Deh_Actor_217, Deh_Actor_218, Deh_Actor_219, Deh_Actor_220, Deh_Actor_221, Deh_Actor_222, Deh_Actor_223, Deh_Actor_224, Deh_Actor_225, Deh_Actor_226, Deh_Actor_227, Deh_Actor_228, Deh_Actor_229, Deh_Actor_230, Deh_Actor_231, Deh_Actor_232, Deh_Actor_233, Deh_Actor_234, Deh_Actor_235, Deh_Actor_236, Deh_Actor_237, Deh_Actor_238, Deh_Actor_239, Deh_Actor_240, Deh_Actor_241, Deh_Actor_242, Deh_Actor_243, Deh_Actor_244, Deh_Actor_245, Deh_Actor_246, Deh_Actor_247, Deh_Actor_248, Deh_Actor_249, Deh_Actor_250 }; ThingBits { 0, 0, SPECIAL, 1, 0, SOLID, 2, 0, SHOOTABLE, 3, 0, NOSECTOR, 4, 0, NOBLOCKMAP, 5, 0, AMBUSH, 6, 0, JUSTHIT, 7, 0, JUSTATTACKED, 8, 0, SPAWNCEILING, 9, 0, NOGRAVITY, 10, 0, DROPOFF, 11, 0, PICKUP, 12, 0, NOCLIP, 13, 0, SLIDE, 14, 0, FLOAT, 15, 0, TELEPORT, 16, 0, MISSILE, 17, 0, DROPPED, 18, 0, SHADOW, 19, 0, NOBLOOD, 20, 0, CORPSE, 21, 0, INFLOAT, 22, 0, COUNTKILL, 23, 0, COUNTITEM, 24, 0, SKULLFLY, 25, 0, NOTDMATCH, 26, 0, TRANSLATION1, 26, 0, TRANSLATION, // BOOM compatibility 27, 0, TRANSLATION2, 27, 0, UNUSED1, // BOOM compatibility 28, 0, UNUSED2, // BOOM compatibility 29, 0, UNUSED3, // BOOM compatibility 30, 0, UNUSED4, // BOOM compatibility 28, 0, TOUCHY, // MBF compatibility 29, 0, BOUNCES, // MBF compatibility 30, 0, FRIEND, // MBF compatibility 31, 0, TRANSLUCENT, // BOOM compatibility 30, 0, STEALTH, 1, 2, TRANSLUC25, 2, 2, TRANSLUC50, 3, 2, TRANSLUC75, // Names for flags2 0, 1, LOGRAV, 1, 1, WINDTHRUST, 2, 1, FLOORBOUNCE, 3, 1, BLASTED, 4, 1, FLY, 5, 1, FLOORCLIP, 6, 1, SPAWNFLOAT, 7, 1, NOTELEPORT, 8, 1, RIP, 9, 1, PUSHABLE, 10, 1, CANSLIDE, // Avoid conflict with SLIDE from BOOM 11, 1, ONMOBJ, 12, 1, PASSMOBJ, 13, 1, CANNOTPUSH, 14, 1, THRUGHOST, 15, 1, BOSS, 16, 1, FIREDAMAGE, 17, 1, NODMGTHRUST, 18, 1, TELESTOMP, 19, 1, FLOATBOB, 4, 2, DONTDRAW, 21, 1, IMPACT, 22, 1, PUSHWALL, 23, 1, MCROSS, 24, 1, PCROSS, 25, 1, CANTLEAVEFLOORPIC, 26, 1, NONSHOOTABLE, 27, 1, INVULNERABLE, 28, 1, DORMANT, 29, 1, ICEDAMAGE, 30, 1, SEEKERMISSILE, 31, 1, REFLECTIVE }; // RenderStyles, should match those in actor.h RenderStyles { 0, STYLE_None, 1, STYLE_Normal, 2, STYLE_Fuzzy, 3, STYLE_SoulTrans, 4, STYLE_OptFuzzy, 8, STYLE_Shaded, 6, STYLE_Translucent, 7, STYLE_Add }; AmmoNames { Clip, Shell, Cell, RocketAmmo, GoldWandAmmo, NULL, BlasterAmmo, SkullRodAmmo, PhoenixRodAmmo, MaceAmmo, Mana1, Mana2 }; WeaponNames { Fist, Pistol, Shotgun, Chaingun, RocketLauncher, PlasmaRifle, BFG9000, Chainsaw, SuperShotgun }; // Codepointer aliases // The idea is that, rather than add redundant codepointers for compatibility, // or codepointers that would require to transform ZDoom's underlying architecture // because they refer to things, sounds or states by their DeHackEd numbers, // we can translate their parameters and transform them into standard functions // when parsing a DEHACKED lump. Aliases { A_Mushroom, A_Mushroom, 5, A_Spawn, A_SpawnItem, 5, A_Turn, A_Turn, 1, A_Face, A_SetAngle, 1, A_Scratch, A_CustomMeleeAttack, 5, // 19 characters for "A_CustomMeleeAttack"! A_PlaySound, A_PlaySound, 5, // A function name any longer and the definition A_RandomJump, A_Jump, 3, // for CodePointerAlias would need to be updated. A_LineEffect, A_LineEffect, 2, A_NailBomb, A_Explode, 7, };