|
------------------------------------------------------------------------ IMPLEMENT_ACTOR (AArachnotron, Doom, 68, 6) PROP_SpawnHealth (500) PROP_RadiusFixed (64) PROP_HeightFixed (64) PROP_Mass (600) PROP_SpeedFixed (12) PROP_PainChance (128) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_FLOORCLIP) PROP_Flags4 (MF4_BOSSDEATH) PROP_SpawnState (S_BSPI_STND) PROP_SeeState (S_BSPI_SIGHT) PROP_PainState (S_BSPI_PAIN) PROP_MissileState (S_BSPI_ATK) PROP_DeathState (S_BSPI_DIE) PROP_RaiseState (S_BSPI_RAISE) PROP_SeeSound ("baby/sight") PROP_PainSound ("baby/pain") PROP_DeathSound ("baby/death") PROP_ActiveSound ("baby/active") END_DEFAULTS FState AArachnotron::States[] = { #define S_BSPI_STND 0 S_NORMAL1 (BSPI, 'A', 10, A_Look , &States[S_BSPI_STND+1]), S_NORMAL1 (BSPI, 'B', 10, A_Look , &States[S_BSPI_STND]), #define S_BSPI_SIGHT (S_BSPI_STND+2) #define S_BSPI_RUN (S_BSPI_SIGHT+1) S_NORMAL1 (BSPI, 'A', 20, NULL , &States[S_BSPI_RUN+0]), S_NORMAL1 (BSPI, 'A', 3, A_BabyMetal , &States[S_BSPI_RUN+1]), S_NORMAL1 (BSPI, 'A', 3, A_Chase , &States[S_BSPI_RUN+2]), S_NORMAL1 (BSPI, 'B', 3, A_Chase , &States[S_BSPI_RUN+3]), S_NORMAL1 (BSPI, 'B', 3, A_Chase , &States[S_BSPI_RUN+4]), S_NORMAL1 (BSPI, 'C', 3, A_Chase , &States[S_BSPI_RUN+5]), S_NORMAL1 (BSPI, 'C', 3, A_Chase , &States[S_BSPI_RUN+6]), S_NORMAL1 (BSPI, 'D', 3, A_BabyMetal , &States[S_BSPI_RUN+7]), S_NORMAL1 (BSPI, 'D', 3, A_Chase , &States[S_BSPI_RUN+8]), S_NORMAL1 (BSPI, 'E', 3, A_Chase , &States[S_BSPI_RUN+9]), S_NORMAL1 (BSPI, 'E', 3, A_Chase , &States[S_BSPI_RUN+10]), S_NORMAL1 (BSPI, 'F', 3, A_Chase , &States[S_BSPI_RUN+11]), S_NORMAL1 (BSPI, 'F', 3, A_Chase , &States[S_BSPI_RUN+0]), #define S_BSPI_ATK (S_BSPI_RUN+12) S_BRIGHT (BSPI, 'A', 20, A_FaceTarget , &States[S_BSPI_ATK+1]), S_BRIGHT (BSPI, 'G', 4, A_BspiAttack , &States[S_BSPI_ATK+2]), S_BRIGHT (BSPI, 'H', 4, NULL , &States[S_BSPI_ATK+3]), S_BRIGHT (BSPI, 'H', 1, A_SpidRefire , &States[S_BSPI_ATK+1]), #define S_BSPI_PAIN (S_BSPI_ATK+4) S_NORMAL1 (BSPI, 'I', 3, NULL , &States[S_BSPI_PAIN+1]), S_NORMAL1 (BSPI, 'I', 3, A_Pain , &States[S_BSPI_RUN+0]), #define S_BSPI_DIE (S_BSPI_PAIN+2) S_NORMAL1 (BSPI, 'J', 20, A_Scream , &States[S_BSPI_DIE+1]), S_NORMAL1 (BSPI, 'K', 7, A_NoBlocking , &States[S_BSPI_DIE+2]), S_NORMAL1 (BSPI, 'L', 7, NULL , &States[S_BSPI_DIE+3]), S_NORMAL1 (BSPI, 'M', 7, NULL , &States[S_BSPI_DIE+4]), S_NORMAL1 (BSPI, 'N', 7, NULL , &States[S_BSPI_DIE+5]), S_NORMAL1 (BSPI, 'O', 7, NULL , &States[S_BSPI_DIE+6]), S_NORMAL1 (BSPI, 'P', -1, A_BossDeath , NULL), #define S_BSPI_RAISE (S_BSPI_DIE+7) S_NORMAL1 (BSPI, 'P', 5, NULL , &States[S_BSPI_RAISE+1]), S_NORMAL1 (BSPI, 'O', 5, NULL , &States[S_BSPI_RAISE+2]), S_NORMAL1 (BSPI, 'N', 5, NULL , &States[S_BSPI_RAISE+3]), S_NORMAL1 (BSPI, 'M', 5, NULL , &States[S_BSPI_RAISE+4]), S_NORMAL1 (BSPI, 'L', 5, NULL , &States[S_BSPI_RAISE+5]), S_NORMAL1 (BSPI, 'K', 5, NULL , &States[S_BSPI_RAISE+6]), S_NORMAL1 (BSPI, 'J', 5, NULL , &States[S_BSPI_RUN+0]) }; ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (AStealthArachnotron, Doom, 9050, 117) PROP_FlagsSet (MF_STEALTH) PROP_RenderStyle (STYLE_Translucent) PROP_Alpha (0) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AArachnotronPlasma, Doom, -1, 129) PROP_RadiusFixed (13) PROP_HeightFixed (8) PROP_SpeedFixed (25) PROP_Damage (5) PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY) PROP_Flags2 (MF2_PCROSS|MF2_IMPACT|MF2_NOTELEPORT) PROP_RenderStyle (STYLE_Add) PROP_SpawnState (S_ARACH_PLAZ) PROP_DeathState (S_ARACH_PLEX) PROP_SeeSound ("baby/attack") PROP_DeathSound ("baby/shotx") END_DEFAULTS FState AArachnotronPlasma::States[] = { #define S_ARACH_PLAZ 0 S_BRIGHT (APLS, 'A', 5, NULL , &States[S_ARACH_PLAZ+1]), S_BRIGHT (APLS, 'B', 5, NULL , &States[S_ARACH_PLAZ]), #define S_ARACH_PLEX (S_ARACH_PLAZ+2) S_BRIGHT (APBX, 'A', 5, NULL , &States[S_ARACH_PLEX+1]), S_BRIGHT (APBX, 'B', 5, NULL , &States[S_ARACH_PLEX+2]), S_BRIGHT (APBX, 'C', 5, NULL , &States[S_ARACH_PLEX+3]), S_BRIGHT (APBX, 'D', 5, NULL , &States[S_ARACH_PLEX+4]), S_BRIGHT (APBX, 'E', 5, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AArchvile, Doom, 64, 111) PROP_SpawnHealth (700) PROP_RadiusFixed (20) PROP_HeightFixed (56) PROP_Mass (500) PROP_SpeedFixed (15) PROP_PainChance (10) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_FLOORCLIP) PROP_Flags3 (MF3_NOTARGET) PROP_Flags4 (MF4_QUICKTORETALIATE) PROP_SpawnState (S_VILE_STND) PROP_SeeState (S_VILE_RUN) PROP_PainState (S_VILE_PAIN) PROP_MissileState (S_VILE_ATK) PROP_DeathState (S_VILE_DIE) PROP_SeeSound ("vile/sight") PROP_PainSound ("vile/pain") PROP_DeathSound ("vile/death") PROP_ActiveSound ("vile/active") END_DEFAULTS FState AArchvile::States[] = { #define S_VILE_STND 0 S_NORMAL1 (VILE, 'A', 10, A_Look , &States[S_VILE_STND+1]), S_NORMAL1 (VILE, 'B', 10, A_Look , &States[S_VILE_STND]), #define S_VILE_RUN (S_VILE_STND+2) S_NORMAL1 (VILE, 'A', 2, A_VileChase , &States[S_VILE_RUN+1]), S_NORMAL1 (VILE, 'A', 2, A_VileChase , &States[S_VILE_RUN+2]), S_NORMAL1 (VILE, 'B', 2, A_VileChase , &States[S_VILE_RUN+3]), S_NORMAL1 (VILE, 'B', 2, A_VileChase , &States[S_VILE_RUN+4]), S_NORMAL1 (VILE, 'C', 2, A_VileChase , &States[S_VILE_RUN+5]), S_NORMAL1 (VILE, 'C', 2, A_VileChase , &States[S_VILE_RUN+6]), S_NORMAL1 (VILE, 'D', 2, A_VileChase , &States[S_VILE_RUN+7]), S_NORMAL1 (VILE, 'D', 2, A_VileChase , &States[S_VILE_RUN+8]), S_NORMAL1 (VILE, 'E', 2, A_VileChase , &States[S_VILE_RUN+9]), S_NORMAL1 (VILE, 'E', 2, A_VileChase , &States[S_VILE_RUN+10]), S_NORMAL1 (VILE, 'F', 2, A_VileChase , &States[S_VILE_RUN+11]), S_NORMAL1 (VILE, 'F', 2, A_VileChase , &States[S_VILE_RUN+0]), #define S_VILE_ATK (S_VILE_RUN+12) S_BRIGHT (VILE, 'G', 0, A_VileStart , &States[S_VILE_ATK+1]), S_BRIGHT (VILE, 'G', 10, A_FaceTarget , &States[S_VILE_ATK+2]), S_BRIGHT (VILE, 'H', 8, A_VileTarget , &States[S_VILE_ATK+3]), S_BRIGHT (VILE, 'I', 8, A_FaceTarget , &States[S_VILE_ATK+4]), S_BRIGHT (VILE, 'J', 8, A_FaceTarget , &States[S_VILE_ATK+5]), S_BRIGHT (VILE, 'K', 8, A_FaceTarget , &States[S_VILE_ATK+6]), S_BRIGHT (VILE, 'L', 8, A_FaceTarget , &States[S_VILE_ATK+7]), S_BRIGHT (VILE, 'M', 8, A_FaceTarget , &States[S_VILE_ATK+8]), S_BRIGHT (VILE, 'N', 8, A_FaceTarget , &States[S_VILE_ATK+9]), S_BRIGHT (VILE, 'O', 8, A_VileAttack , &States[S_VILE_ATK+10]), S_BRIGHT (VILE, 'P', 20, NULL , &States[S_VILE_RUN+0]), #define S_VILE_HEAL (S_VILE_ATK+11) S_BRIGHT (VILE, '[', 10, NULL , &States[S_VILE_HEAL+1]), S_BRIGHT (VILE, '\\', 10, NULL , &States[S_VILE_HEAL+2]), S_BRIGHT (VILE, ']', 10, NULL , &States[S_VILE_RUN+0]), #define S_VILE_PAIN (S_VILE_HEAL+3) S_NORMAL1 (VILE, 'Q', 5, NULL , &States[S_VILE_PAIN+1]), S_NORMAL1 (VILE, 'Q', 5, A_Pain , &States[S_VILE_RUN+0]), #define S_VILE_DIE (S_VILE_PAIN+2) S_NORMAL1 (VILE, 'Q', 7, NULL , &States[S_VILE_DIE+1]), S_NORMAL1 (VILE, 'R', 7, A_Scream , &States[S_VILE_DIE+2]), S_NORMAL1 (VILE, 'S', 7, A_NoBlocking , &States[S_VILE_DIE+3]), S_NORMAL1 (VILE, 'T', 7, NULL , &States[S_VILE_DIE+4]), S_NORMAL1 (VILE, 'U', 7, NULL , &States[S_VILE_DIE+5]), S_NORMAL1 (VILE, 'V', 7, NULL , &States[S_VILE_DIE+6]), S_NORMAL1 (VILE, 'W', 7, NULL , &States[S_VILE_DIE+7]), S_NORMAL1 (VILE, 'X', 5, NULL , &States[S_VILE_DIE+8]), S_NORMAL1 (VILE, 'Y', 5, NULL , &States[S_VILE_DIE+9]), S_NORMAL1 (VILE, 'Z', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (AStealthArchvile, Doom, 9051, 118) PROP_FlagsSet (MF_STEALTH) PROP_RenderStyle (STYLE_Translucent) PROP_Alpha (0) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AArchvileFire, Doom, -1, 98) PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL) PROP_RenderStyle (STYLE_Add) PROP_SpawnState (0) END_DEFAULTS FState AArchvileFire::States[] = { S_BRIGHT (FIRE, 'A', 2, A_StartFire , &States[1]), S_BRIGHT (FIRE, 'B', 2, A_Fire , &States[2]), S_BRIGHT (FIRE, 'A', 2, A_Fire , &States[3]), S_BRIGHT (FIRE, 'B', 2, A_Fire , &States[4]), S_BRIGHT (FIRE, 'C', 2, A_FireCrackle , &States[5]), S_BRIGHT (FIRE, 'B', 2, A_Fire , &States[6]), S_BRIGHT (FIRE, 'C', 2, A_Fire , &States[7]), S_BRIGHT (FIRE, 'B', 2, A_Fire , &States[8]), S_BRIGHT (FIRE, 'C', 2, A_Fire , &States[9]), S_BRIGHT (FIRE, 'D', 2, A_Fire , &States[10]), S_BRIGHT (FIRE, 'C', 2, A_Fire , &States[11]), S_BRIGHT (FIRE, 'D', 2, A_Fire , &States[12]), S_BRIGHT (FIRE, 'C', 2, A_Fire , &States[13]), S_BRIGHT (FIRE, 'D', 2, A_Fire , &States[14]), S_BRIGHT (FIRE, 'E', 2, A_Fire , &States[15]), S_BRIGHT (FIRE, 'D', 2, A_Fire , &States[16]), S_BRIGHT (FIRE, 'E', 2, A_Fire , &States[17]), S_BRIGHT (FIRE, 'D', 2, A_Fire , &States[18]), S_BRIGHT (FIRE, 'E', 2, A_FireCrackle , &States[19]), S_BRIGHT (FIRE, 'F', 2, A_Fire , &States[20]), S_BRIGHT (FIRE, 'E', 2, A_Fire , &States[21]), S_BRIGHT (FIRE, 'F', 2, A_Fire , &States[22]), S_BRIGHT (FIRE, 'E', 2, A_Fire , &States[23]), S_BRIGHT (FIRE, 'F', 2, A_Fire , &States[24]), S_BRIGHT (FIRE, 'G', 2, A_Fire , &States[25]), S_BRIGHT (FIRE, 'H', 2, A_Fire , &States[26]), S_BRIGHT (FIRE, 'G', 2, A_Fire , &States[27]), S_BRIGHT (FIRE, 'H', 2, A_Fire , &States[28]), S_BRIGHT (FIRE, 'G', 2, A_Fire , &States[29]), S_BRIGHT (FIRE, 'H', 2, A_Fire , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ABossBrain, Doom, 88, 0) PROP_SpawnHealth (250) PROP_MassLong (10000000) PROP_PainChance (255) PROP_Flags (MF_SOLID|MF_SHOOTABLE) PROP_SpawnState (S_BRAIN) PROP_PainState (S_BRAIN_PAIN) PROP_DeathState (S_BRAIN_DIE) PROP_PainSound ("brain/pain") PROP_DeathSound ("brain/death") END_DEFAULTS FState ABossBrain::States[] = { #define S_BRAINEXPLODE 0 S_BRIGHT (MISL, 'B', 10, NULL , &States[S_BRAINEXPLODE+1]), S_BRIGHT (MISL, 'C', 10, NULL , &States[S_BRAINEXPLODE+2]), S_BRIGHT (MISL, 'D', 10, A_BrainExplode , NULL), #define S_BRAIN (S_BRAINEXPLODE+3) S_NORMAL1 (BBRN, 'A', -1, NULL , NULL), #define S_BRAIN_PAIN (S_BRAIN+1) S_NORMAL1 (BBRN, 'B', 36, A_BrainPain , &States[S_BRAIN]), #define S_BRAIN_DIE (S_BRAIN_PAIN+1) S_NORMAL1 (BBRN, 'A', 100, A_BrainScream , &States[S_BRAIN_DIE+1]), S_NORMAL1 (BBRN, 'A', 10, NULL , &States[S_BRAIN_DIE+2]), S_NORMAL1 (BBRN, 'A', 10, NULL , &States[S_BRAIN_DIE+3]), S_NORMAL1 (BBRN, 'A', -1, A_BrainDie , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ABossEye, Doom, 89, 0) PROP_HeightFixed (32) PROP_Flags (MF_NOBLOCKMAP|MF_NOSECTOR) PROP_SpawnState (S_BRAINEYE) PROP_SeeState (S_BRAINEYESEE) END_DEFAULTS FState ABossEye::States[] = { #define S_BRAINEYE 0 S_NORMAL1 (SSWV, 'A', 10, A_Look , &States[S_BRAINEYE]), #define S_BRAINEYESEE (S_BRAINEYE+1) S_NORMAL1 (SSWV, 'A', 181, A_BrainAwake , &States[S_BRAINEYESEE+1]), S_NORMAL1 (SSWV, 'A', 150, A_BrainSpit , &States[S_BRAINEYESEE+1]) }; ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (ABossTarget, Doom, 87, 0) PROP_HeightFixed (32) PROP_Flags (MF_NOBLOCKMAP|MF_NOSECTOR) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ASpawnShot, Doom, -1, 0) PROP_RadiusFixed (6) PROP_HeightFixed (32) PROP_SpeedFixed (10) PROP_Damage (3) PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY|MF_NOCLIP) PROP_Flags2 (MF2_NOTELEPORT) PROP_SpawnState (0) PROP_SeeSound ("brain/spit") PROP_DeathSound ("brain/spawn") END_DEFAULTS FState ASpawnShot::States[] = { S_BRIGHT (BOSF, 'A', 3, A_SpawnSound , &States[1]), S_BRIGHT (BOSF, 'B', 3, A_SpawnFly , &States[2]), S_BRIGHT (BOSF, 'C', 3, A_SpawnFly , &States[3]), S_BRIGHT (BOSF, 'D', 3, A_SpawnFly , &States[0]) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ASpawnFire, Doom, -1, 0) PROP_HeightFixed (78) PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY) PROP_RenderStyle (STYLE_Add) PROP_SpawnState (0) END_DEFAULTS FState ASpawnFire::States[] = { S_BRIGHT (FIRE, 'A', 4, A_Fire , &States[1]), S_BRIGHT (FIRE, 'B', 4, A_Fire , &States[2]), S_BRIGHT (FIRE, 'C', 4, A_Fire , &States[3]), S_BRIGHT (FIRE, 'D', 4, A_Fire , &States[4]), S_BRIGHT (FIRE, 'E', 4, A_Fire , &States[5]), S_BRIGHT (FIRE, 'F', 4, A_Fire , &States[6]), S_BRIGHT (FIRE, 'G', 4, A_Fire , &States[7]), S_BRIGHT (FIRE, 'H', 4, A_Fire , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ABaronOfHell, Doom, 3003, 3) PROP_SpawnHealth (1000) PROP_RadiusFixed (24) PROP_HeightFixed (64) PROP_Mass (1000) PROP_SpeedFixed (8) PROP_PainChance (50) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_FLOORCLIP) PROP_Flags4 (MF4_BOSSDEATH) PROP_SpawnState (S_BOSS_STND) PROP_SeeState (S_BOSS_RUN) PROP_PainState (S_BOSS_PAIN) PROP_MeleeState (S_BOSS_ATK) PROP_MissileState (S_BOSS_ATK) PROP_DeathState (S_BOSS_DIE) PROP_RaiseState (S_BOSS_RAISE) PROP_SeeSound ("baron/sight") PROP_PainSound ("baron/pain") PROP_DeathSound ("baron/death") PROP_ActiveSound ("baron/active") END_DEFAULTS FState ABaronOfHell::States[] = { #define S_BOSS_STND 0 S_NORMAL1 (BOSS, 'A', 10, A_Look , &States[S_BOSS_STND+1]), S_NORMAL1 (BOSS, 'B', 10, A_Look , &States[S_BOSS_STND]), #define S_BOSS_RUN (S_BOSS_STND+2) S_NORMAL1 (BOSS, 'A', 3, A_Chase , &States[S_BOSS_RUN+1]), S_NORMAL1 (BOSS, 'A', 3, A_Chase , &States[S_BOSS_RUN+2]), S_NORMAL1 (BOSS, 'B', 3, A_Chase , &States[S_BOSS_RUN+3]), S_NORMAL1 (BOSS, 'B', 3, A_Chase , &States[S_BOSS_RUN+4]), S_NORMAL1 (BOSS, 'C', 3, A_Chase , &States[S_BOSS_RUN+5]), S_NORMAL1 (BOSS, 'C', 3, A_Chase , &States[S_BOSS_RUN+6]), S_NORMAL1 (BOSS, 'D', 3, A_Chase , &States[S_BOSS_RUN+7]), S_NORMAL1 (BOSS, 'D', 3, A_Chase , &States[S_BOSS_RUN+0]), #define S_BOSS_ATK (S_BOSS_RUN+8) S_NORMAL1 (BOSS, 'E', 8, A_FaceTarget , &States[S_BOSS_ATK+1]), S_NORMAL1 (BOSS, 'F', 8, A_FaceTarget , &States[S_BOSS_ATK+2]), S_NORMAL1 (BOSS, 'G', 8, A_BruisAttack , &States[S_BOSS_RUN+0]), #define S_BOSS_PAIN (S_BOSS_ATK+3) S_NORMAL1 (BOSS, 'H', 2, NULL , &States[S_BOSS_PAIN+1]), S_NORMAL1 (BOSS, 'H', 2, A_Pain , &States[S_BOSS_RUN+0]), #define S_BOSS_DIE (S_BOSS_PAIN+2) S_NORMAL1 (BOSS, 'I', 8, NULL , &States[S_BOSS_DIE+1]), S_NORMAL1 (BOSS, 'J', 8, A_Scream , &States[S_BOSS_DIE+2]), S_NORMAL1 (BOSS, 'K', 8, NULL , &States[S_BOSS_DIE+3]), S_NORMAL1 (BOSS, 'L', 8, A_NoBlocking , &States[S_BOSS_DIE+4]), S_NORMAL1 (BOSS, 'M', 8, NULL , &States[S_BOSS_DIE+5]), S_NORMAL1 (BOSS, 'N', 8, NULL , &States[S_BOSS_DIE+6]), S_NORMAL1 (BOSS, 'O', -1, A_BossDeath , NULL), #define S_BOSS_RAISE (S_BOSS_DIE+7) S_NORMAL1 (BOSS, 'O', 8, NULL , &States[S_BOSS_RAISE+1]), S_NORMAL1 (BOSS, 'N', 8, NULL , &States[S_BOSS_RAISE+2]), S_NORMAL1 (BOSS, 'M', 8, NULL , &States[S_BOSS_RAISE+3]), S_NORMAL1 (BOSS, 'L', 8, NULL , &States[S_BOSS_RAISE+4]), S_NORMAL1 (BOSS, 'K', 8, NULL , &States[S_BOSS_RAISE+5]), S_NORMAL1 (BOSS, 'J', 8, NULL , &States[S_BOSS_RAISE+6]), S_NORMAL1 (BOSS, 'I', 8, NULL , &States[S_BOSS_RUN+0]) }; ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (AStealthBaron, Doom, 9052, 100) PROP_FlagsSet (MF_STEALTH) PROP_RenderStyle (STYLE_Translucent) PROP_Alpha (0) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ABaronBall, Doom, -1, 154) PROP_RadiusFixed (6) PROP_HeightFixed (16) PROP_SpeedFixed (15) PROP_Damage (8) PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY) PROP_Flags2 (MF2_PCROSS|MF2_IMPACT|MF2_NOTELEPORT) PROP_RenderStyle (STYLE_Add) PROP_SpawnState (S_BRBALL) PROP_DeathState (S_BRBALLX) PROP_SeeSound ("baron/attack") PROP_DeathSound ("baron/shotx") END_DEFAULTS FState ABaronBall::States[] = { #define S_BRBALL 0 S_BRIGHT (BAL7, 'A', 4, NULL , &States[S_BRBALL+1]), S_BRIGHT (BAL7, 'B', 4, NULL , &States[S_BRBALL+0]), #define S_BRBALLX (S_BRBALL+2) S_BRIGHT (BAL7, 'C', 6, NULL , &States[S_BRBALLX+1]), S_BRIGHT (BAL7, 'D', 6, NULL , &States[S_BRBALLX+2]), S_BRIGHT (BAL7, 'E', 6, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AHellKnight, Doom, 69, 113) PROP_SpawnHealth (500) PROP_RadiusFixed (24) PROP_HeightFixed (64) PROP_Mass (1000) PROP_SpeedFixed (8) PROP_PainChance (50) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL) PROP_Flags4 (MF4_BOSSDEATH) PROP_SpawnState (S_BOS2_STND) PROP_SeeState (S_BOS2_RUN) PROP_PainState (S_BOS2_PAIN) PROP_MeleeState (S_BOS2_ATK) PROP_MissileState (S_BOS2_ATK) PROP_DeathState (S_BOS2_DIE) PROP_RaiseState (S_BOS2_RAISE) PROP_SeeSound ("knight/sight") PROP_PainSound ("knight/pain") PROP_DeathSound ("knight/death") PROP_ActiveSound ("knight/active") END_DEFAULTS FState AHellKnight::States[] = { #define S_BOS2_STND 0 S_NORMAL1 (BOS2, 'A', 10, A_Look , &States[S_BOS2_STND+1]), S_NORMAL1 (BOS2, 'B', 10, A_Look , &States[S_BOS2_STND]), #define S_BOS2_RUN (S_BOS2_STND+2) S_NORMAL1 (BOS2, 'A', 3, A_Chase , &States[S_BOS2_RUN+1]), S_NORMAL1 (BOS2, 'A', 3, A_Chase , &States[S_BOS2_RUN+2]), S_NORMAL1 (BOS2, 'B', 3, A_Chase , &States[S_BOS2_RUN+3]), S_NORMAL1 (BOS2, 'B', 3, A_Chase , &States[S_BOS2_RUN+4]), S_NORMAL1 (BOS2, 'C', 3, A_Chase , &States[S_BOS2_RUN+5]), S_NORMAL1 (BOS2, 'C', 3, A_Chase , &States[S_BOS2_RUN+6]), S_NORMAL1 (BOS2, 'D', 3, A_Chase , &States[S_BOS2_RUN+7]), S_NORMAL1 (BOS2, 'D', 3, A_Chase , &States[S_BOS2_RUN+0]), #define S_BOS2_ATK (S_BOS2_RUN+8) S_NORMAL1 (BOS2, 'E', 8, A_FaceTarget , &States[S_BOS2_ATK+1]), S_NORMAL1 (BOS2, 'F', 8, A_FaceTarget , &States[S_BOS2_ATK+2]), S_NORMAL1 (BOS2, 'G', 8, A_BruisAttack , &States[S_BOS2_RUN+0]), #define S_BOS2_PAIN (S_BOS2_ATK+3) S_NORMAL1 (BOS2, 'H', 2, NULL , &States[S_BOS2_PAIN+1]), S_NORMAL1 (BOS2, 'H', 2, A_Pain , &States[S_BOS2_RUN+0]), #define S_BOS2_DIE (S_BOS2_PAIN+2) S_NORMAL1 (BOS2, 'I', 8, NULL , &States[S_BOS2_DIE+1]), S_NORMAL1 (BOS2, 'J', 8, A_Scream , &States[S_BOS2_DIE+2]), S_NORMAL1 (BOS2, 'K', 8, NULL , &States[S_BOS2_DIE+3]), S_NORMAL1 (BOS2, 'L', 8, A_NoBlocking , &States[S_BOS2_DIE+4]), S_NORMAL1 (BOS2, 'M', 8, NULL , &States[S_BOS2_DIE+5]), S_NORMAL1 (BOS2, 'N', 8, NULL , &States[S_BOS2_DIE+6]), S_NORMAL1 (BOS2, 'O', -1, NULL , NULL), #define S_BOS2_RAISE (S_BOS2_DIE+7) S_NORMAL1 (BOS2, 'O', 8, NULL , &States[S_BOS2_RAISE+1]), S_NORMAL1 (BOS2, 'N', 8, NULL , &States[S_BOS2_RAISE+2]), S_NORMAL1 (BOS2, 'M', 8, NULL , &States[S_BOS2_RAISE+3]), S_NORMAL1 (BOS2, 'L', 8, NULL , &States[S_BOS2_RAISE+4]), S_NORMAL1 (BOS2, 'K', 8, NULL , &States[S_BOS2_RAISE+5]), S_NORMAL1 (BOS2, 'J', 8, NULL , &States[S_BOS2_RAISE+6]), S_NORMAL1 (BOS2, 'I', 8, NULL , &States[S_BOS2_RUN+0]) }; ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (AStealthHellKnight, Doom, 9056, 101) PROP_FlagsSet (MF_STEALTH) PROP_Alpha (0) PROP_RenderStyle (STYLE_Translucent) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ACacodemon, Doom, 3005, 19) PROP_SpawnHealth (400) PROP_RadiusFixed (31) PROP_HeightFixed (56) PROP_Mass (400) PROP_SpeedFixed (8) PROP_PainChance (128) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_FLOAT|MF_NOGRAVITY|MF_COUNTKILL) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL) PROP_SpawnState (S_HEAD_STND) PROP_SeeState (S_HEAD_RUN) PROP_PainState (S_HEAD_PAIN) PROP_MissileState (S_HEAD_ATK) PROP_DeathState (S_HEAD_DIE) PROP_RaiseState (S_HEAD_RAISE) PROP_SeeSound ("caco/sight") PROP_PainSound ("caco/pain") PROP_DeathSound ("caco/death") PROP_ActiveSound ("caco/active") PROP_AttackSound ("caco/melee") END_DEFAULTS FState ACacodemon::States[] = { #define S_HEAD_STND 0 S_NORMAL1 (HEAD, 'A', 10, A_Look , &States[S_HEAD_STND]), #define S_HEAD_RUN (S_HEAD_STND+1) S_NORMAL1 (HEAD, 'A', 3, A_Chase , &States[S_HEAD_RUN+0]), #define S_HEAD_ATK (S_HEAD_RUN+1) S_NORMAL1 (HEAD, 'B', 5, A_FaceTarget , &States[S_HEAD_ATK+1]), S_NORMAL1 (HEAD, 'C', 5, A_FaceTarget , &States[S_HEAD_ATK+2]), S_BRIGHT (HEAD, 'D', 5, A_HeadAttack , &States[S_HEAD_RUN+0]), #define S_HEAD_PAIN (S_HEAD_ATK+3) S_NORMAL1 (HEAD, 'E', 3, NULL , &States[S_HEAD_PAIN+1]), S_NORMAL1 (HEAD, 'E', 3, A_Pain , &States[S_HEAD_PAIN+2]), S_NORMAL1 (HEAD, 'F', 6, NULL , &States[S_HEAD_RUN+0]), #define S_HEAD_DIE (S_HEAD_PAIN+3) S_NORMAL1 (HEAD, 'G', 8, NULL , &States[S_HEAD_DIE+1]), S_NORMAL1 (HEAD, 'H', 8, A_Scream , &States[S_HEAD_DIE+2]), S_NORMAL1 (HEAD, 'I', 8, NULL , &States[S_HEAD_DIE+3]), S_NORMAL1 (HEAD, 'J', 8, NULL , &States[S_HEAD_DIE+4]), S_NORMAL1 (HEAD, 'K', 8, A_NoBlocking , &States[S_HEAD_DIE+5]), S_NORMAL1 (HEAD, 'L', -1, NULL , NULL), #define S_HEAD_RAISE (S_HEAD_DIE+6) S_NORMAL1 (HEAD, 'L', 8, NULL , &States[S_HEAD_RAISE+1]), S_NORMAL1 (HEAD, 'K', 8, NULL , &States[S_HEAD_RAISE+2]), S_NORMAL1 (HEAD, 'J', 8, NULL , &States[S_HEAD_RAISE+3]), S_NORMAL1 (HEAD, 'I', 8, NULL , &States[S_HEAD_RAISE+4]), S_NORMAL1 (HEAD, 'H', 8, NULL , &States[S_HEAD_RAISE+5]), S_NORMAL1 (HEAD, 'G', 8, NULL , &States[S_HEAD_RUN+0]) }; ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (AStealthCacodemon, Doom, 9053, 119) PROP_FlagsSet (MF_STEALTH) PROP_RenderStyle (STYLE_Translucent) PROP_Alpha (0) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ACacodemonBall, Doom, -1, 126) PROP_RadiusFixed (6) PROP_HeightFixed (8) PROP_SpeedFixed (10) PROP_Damage (5) PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY) PROP_Flags2 (MF2_PCROSS|MF2_IMPACT|MF2_NOTELEPORT) PROP_RenderStyle (STYLE_Add) PROP_SpawnState (S_RBALL) PROP_DeathState (S_RBALLX) PROP_SeeSound ("caco/attack") PROP_DeathSound ("caco/shotx") END_DEFAULTS FState ACacodemonBall::States[] = { #define S_RBALL 0 S_BRIGHT (BAL2, 'A', 4, NULL , &States[S_RBALL+1]), S_BRIGHT (BAL2, 'B', 4, NULL , &States[S_RBALL+0]), #define S_RBALLX (S_RBALL+2) S_BRIGHT (BAL2, 'C', 6, NULL , &States[S_RBALLX+1]), S_BRIGHT (BAL2, 'D', 6, NULL , &States[S_RBALLX+2]), S_BRIGHT (BAL2, 'E', 6, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (ADeadCacodemon, Doom, 22, 0) PROP_SKIP_SUPER PROP_SpawnState (S_HEAD_DIE+5) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ACyberdemon, Doom, 16, 114) PROP_SpawnHealth (4000) PROP_RadiusFixed (40) PROP_HeightFixed (110) PROP_Mass (1000) PROP_SpeedFixed (16) PROP_PainChance (20) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_BOSS|MF2_FLOORCLIP) PROP_Flags3 (MF3_NORADIUSDMG|MF3_DONTMORPH) PROP_Flags4 (MF4_BOSSDEATH) PROP_SpawnState (S_CYBER_STND) PROP_SeeState (S_CYBER_RUN) PROP_PainState (S_CYBER_PAIN) PROP_MissileState (S_CYBER_ATK) PROP_DeathState (S_CYBER_DIE) PROP_SeeSound ("cyber/sight") PROP_PainSound ("cyber/pain") PROP_DeathSound ("cyber/death") PROP_ActiveSound ("cyber/active") END_DEFAULTS FState ACyberdemon::States[] = { #define S_CYBER_STND 0 S_NORMAL1 (CYBR, 'A', 10, A_Look , &States[S_CYBER_STND+1]), S_NORMAL1 (CYBR, 'B', 10, A_Look , &States[S_CYBER_STND]), #define S_CYBER_RUN (S_CYBER_STND+2) S_NORMAL1 (CYBR, 'A', 3, A_Hoof , &States[S_CYBER_RUN+1]), S_NORMAL1 (CYBR, 'A', 3, A_Chase , &States[S_CYBER_RUN+2]), S_NORMAL1 (CYBR, 'B', 3, A_Chase , &States[S_CYBER_RUN+3]), S_NORMAL1 (CYBR, 'B', 3, A_Chase , &States[S_CYBER_RUN+4]), S_NORMAL1 (CYBR, 'C', 3, A_Chase , &States[S_CYBER_RUN+5]), S_NORMAL1 (CYBR, 'C', 3, A_Chase , &States[S_CYBER_RUN+6]), S_NORMAL1 (CYBR, 'D', 3, A_Metal , &States[S_CYBER_RUN+7]), S_NORMAL1 (CYBR, 'D', 3, A_Chase , &States[S_CYBER_RUN+0]), #define S_CYBER_ATK (S_CYBER_RUN+8) S_NORMAL1 (CYBR, 'E', 6, A_FaceTarget , &States[S_CYBER_ATK+1]), S_NORMAL1 (CYBR, 'F', 12, A_CyberAttack , &States[S_CYBER_ATK+2]), S_NORMAL1 (CYBR, 'E', 12, A_FaceTarget , &States[S_CYBER_ATK+3]), S_NORMAL1 (CYBR, 'F', 12, A_CyberAttack , &States[S_CYBER_ATK+4]), S_NORMAL1 (CYBR, 'E', 12, A_FaceTarget , &States[S_CYBER_ATK+5]), S_NORMAL1 (CYBR, 'F', 12, A_CyberAttack , &States[S_CYBER_RUN+0]), #define S_CYBER_PAIN (S_CYBER_ATK+6) S_NORMAL1 (CYBR, 'G', 10, A_Pain , &States[S_CYBER_RUN+0]), #define S_CYBER_DIE (S_CYBER_PAIN+1) S_NORMAL1 (CYBR, 'H', 10, NULL , &States[S_CYBER_DIE+1]), S_NORMAL1 (CYBR, 'I', 10, A_Scream , &States[S_CYBER_DIE+2]), S_NORMAL1 (CYBR, 'J', 10, NULL , &States[S_CYBER_DIE+3]), S_NORMAL1 (CYBR, 'K', 10, NULL , &States[S_CYBER_DIE+4]), S_NORMAL1 (CYBR, 'L', 10, NULL , &States[S_CYBER_DIE+5]), S_NORMAL1 (CYBR, 'M', 10, A_NoBlocking , &States[S_CYBER_DIE+6]), S_NORMAL1 (CYBR, 'N', 10, NULL , &States[S_CYBER_DIE+7]), S_NORMAL1 (CYBR, 'O', 10, NULL , &States[S_CYBER_DIE+8]), S_NORMAL1 (CYBR, 'P', 30, NULL , &States[S_CYBER_DIE+9]), S_NORMAL1 (CYBR, 'P', -1, A_BossDeath , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ADemon, Doom, 3002, 8) PROP_SpawnHealth (150) PROP_PainChance (180) PROP_SpeedFixed (10) PROP_RadiusFixed (30) PROP_HeightFixed (56) PROP_Mass (400) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_FLOORCLIP) PROP_SpawnState (S_SARG_STND) PROP_SeeState (S_SARG_RUN) PROP_PainState (S_SARG_PAIN) PROP_MeleeState (S_SARG_ATK) PROP_DeathState (S_SARG_DIE) PROP_RaiseState (S_SARG_RAISE) PROP_SeeSound ("demon/sight") PROP_AttackSound ("demon/melee") PROP_PainSound ("demon/pain") PROP_DeathSound ("demon/death") PROP_ActiveSound ("demon/active") END_DEFAULTS FState ADemon::States[] = { #define S_SARG_STND 0 S_NORMAL1 (SARG, 'A', 10, A_Look , &States[S_SARG_STND+1]), S_NORMAL1 (SARG, 'B', 10, A_Look , &States[S_SARG_STND]), #define S_SARG_RUN (S_SARG_STND+2) S_NORMAL1 (SARG, 'A', 2, A_Chase , &States[S_SARG_RUN+1]), S_NORMAL1 (SARG, 'A', 2, A_Chase , &States[S_SARG_RUN+2]), S_NORMAL1 (SARG, 'B', 2, A_Chase , &States[S_SARG_RUN+3]), S_NORMAL1 (SARG, 'B', 2, A_Chase , &States[S_SARG_RUN+4]), S_NORMAL1 (SARG, 'C', 2, A_Chase , &States[S_SARG_RUN+5]), S_NORMAL1 (SARG, 'C', 2, A_Chase , &States[S_SARG_RUN+6]), S_NORMAL1 (SARG, 'D', 2, A_Chase , &States[S_SARG_RUN+7]), S_NORMAL1 (SARG, 'D', 2, A_Chase , &States[S_SARG_RUN+0]), #define S_SARG_ATK (S_SARG_RUN+8) S_NORMAL1 (SARG, 'E', 8, A_FaceTarget , &States[S_SARG_ATK+1]), S_NORMAL1 (SARG, 'F', 8, A_FaceTarget , &States[S_SARG_ATK+2]), S_NORMAL1 (SARG, 'G', 8, A_SargAttack , &States[S_SARG_RUN+0]), #define S_SARG_PAIN (S_SARG_ATK+3) S_NORMAL1 (SARG, 'H', 2, NULL , &States[S_SARG_PAIN+1]), S_NORMAL1 (SARG, 'H', 2, A_Pain , &States[S_SARG_RUN+0]), #define S_SARG_DIE (S_SARG_PAIN+2) S_NORMAL1 (SARG, 'I', 8, NULL , &States[S_SARG_DIE+1]), S_NORMAL1 (SARG, 'J', 8, A_Scream , &States[S_SARG_DIE+2]), S_NORMAL1 (SARG, 'K', 4, NULL , &States[S_SARG_DIE+3]), S_NORMAL1 (SARG, 'L', 4, A_NoBlocking , &States[S_SARG_DIE+4]), S_NORMAL1 (SARG, 'M', 4, NULL , &States[S_SARG_DIE+5]), S_NORMAL1 (SARG, 'N', -1, NULL , NULL), #define S_SARG_RAISE (S_SARG_DIE+6) S_NORMAL1 (SARG, 'N', 5, NULL , &States[S_SARG_RAISE+1]), S_NORMAL1 (SARG, 'M', 5, NULL , &States[S_SARG_RAISE+2]), S_NORMAL1 (SARG, 'L', 5, NULL , &States[S_SARG_RAISE+3]), S_NORMAL1 (SARG, 'K', 5, NULL , &States[S_SARG_RAISE+4]), S_NORMAL1 (SARG, 'J', 5, NULL , &States[S_SARG_RAISE+5]), S_NORMAL1 (SARG, 'I', 5, NULL , &States[S_SARG_RUN+0]) }; ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (AStealthDemon, Doom, 9055, 121) PROP_FlagsSet (MF_STEALTH) PROP_Alpha (0) PROP_RenderStyle (STYLE_Translucent) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (ASpectre, Doom, 58, 9) PROP_FlagsSet (MF_SHADOW) PROP_RenderStyle (STYLE_Fuzzy) PROP_Alpha (FRACUNIT/5) PROP_SeeSound ("spectre/sight") PROP_AttackSound ("spectre/melee") PROP_PainSound ("spectre/pain") PROP_DeathSound ("spectre/death") PROP_ActiveSound ("spectre/active") END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (ADeadDemon, Doom, 21, 0) PROP_SKIP_SUPER PROP_SpawnState (S_SARG_DIE+5) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AArmorBonus, Doom, 2015, 22) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL|MF_COUNTITEM) PROP_SpawnState (0) END_DEFAULTS FState AArmorBonus::States[] = { S_NORMAL1 (BON2, 'A', 6, NULL , &States[1]), S_NORMAL1 (BON2, 'B', 6, NULL , &States[2]), S_NORMAL1 (BON2, 'C', 6, NULL , &States[3]), S_NORMAL1 (BON2, 'D', 6, NULL , &States[4]), S_NORMAL1 (BON2, 'C', 6, NULL , &States[5]), S_NORMAL1 (BON2, 'B', 6, NULL , &States[0]) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AGreenArmor, Doom, 2018, 68) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL) PROP_SpawnState (0) END_DEFAULTS FState AGreenArmor::States[] = { S_NORMAL1(ARM1, 'A', 6, NULL , &States[1]), S_BRIGHT (ARM1, 'B', 7, NULL , &States[0]) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ABlueArmor, Doom, 2019, 69) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL) PROP_SpawnState (0) END_DEFAULTS FState ABlueArmor::States[] = { S_NORMAL1(ARM2, 'A', 6, NULL , &States[1]), S_BRIGHT (ARM2, 'B', 6, NULL , &States[0]) }; ------------------------------------------------------------------------ // Invulnerability Sphere IMPLEMENT_ACTOR (AInvulnerabilitySphere, Doom, 2022, 133) PROP_Flags (MF_SPECIAL|MF_COUNTITEM) PROP_SpawnState (0) END_DEFAULTS FState AInvulnerabilitySphere::States[] = { S_BRIGHT (PINV, 'A', 6, NULL , &States[1]), S_BRIGHT (PINV, 'B', 6, NULL , &States[2]), S_BRIGHT (PINV, 'C', 6, NULL , &States[3]), S_BRIGHT (PINV, 'D', 6, NULL , &States[0]) }; ------------------------------------------------------------------------ // Soulsphere IMPLEMENT_ACTOR (ASoulsphere, Doom, 2013, 25) PROP_Flags (MF_SPECIAL|MF_COUNTITEM) PROP_SpawnState (0) END_DEFAULTS FState ASoulsphere::States[] = { S_BRIGHT (SOUL, 'A', 6, NULL , &States[1]), S_BRIGHT (SOUL, 'B', 6, NULL , &States[2]), S_BRIGHT (SOUL, 'C', 6, NULL , &States[3]), S_BRIGHT (SOUL, 'D', 6, NULL , &States[4]), S_BRIGHT (SOUL, 'C', 6, NULL , &States[5]), S_BRIGHT (SOUL, 'B', 6, NULL , &States[0]) }; ------------------------------------------------------------------------ // Mega sphere IMPLEMENT_ACTOR (AMegasphere, Doom, 83, 132) PROP_Flags (MF_SPECIAL|MF_COUNTITEM) PROP_SpawnState (0) END_DEFAULTS FState AMegasphere::States[] = { S_BRIGHT (MEGA, 'A', 6, NULL , &States[1]), S_BRIGHT (MEGA, 'B', 6, NULL , &States[2]), S_BRIGHT (MEGA, 'C', 6, NULL , &States[3]), S_BRIGHT (MEGA, 'D', 6, NULL , &States[0]) }; ------------------------------------------------------------------------ // Berserk IMPLEMENT_ACTOR (ABerserk, Doom, 2023, 134) PROP_Flags (MF_SPECIAL|MF_COUNTITEM) PROP_SpawnState (0) END_DEFAULTS FState ABerserk::States[] = { S_BRIGHT (PSTR, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ // Invisibility IMPLEMENT_ACTOR (ABlurSphere, Doom, 2024, 135) PROP_Flags (MF_SPECIAL|MF_COUNTITEM) PROP_RenderStyle (STYLE_Translucent) PROP_SpawnState (0) END_DEFAULTS FState ABlurSphere::States[] = { S_BRIGHT (PINS, 'A', 6, NULL , &States[1]), S_BRIGHT (PINS, 'B', 6, NULL , &States[2]), S_BRIGHT (PINS, 'C', 6, NULL , &States[3]), S_BRIGHT (PINS, 'D', 6, NULL , &States[0]) }; ------------------------------------------------------------------------ // Radiation suit (aka iron feet) IMPLEMENT_ACTOR (ARadSuit, Doom, 2025, 136) PROP_HeightFixed (46) PROP_Flags (MF_SPECIAL) PROP_SpawnState (0) END_DEFAULTS FState ARadSuit::States[] = { S_BRIGHT (SUIT, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ // infrared IMPLEMENT_ACTOR (AInfrared, Doom, 2045, 138) PROP_Flags (MF_SPECIAL|MF_COUNTITEM) PROP_SpawnState (0) END_DEFAULTS FState AInfrared::States[] = { S_BRIGHT (PVIS, 'A', 6, NULL , &States[1]), S_NORMAL1 (PVIS, 'B', 6, NULL , &States[0]) }; ------------------------------------------------------------------------ // Allmap IMPLEMENT_ACTOR (AAllmap, Doom, 2026, 137) PROP_Flags (MF_SPECIAL|MF_COUNTITEM) PROP_SpawnState (0) PROP_PickupSound ("misc/p_pkup") END_DEFAULTS FState AAllmap::States[] = { S_BRIGHT (PMAP, 'A', 6, NULL , &States[1]), S_BRIGHT (PMAP, 'B', 6, NULL , &States[2]), S_BRIGHT (PMAP, 'C', 6, NULL , &States[3]), S_BRIGHT (PMAP, 'D', 6, NULL , &States[4]), S_BRIGHT (PMAP, 'C', 6, NULL , &States[5]), S_BRIGHT (PMAP, 'B', 6, NULL , &States[0]) }; ------------------------------------------------------------------------ // Backpack IMPLEMENT_ACTOR (ABackpack, Doom, 8, 144) PROP_HeightFixed (26) PROP_Flags (MF_SPECIAL) PROP_SpawnState (0) END_DEFAULTS FState ABackpack::States[] = { S_NORMAL1 (BPAK, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ // Evil sceptre (Doom beta) FState AEvilSceptre::States[] = { S_NORMAL1 (BON3, 'A', 6, NULL , &States[0]), }; IMPLEMENT_ACTOR (AEvilSceptre, Doom, 2016, 0) PROP_HeightFixed(10) PROP_Flags(MF_SPECIAL|MF_COUNTITEM) PROP_Inventory_Amount(1) PROP_Inventory_FlagsSet(IF_ALWAYSPICKUP) PROP_SpawnState(0) END_DEFAULTS ------------------------------------------------------------- // Unholy Bible (Doom beta) FState AUnholyBible::States[] = { S_NORMAL1 (BON4, 'A', 6, NULL , &States[0]), }; IMPLEMENT_ACTOR (AUnholyBible, Doom, 2017, 0) PROP_HeightFixed(10) PROP_Flags(MF_SPECIAL|MF_COUNTITEM) PROP_Inventory_Amount(1) PROP_Inventory_FlagsSet(IF_ALWAYSPICKUP) PROP_SpawnState(0) END_DEFAULTS ------------------------------------------------------------------------ // Health bonus IMPLEMENT_ACTOR (AHealthBonus, Doom, 2014, 152) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL|MF_COUNTITEM) PROP_SpawnState (0) END_DEFAULTS FState AHealthBonus::States[] = { S_NORMAL1 (BON1, 'A', 6, NULL , &States[1]), S_NORMAL1 (BON1, 'B', 6, NULL , &States[2]), S_NORMAL1 (BON1, 'C', 6, NULL , &States[3]), S_NORMAL1 (BON1, 'D', 6, NULL , &States[4]), S_NORMAL1 (BON1, 'C', 6, NULL , &States[5]), S_NORMAL1 (BON1, 'B', 6, NULL , &States[0]) }; ------------------------------------------------------------------------ // Stimpack IMPLEMENT_ACTOR (AStimpack, Doom, 2011, 23) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL) PROP_SpawnState (0) END_DEFAULTS FState AStimpack::States[] = { S_NORMAL1 (STIM, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ // Medikit IMPLEMENT_ACTOR (AMedikit, Doom, 2012, 24) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL) PROP_SpawnState (0) END_DEFAULTS FState AMedikit::States[] = { S_NORMAL1 (MEDI, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ADoomImp, Doom, 3001, 5) PROP_SpawnHealth (60) PROP_RadiusFixed (20) PROP_HeightFixed (56) PROP_Mass (100) PROP_SpeedFixed (8) PROP_PainChance (200) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_FLOORCLIP) PROP_SpawnState (S_TROO_STND) PROP_SeeState (S_TROO_RUN) PROP_PainState (S_TROO_PAIN) PROP_MeleeState (S_TROO_ATK) PROP_MissileState (S_TROO_ATK) PROP_DeathState (S_TROO_DIE) PROP_XDeathState (S_TROO_XDIE) PROP_RaiseState (S_TROO_RAISE) PROP_SeeSound ("imp/sight") PROP_PainSound ("imp/pain") PROP_DeathSound ("imp/death") PROP_ActiveSound ("imp/active") END_DEFAULTS FState ADoomImp::States[] = { #define S_TROO_STND 0 S_NORMAL1 (TROO, 'A', 10, A_Look , &States[S_TROO_STND+1]), S_NORMAL1 (TROO, 'B', 10, A_Look , &States[S_TROO_STND]), #define S_TROO_RUN (S_TROO_STND+2) S_NORMAL1 (TROO, 'A', 3, A_Chase , &States[S_TROO_RUN+1]), S_NORMAL1 (TROO, 'A', 3, A_Chase , &States[S_TROO_RUN+2]), S_NORMAL1 (TROO, 'B', 3, A_Chase , &States[S_TROO_RUN+3]), S_NORMAL1 (TROO, 'B', 3, A_Chase , &States[S_TROO_RUN+4]), S_NORMAL1 (TROO, 'C', 3, A_Chase , &States[S_TROO_RUN+5]), S_NORMAL1 (TROO, 'C', 3, A_Chase , &States[S_TROO_RUN+6]), S_NORMAL1 (TROO, 'D', 3, A_Chase , &States[S_TROO_RUN+7]), S_NORMAL1 (TROO, 'D', 3, A_Chase , &States[S_TROO_RUN+0]), #define S_TROO_ATK (S_TROO_RUN+8) S_NORMAL1 (TROO, 'E', 8, A_FaceTarget , &States[S_TROO_ATK+1]), S_NORMAL1 (TROO, 'F', 8, A_FaceTarget , &States[S_TROO_ATK+2]), S_NORMAL1 (TROO, 'G', 6, A_TroopAttack , &States[S_TROO_RUN+0]), #define S_TROO_PAIN (S_TROO_ATK+3) S_NORMAL1 (TROO, 'H', 2, NULL , &States[S_TROO_PAIN+1]), S_NORMAL1 (TROO, 'H', 2, A_Pain , &States[S_TROO_RUN+0]), #define S_TROO_DIE (S_TROO_PAIN+2) S_NORMAL1 (TROO, 'I', 8, NULL , &States[S_TROO_DIE+1]), S_NORMAL1 (TROO, 'J', 8, A_Scream , &States[S_TROO_DIE+2]), S_NORMAL1 (TROO, 'K', 6, NULL , &States[S_TROO_DIE+3]), S_NORMAL1 (TROO, 'L', 6, A_NoBlocking , &States[S_TROO_DIE+4]), S_NORMAL1 (TROO, 'M', -1, NULL , NULL), #define S_TROO_XDIE (S_TROO_DIE+5) S_NORMAL1 (TROO, 'N', 5, NULL , &States[S_TROO_XDIE+1]), S_NORMAL1 (TROO, 'O', 5, A_XScream , &States[S_TROO_XDIE+2]), S_NORMAL1 (TROO, 'P', 5, NULL , &States[S_TROO_XDIE+3]), S_NORMAL1 (TROO, 'Q', 5, A_NoBlocking , &States[S_TROO_XDIE+4]), S_NORMAL1 (TROO, 'R', 5, NULL , &States[S_TROO_XDIE+5]), S_NORMAL1 (TROO, 'S', 5, NULL , &States[S_TROO_XDIE+6]), S_NORMAL1 (TROO, 'T', 5, NULL , &States[S_TROO_XDIE+7]), S_NORMAL1 (TROO, 'U', -1, NULL , NULL), #define S_TROO_RAISE (S_TROO_XDIE+8) S_NORMAL1 (TROO, 'M', 8, NULL , &States[S_TROO_RAISE+1]), S_NORMAL1 (TROO, 'L', 8, NULL , &States[S_TROO_RAISE+2]), S_NORMAL1 (TROO, 'K', 6, NULL , &States[S_TROO_RAISE+3]), S_NORMAL1 (TROO, 'J', 6, NULL , &States[S_TROO_RAISE+4]), S_NORMAL1 (TROO, 'I', 6, NULL , &States[S_TROO_RUN+0]) }; ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (AStealthDoomImp, Doom, 9057, 122) PROP_FlagsSet (MF_STEALTH) PROP_RenderStyle (STYLE_Translucent) PROP_Alpha (0) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ADoomImpBall, Doom, -1, 10) PROP_RadiusFixed (6) PROP_HeightFixed (8) PROP_SpeedFixed (10) PROP_Damage (3) PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY) PROP_Flags2 (MF2_PCROSS|MF2_IMPACT|MF2_NOTELEPORT) PROP_RenderStyle (STYLE_Add) PROP_SpawnState (S_TBALL) PROP_DeathState (S_TBALLX) PROP_SeeSound ("imp/attack") PROP_DeathSound ("imp/shotx") END_DEFAULTS FState ADoomImpBall::States[] = { #define S_TBALL 0 S_BRIGHT (BAL1, 'A', 4, NULL , &States[S_TBALL+1]), S_BRIGHT (BAL1, 'B', 4, NULL , &States[S_TBALL+0]), #define S_TBALLX (S_TBALL+2) S_BRIGHT (BAL1, 'C', 6, NULL , &States[S_TBALLX+1]), S_BRIGHT (BAL1, 'D', 6, NULL , &States[S_TBALLX+2]), S_BRIGHT (BAL1, 'E', 6, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (ADeadDoomImp, Doom, 20, 0) PROP_SKIP_SUPER PROP_SpawnState (S_TROO_DIE+4) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ABlueCard, Doom, 5, 85) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL|MF_NOTDMATCH|MF_INTEAMMODES) PROP_SpawnState (S_CARDB) PROP_SeeState (S_CFB) PROP_PainState (S_CFB2) END_DEFAULTS FState ABlueCard::States[] = { #define S_CARDB 0 S_NORMAL1 (BKEY, 'A', 10, NULL , &States[S_CARDB+1]), S_BRIGHT (BKEY, 'B', 10, NULL , &States[S_CARDB]), #if __CTF__ #define S_CFB (S_CARDB+2) S_NORMAL1 (BFLA, 'A', 5, NULL , &States[S_CFB+1]), S_NORMAL1 (BFLA, 'B', 5, NULL , &States[S_CFB+2]), S_NORMAL1 (BFLA, 'C', 5, NULL , &States[S_CFB+3]), S_NORMAL1 (BFLA, 'D', 5, NULL , &States[S_CFB+4]), S_NORMAL1 (BFLA, 'E', 5, NULL , &States[S_CFB+5]), S_NORMAL1 (BFLA, 'F', 5, NULL , &States[S_CFB+6]), S_NORMAL1 (BFLA, 'G', 5, NULL , &States[S_CFB+7]), S_NORMAL1 (BFLA, 'H', 5, NULL , &States[S_CFB+8]), S_NORMAL1 (BFLA, 'I', 5, NULL , &States[S_CFB+9]), S_NORMAL1 (BFLA, 'J', 5, NULL , &States[S_CFB+10]), S_NORMAL1 (BFLA, 'K', 5, NULL , &States[S_CFB+11]), S_NORMAL1 (BFLA, 'L', 5, NULL , &States[S_CFB+12]), S_NORMAL1 (BFLA, 'M', 5, NULL , &States[S_CFB+13]), S_NORMAL1 (BFLA, 'N', 5, NULL , &States[S_CFB+14]), S_NORMAL1 (BFLA, 'O', 5, NULL , &States[S_CFB+15]), S_NORMAL1 (BFLA, 'P', 5, NULL , &States[S_CFB]), #define S_CFB2 (S_CFB+16) S_NORMAL1 (BFRN, 'A', 4, NULL ,&States[S_CFB2+0]) #endif }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ARedCard, Doom, 13, 86) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL|MF_NOTDMATCH|MF_INTEAMMODES) PROP_SpawnState (S_CARDR) PROP_SeeState (S_CFR) PROP_PainState (S_CFR2) END_DEFAULTS FState ARedCard::States[] = { #define S_CARDR 0 S_NORMAL1 (RKEY, 'A', 10, NULL , &States[S_CARDR+1]), S_BRIGHT (RKEY, 'B', 10, NULL , &States[S_CARDR]), #if __CTF__ #define S_CFR (S_CARDR+2) S_NORMAL1 (RFLA, 'A', 5, NULL , &States[S_CFR+1]), S_NORMAL1 (RFLA, 'B', 5, NULL , &States[S_CFR+2]), S_NORMAL1 (RFLA, 'C', 5, NULL , &States[S_CFR+3]), S_NORMAL1 (RFLA, 'D', 5, NULL , &States[S_CFR+4]), S_NORMAL1 (RFLA, 'E', 5, NULL , &States[S_CFR+5]), S_NORMAL1 (RFLA, 'F', 5, NULL , &States[S_CFR+6]), S_NORMAL1 (RFLA, 'G', 5, NULL , &States[S_CFR+7]), S_NORMAL1 (RFLA, 'H', 5, NULL , &States[S_CFR+8]), S_NORMAL1 (RFLA, 'I', 5, NULL , &States[S_CFR+9]), S_NORMAL1 (RFLA, 'J', 5, NULL , &States[S_CFR+10]), S_NORMAL1 (RFLA, 'K', 5, NULL , &States[S_CFR+11]), S_NORMAL1 (RFLA, 'L', 5, NULL , &States[S_CFR+12]), S_NORMAL1 (RFLA, 'M', 5, NULL , &States[S_CFR+13]), S_NORMAL1 (RFLA, 'N', 5, NULL , &States[S_CFR+14]), S_NORMAL1 (RFLA, 'O', 5, NULL , &States[S_CFR+15]), S_NORMAL1 (RFLA, 'P', 5, NULL , &States[S_CFR]), #define S_CFR2 (S_CFR+16) S_NORMAL1 (RFRN, 'A', 4, NULL ,&States[S_CFR2+0]) #endif }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AYellowCard, Doom, 6, 87) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL|MF_NOTDMATCH|MF_INTEAMMODES) PROP_SpawnState (0) END_DEFAULTS FState AYellowCard::States[] = { S_NORMAL1 (YKEY, 'A', 10, NULL , &States[1]), S_BRIGHT (YKEY, 'B', 10, NULL , &States[0]) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ABlueSkull, Doom, 40, 90) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL|MF_NOTDMATCH|MF_INTEAMMODES) PROP_SpawnState (0) END_DEFAULTS FState ABlueSkull::States[] = { S_NORMAL1 (BSKU, 'A', 10, NULL , &States[1]), S_BRIGHT (BSKU, 'B', 10, NULL , &States[0]) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AYellowSkull, Doom, 39, 88) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL|MF_NOTDMATCH|MF_INTEAMMODES) PROP_SpawnState (0) END_DEFAULTS FState AYellowSkull::States[] = { S_NORMAL1 (YSKU, 'A', 10, NULL , &States[1]), S_BRIGHT (YSKU, 'B', 10, NULL , &States[0]) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ARedSkull, Doom, 38, 89) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL|MF_NOTDMATCH|MF_INTEAMMODES) PROP_SpawnState (0) END_DEFAULTS FState ARedSkull::States[] = { S_NORMAL1 (RSKU, 'A', 10, NULL , &States[1]), S_BRIGHT (RSKU, 'B', 10, NULL , &States[0]) }; ------------------------------------------------------------------------ // The barrel of green goop IMPLEMENT_ACTOR (AExplosiveBarrel, Doom, 2035, 125) PROP_SpawnHealth (20) PROP_RadiusFixed (10) PROP_HeightFixed (42) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_NOBLOOD) PROP_Flags2 (MF2_MCROSS) PROP_SpawnState (S_BAR) PROP_DeathState (S_BEXP) PROP_DeathSound ("world/barrelx") END_DEFAULTS FState AExplosiveBarrel::States[] = { #define S_BAR 0 S_NORMAL1 (BAR1, 'A', 6, NULL , &States[S_BAR+1]), S_NORMAL1 (BAR1, 'B', 6, NULL , &States[S_BAR+0]), #define S_BEXP (S_BAR+2) S_BRIGHT (BEXP, 'A', 5, NULL , &States[S_BEXP+1]), S_BRIGHT (BEXP, 'B', 5, A_Scream , &States[S_BEXP+2]), S_BRIGHT (BEXP, 'C', 5, NULL , &States[S_BEXP+3]), S_BRIGHT (BEXP, 'D', 10, A_Explode , &States[S_BEXP+4]), S_BRIGHT (BEXP, 'E', 10, NULL , &States[S_BEXP+5]), S_BRIGHT (BEXP, 'E', 1050, A_BarrelDestroy , &States[S_BEXP+6]), S_BRIGHT (BEXP, 'E', 5, A_BarrelRespawn , &States[S_BEXP+6]) }; ------------------------------------------------------------------------ // Bullet puff IMPLEMENT_ACTOR (ABulletPuff, Doom, -1, 131) PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY) PROP_Flags4 (MF4_NONETSPAWN) PROP_RenderStyle (STYLE_Translucent) PROP_Alpha (TRANSLUC50) PROP_SpawnState (0) END_DEFAULTS FState ABulletPuff::States[] = { S_BRIGHT (PUFF, 'A', 4, NULL , &States[1]), S_NORMAL1 (PUFF, 'B', 4, NULL , &States[2]), S_NORMAL1 (PUFF, 'C', 4, NULL , &States[3]), S_NORMAL1 (PUFF, 'D', 4, NULL , NULL) }; ------------------------------------------------------------------------ // This is the definition for the new AStalagmite entry. // It contains only one state. (Previously the first state // on ADoomUnusedFrames - though remaining for deprecated // compatibility) // // DoomEdNum: 5050 // DEC (AStalagmite, 5050) { S_NORMAL1 (SMT2, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Container for an unused state IMPLEMENT_ACTOR (ADoomUnusedStates, Doom, -1, 0) PROP_DeathState (S_DEADTORSO) END_DEFAULTS FState ADoomUnusedStates::States[] = { #define S_STALAGDUMMY 0 S_NORMAL1 (SMT2, 'A', -1, NULL , NULL), #define S_DEADTORSO (S_STALAGDUMMY+1) S_NORMAL1 (PLAY, 'N', -1, NULL , NULL), #define S_DEADBOTTOM (S_DEADTORSO+1) S_NORMAL1 (PLAY, 'S', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ADoomPlayer, Doom, -1, 0) PROP_SpawnHealth (100) PROP_RadiusFixed (16) PROP_HeightFixed (56) PROP_SpeedFixed (1) PROP_Mass (100) PROP_PainChance (255) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_DROPOFF|MF_PICKUP|MF_NOTDMATCH|MF_FRIENDLY) PROP_Flags2 (MF2_SLIDE|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_FLOORCLIP) PROP_Flags3 (MF3_NOBLOCKMONST) PROP_SpawnState (S_PLAY) PROP_SeeState (S_PLAY_RUN) PROP_PainState (S_PLAY_PAIN) PROP_MissileState (S_PLAY_ATK) PROP_DeathState (S_PLAY_DIE) PROP_XDeathState (S_PLAY_XDIE) END_DEFAULTS FState ADoomPlayer::States[] = { #define S_PLAY 0 S_NORMAL1 (PLAY, 'A', -1, NULL , NULL), #define S_PLAY_RUN (S_PLAY+1) S_NORMAL1 (PLAY, 'A', 4, NULL , &States[S_PLAY_RUN+1]), S_NORMAL1 (PLAY, 'B', 4, NULL , &States[S_PLAY_RUN+2]), S_NORMAL1 (PLAY, 'C', 4, NULL , &States[S_PLAY_RUN+3]), S_NORMAL1 (PLAY, 'D', 4, NULL , &States[S_PLAY_RUN+0]), #define S_PLAY_ATK (S_PLAY_RUN+4) S_NORMAL1 (PLAY, 'E', 12, NULL , &States[S_PLAY]), S_BRIGHT (PLAY, 'F', 6, NULL , &States[S_PLAY_ATK+0]), #define S_PLAY_PAIN (S_PLAY_ATK+2) S_NORMAL1 (PLAY, 'G', 4, NULL , &States[S_PLAY_PAIN+1]), S_NORMAL1 (PLAY, 'G', 4, A_Pain , &States[S_PLAY]), #define S_PLAY_DIE (S_PLAY_PAIN+2) S_NORMAL1 (PLAY, 'H', 10, NULL , &States[S_PLAY_DIE+1]), S_NORMAL1 (PLAY, 'I', 10, A_PlayerScream , &States[S_PLAY_DIE+2]), S_NORMAL1 (PLAY, 'J', 10, A_NoBlocking , &States[S_PLAY_DIE+3]), S_NORMAL1 (PLAY, 'K', 10, NULL , &States[S_PLAY_DIE+4]), S_NORMAL1 (PLAY, 'L', 10, NULL , &States[S_PLAY_DIE+5]), S_NORMAL1 (PLAY, 'M', 10, NULL , &States[S_PLAY_DIE+6]), S_NORMAL1 (PLAY, 'N', -1, NULL , NULL), #define S_PLAY_XDIE (S_PLAY_DIE+7) S_NORMAL1 (PLAY, 'O', 5, NULL , &States[S_PLAY_XDIE+1]), S_NORMAL1 (PLAY, 'P', 5, A_XScream , &States[S_PLAY_XDIE+2]), S_NORMAL1 (PLAY, 'Q', 5, A_NoBlocking , &States[S_PLAY_XDIE+3]), S_NORMAL1 (PLAY, 'R', 5, NULL , &States[S_PLAY_XDIE+4]), S_NORMAL1 (PLAY, 'S', 5, NULL , &States[S_PLAY_XDIE+5]), S_NORMAL1 (PLAY, 'T', 5, NULL , &States[S_PLAY_XDIE+6]), S_NORMAL1 (PLAY, 'U', 5, NULL , &States[S_PLAY_XDIE+7]), S_NORMAL1 (PLAY, 'V', 5, NULL , &States[S_PLAY_XDIE+8]), S_NORMAL1 (PLAY, 'W', -1, NULL , NULL) }; ------------------------------------------------------------------------ // Dead marine IMPLEMENT_STATELESS_ACTOR (ADeadMarine, Doom, 15, 0) PROP_STATE_BASE (ADoomPlayer) PROP_SpawnState (S_PLAY_DIE+6) END_DEFAULTS ------------------------------------------------------------------------ // Gibbed marine IMPLEMENT_STATELESS_ACTOR (AGibbedMarine, Doom, 10, 145) PROP_STATE_BASE (ADoomPlayer) PROP_SpawnState (S_PLAY_XDIE+8) END_DEFAULTS ------------------------------------------------------------------------ // Gibbed marine (extra copy) IMPLEMENT_STATELESS_ACTOR (AGibbedMarineExtra, Doom, 12, 0) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AFatso, Doom, 67, 112) PROP_SpawnHealth (600) PROP_RadiusFixed (48) PROP_HeightFixed (64) PROP_Mass (1000) PROP_SpeedFixed (8) PROP_PainChance (80) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_FLOORCLIP) PROP_Flags4 (MF4_BOSSDEATH) PROP_SpawnState (S_FATT_STND) PROP_SeeState (S_FATT_RUN) PROP_PainState (S_FATT_PAIN) PROP_MissileState (S_FATT_ATK) PROP_DeathState (S_FATT_DIE) PROP_RaiseState (S_FATT_RAISE) PROP_SeeSound ("fatso/sight") PROP_PainSound ("fatso/pain") PROP_DeathSound ("fatso/death") PROP_ActiveSound ("fatso/active") END_DEFAULTS FState AFatso::States[] = { #define S_FATT_STND 0 S_NORMAL1 (FATT, 'A', 15, A_Look , &States[S_FATT_STND+1]), S_NORMAL1 (FATT, 'B', 15, A_Look , &States[S_FATT_STND]), #define S_FATT_RUN (S_FATT_STND+2) S_NORMAL1 (FATT, 'A', 4, A_Chase , &States[S_FATT_RUN+1]), S_NORMAL1 (FATT, 'A', 4, A_Chase , &States[S_FATT_RUN+2]), S_NORMAL1 (FATT, 'B', 4, A_Chase , &States[S_FATT_RUN+3]), S_NORMAL1 (FATT, 'B', 4, A_Chase , &States[S_FATT_RUN+4]), S_NORMAL1 (FATT, 'C', 4, A_Chase , &States[S_FATT_RUN+5]), S_NORMAL1 (FATT, 'C', 4, A_Chase , &States[S_FATT_RUN+6]), S_NORMAL1 (FATT, 'D', 4, A_Chase , &States[S_FATT_RUN+7]), S_NORMAL1 (FATT, 'D', 4, A_Chase , &States[S_FATT_RUN+8]), S_NORMAL1 (FATT, 'E', 4, A_Chase , &States[S_FATT_RUN+9]), S_NORMAL1 (FATT, 'E', 4, A_Chase , &States[S_FATT_RUN+10]), S_NORMAL1 (FATT, 'F', 4, A_Chase , &States[S_FATT_RUN+11]), S_NORMAL1 (FATT, 'F', 4, A_Chase , &States[S_FATT_RUN+0]), #define S_FATT_ATK (S_FATT_RUN+12) S_NORMAL1 (FATT, 'G', 20, A_FatRaise , &States[S_FATT_ATK+1]), S_BRIGHT (FATT, 'H', 10, A_FatAttack1 , &States[S_FATT_ATK+2]), S_NORMAL1 (FATT, 'I', 5, A_FaceTarget , &States[S_FATT_ATK+3]), S_NORMAL1 (FATT, 'G', 5, A_FaceTarget , &States[S_FATT_ATK+4]), S_BRIGHT (FATT, 'H', 10, A_FatAttack2 , &States[S_FATT_ATK+5]), S_NORMAL1 (FATT, 'I', 5, A_FaceTarget , &States[S_FATT_ATK+6]), S_NORMAL1 (FATT, 'G', 5, A_FaceTarget , &States[S_FATT_ATK+7]), S_BRIGHT (FATT, 'H', 10, A_FatAttack3 , &States[S_FATT_ATK+8]), S_NORMAL1 (FATT, 'I', 5, A_FaceTarget , &States[S_FATT_ATK+9]), S_NORMAL1 (FATT, 'G', 5, A_FaceTarget , &States[S_FATT_RUN+0]), #define S_FATT_PAIN (S_FATT_ATK+10) S_NORMAL1 (FATT, 'J', 3, NULL , &States[S_FATT_PAIN+1]), S_NORMAL1 (FATT, 'J', 3, A_Pain , &States[S_FATT_RUN+0]), #define S_FATT_DIE (S_FATT_PAIN+2) S_NORMAL1 (FATT, 'K', 6, NULL , &States[S_FATT_DIE+1]), S_NORMAL1 (FATT, 'L', 6, A_Scream , &States[S_FATT_DIE+2]), S_NORMAL1 (FATT, 'M', 6, A_NoBlocking , &States[S_FATT_DIE+3]), S_NORMAL1 (FATT, 'N', 6, NULL , &States[S_FATT_DIE+4]), S_NORMAL1 (FATT, 'O', 6, NULL , &States[S_FATT_DIE+5]), S_NORMAL1 (FATT, 'P', 6, NULL , &States[S_FATT_DIE+6]), S_NORMAL1 (FATT, 'Q', 6, NULL , &States[S_FATT_DIE+7]), S_NORMAL1 (FATT, 'R', 6, NULL , &States[S_FATT_DIE+8]), S_NORMAL1 (FATT, 'S', 6, NULL , &States[S_FATT_DIE+9]), S_NORMAL1 (FATT, 'T', -1, A_BossDeath , NULL), #define S_FATT_RAISE (S_FATT_DIE+10) S_NORMAL1 (FATT, 'R', 5, NULL , &States[S_FATT_RAISE+1]), S_NORMAL1 (FATT, 'Q', 5, NULL , &States[S_FATT_RAISE+2]), S_NORMAL1 (FATT, 'P', 5, NULL , &States[S_FATT_RAISE+3]), S_NORMAL1 (FATT, 'O', 5, NULL , &States[S_FATT_RAISE+4]), S_NORMAL1 (FATT, 'N', 5, NULL , &States[S_FATT_RAISE+5]), S_NORMAL1 (FATT, 'M', 5, NULL , &States[S_FATT_RAISE+6]), S_NORMAL1 (FATT, 'L', 5, NULL , &States[S_FATT_RAISE+7]), S_NORMAL1 (FATT, 'K', 5, NULL , &States[S_FATT_RUN+0]) }; ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (AStealthFatso, Doom, 9058, 123) PROP_FlagsSet (MF_STEALTH) PROP_RenderStyle (STYLE_Translucent) PROP_Alpha (0) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AFatShot, Doom, -1, 153) PROP_RadiusFixed (6) PROP_HeightFixed (32) PROP_SpeedFixed (20) PROP_Damage (8) PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY) PROP_Flags2 (MF2_PCROSS|MF2_IMPACT|MF2_NOTELEPORT) PROP_RenderStyle (STYLE_Add) PROP_SpawnState (S_FATSHOT) PROP_DeathState (S_FATSHOTX) PROP_SeeSound ("fatso/attack") PROP_DeathSound ("fatso/shotx") END_DEFAULTS FState AFatShot::States[] = { #define S_FATSHOT 0 S_BRIGHT (MANF, 'A', 4, NULL , &States[S_FATSHOT+1]), S_BRIGHT (MANF, 'B', 4, NULL , &States[S_FATSHOT+0]), #define S_FATSHOTX (S_FATSHOT+2) S_BRIGHT (MISL, 'B', 8, NULL , &States[S_FATSHOTX+1]), S_BRIGHT (MISL, 'C', 6, NULL , &States[S_FATSHOTX+2]), S_BRIGHT (MISL, 'D', 4, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ACommanderKeen, Doom, 72, 0) PROP_SpawnHealth (100) PROP_RadiusFixed (16) PROP_HeightFixed (72) PROP_MassLong (10000000) PROP_MaxPainChance PROP_Flags (MF_SOLID|MF_SPAWNCEILING|MF_NOGRAVITY|MF_SHOOTABLE|MF_COUNTKILL) PROP_Flags4 (MF4_NOICEDEATH) PROP_SpawnState (S_KEENSTND) PROP_PainState (S_KEENPAIN) PROP_DeathState (S_COMMKEEN) PROP_PainSound ("keen/pain") PROP_DeathSound ("keen/death") END_DEFAULTS FState ACommanderKeen::States[] = { #define S_KEENSTND 0 S_NORMAL1 (KEEN, 'A', -1, NULL , &States[S_KEENSTND]), #define S_COMMKEEN (S_KEENSTND+1) S_NORMAL1 (KEEN, 'A', 6, NULL , &States[S_COMMKEEN+1]), S_NORMAL1 (KEEN, 'B', 6, NULL , &States[S_COMMKEEN+2]), S_NORMAL1 (KEEN, 'C', 6, A_Scream , &States[S_COMMKEEN+3]), S_NORMAL1 (KEEN, 'D', 6, NULL , &States[S_COMMKEEN+4]), S_NORMAL1 (KEEN, 'E', 6, NULL , &States[S_COMMKEEN+5]), S_NORMAL1 (KEEN, 'F', 6, NULL , &States[S_COMMKEEN+6]), S_NORMAL1 (KEEN, 'G', 6, NULL , &States[S_COMMKEEN+7]), S_NORMAL1 (KEEN, 'H', 6, NULL , &States[S_COMMKEEN+8]), S_NORMAL1 (KEEN, 'I', 6, NULL , &States[S_COMMKEEN+9]), S_NORMAL1 (KEEN, 'J', 6, NULL , &States[S_COMMKEEN+10]), S_NORMAL1 (KEEN, 'K', 6, A_KeenDie , &States[S_COMMKEEN+11]), S_NORMAL1 (KEEN, 'L', -1, NULL , NULL), #define S_KEENPAIN (S_COMMKEEN+12) S_NORMAL1 (KEEN, 'M', 4, NULL , &States[S_KEENPAIN+1]), S_NORMAL1 (KEEN, 'M', 8, A_Pain , &States[S_KEENSTND]) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ABFG9000, Doom, 2006, 31) PROP_RadiusFixed (20) PROP_HeightFixed (20) PROP_Flags (MF_SPECIAL) PROP_SpawnState (S_BFUG) END_DEFAULTS FState ABFG9000::States[] = { #define S_BFG 0 S_NORMAL1 (BFGG, 'A', 1, A_WeaponReady , &States[S_BFG]), #define S_BFGDOWN (S_BFG+1) S_NORMAL1 (BFGG, 'A', 1, A_Lower , &States[S_BFGDOWN]), #define S_BFGUP (S_BFGDOWN+1) S_NORMAL1 (BFGG, 'A', 1, A_Raise , &States[S_BFGUP]), #define S_BFG1 (S_BFGUP+1) S_NORMAL1 (BFGG, 'A', 20, A_BFGsound , &States[S_BFG1+1]), S_NORMAL1 (BFGG, 'B', 10, A_GunFlash , &States[S_BFG1+2]), S_NORMAL1 (BFGG, 'B', 10, A_FireBFG , &States[S_BFG1+3]), S_NORMAL1 (BFGG, 'B', 20, A_ReFire , &States[S_BFG]), #define S_BFGFLASH (S_BFG1+4) S_BRIGHT (BFGF, 'A', 11, A_Light1 , &States[S_BFGFLASH+1]), S_BRIGHT (BFGF, 'B', 6, A_Light2 , &AWeapon::States[S_LIGHTDONE]), #define S_BFUG (S_BFGFLASH+2) S_NORMAL1 (BFUG, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ALostSoul, Doom, 3006, 110) PROP_SpawnHealth (100) PROP_RadiusFixed (16) PROP_HeightFixed (56) PROP_Mass (50) PROP_SpeedFixed (8) PROP_Damage (3) PROP_MaxPainChance PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_FLOAT|MF_NOGRAVITY) PROP_Flags2 (MF2_MCROSS|MF2_PUSHWALL|MF2_PASSMOBJ) PROP_Flags3 (MF3_ISMONSTER) PROP_Flags4 (MF4_NOICEDEATH) PROP_RenderStyle (STYLE_Translucent) PROP_Alpha (TRANSLUC75) PROP_SpawnState (S_SKULL_STND) PROP_SeeState (S_SKULL_RUN) PROP_PainState (S_SKULL_PAIN) PROP_MissileState (S_SKULL_ATK) PROP_DeathState (S_SKULL_DIE) PROP_AttackSound ("skull/melee") PROP_PainSound ("skull/pain") PROP_DeathSound ("skull/death") PROP_ActiveSound ("skull/active") END_DEFAULTS FState ALostSoul::States[] = { #define S_SKULL_STND 0 S_BRIGHT (SKUL, 'A', 10, A_Look , &States[S_SKULL_STND+1]), S_BRIGHT (SKUL, 'B', 10, A_Look , &States[S_SKULL_STND]), #define S_SKULL_RUN (S_SKULL_STND+2) S_BRIGHT (SKUL, 'A', 6, A_Chase , &States[S_SKULL_RUN+1]), S_BRIGHT (SKUL, 'B', 6, A_Chase , &States[S_SKULL_RUN+0]), #define S_SKULL_ATK (S_SKULL_RUN+2) S_BRIGHT (SKUL, 'C', 10, A_FaceTarget , &States[S_SKULL_ATK+1]), S_BRIGHT (SKUL, 'D', 4, A_SkullAttack , &States[S_SKULL_ATK+2]), S_BRIGHT (SKUL, 'C', 4, NULL , &States[S_SKULL_ATK+3]), S_BRIGHT (SKUL, 'D', 4, NULL , &States[S_SKULL_ATK+2]), #define S_SKULL_PAIN (S_SKULL_ATK+4) S_BRIGHT (SKUL, 'E', 3, NULL , &States[S_SKULL_PAIN+1]), S_BRIGHT (SKUL, 'E', 3, A_Pain , &States[S_SKULL_RUN+0]), #define S_SKULL_DIE (S_SKULL_PAIN+2) S_BRIGHT (SKUL, 'F', 6, NULL , &States[S_SKULL_DIE+1]), S_BRIGHT (SKUL, 'G', 6, A_Scream , &States[S_SKULL_DIE+2]), S_BRIGHT (SKUL, 'H', 6, NULL , &States[S_SKULL_DIE+3]), S_BRIGHT (SKUL, 'I', 6, A_NoBlocking , &States[S_SKULL_DIE+4]), S_NORMAL1 (SKUL, 'J', 6, NULL , &States[S_SKULL_DIE+5]), S_NORMAL1 (SKUL, 'K', 6, NULL , NULL) }; ------------------------------------------------------------------------ // Lost Soul (Doom beta) IMPLEMENT_ACTOR (ABetaSkull, Doom, 9037, 0) PROP_SpawnHealth (100) PROP_RadiusFixed (16) PROP_HeightFixed (56) PROP_Mass (50) PROP_SpeedFixed (8) PROP_Damage (3) PROP_MaxPainChance PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_FLOAT|MF_NOGRAVITY) PROP_Flags2 (MF2_MCROSS|MF2_PUSHWALL|MF2_PASSMOBJ) PROP_Flags3 (MF3_ISMONSTER) PROP_Flags4 (MF4_NOICEDEATH) PROP_RenderStyle (STYLE_Translucent) PROP_Alpha (TRANSLUC75) PROP_SpawnState (S_BETASKULL_STND) PROP_SeeState (S_BETASKULL_RUN) PROP_PainState (S_BETASKULL_PAIN) PROP_MissileState (S_BETASKULL_ATK) PROP_DeathState (S_BETASKULL_DIE) PROP_AttackSound ("skull/melee") PROP_PainSound ("skull/pain") PROP_DeathSound ("skull/death") PROP_ActiveSound ("skull/active") END_DEFAULTS FState ABetaSkull::States[] = { #define S_BETASKULL_STND 0 S_BRIGHT (SKUB, 'A', 10, A_Look , &States[S_BETASKULL_STND]), #define S_BETASKULL_RUN (S_BETASKULL_STND+1) S_BRIGHT (SKUB, 'B', 5, A_Chase , &States[S_BETASKULL_RUN+1]), S_BRIGHT (SKUB, 'C', 5, A_Chase , &States[S_BETASKULL_RUN+2]), S_BRIGHT (SKUB, 'D', 5, A_Chase , &States[S_BETASKULL_RUN+3]), S_BRIGHT (SKUB, 'A', 5, A_Chase , &States[S_BETASKULL_RUN+0]), #define S_BETASKULL_ATK (S_BETASKULL_RUN+4) S_BRIGHT (SKUB, 'E', 4, A_FaceTarget , &States[S_BETASKULL_ATK+1]), S_BRIGHT (SKUB, 'F', 5, A_BetaSkullAttack , &States[S_BETASKULL_ATK+2]), S_BRIGHT (SKUB, 'F', 4, NULL , &States[S_BETASKULL_RUN]), #define S_BETASKULL_PAIN (S_BETASKULL_ATK+3) S_BRIGHT (SKUB, 'G', 4, NULL , &States[S_BETASKULL_PAIN+1]), S_BRIGHT (SKUB, 'H', 2, A_Pain , &States[S_BETASKULL_RUN]), S_BRIGHT (SKUB, 'I', 4, NULL , &States[S_BETASKULL_RUN]), #define S_BETASKULL_DIE (S_BETASKULL_PAIN+3) S_BRIGHT (SKUB, 'J', 5, NULL , &States[S_BETASKULL_DIE+1]), S_BRIGHT (SKUB, 'K', 5, NULL , &States[S_BETASKULL_DIE+2]), S_BRIGHT (SKUB, 'L', 5, NULL , &States[S_BETASKULL_DIE+3]), S_BRIGHT (SKUB, 'M', 5, NULL , &States[S_BETASKULL_DIE+4]), S_BRIGHT (SKUB, 'N', 5, A_Scream , &States[S_BETASKULL_DIE+5]), S_BRIGHT (SKUB, 'O', 5, NULL , &States[S_BETASKULL_DIE+6]), S_BRIGHT (SKUB, 'P', 5, A_NoBlocking , &States[S_BETASKULL_DIE+7]), S_NORMAL1 (SKUB, 'Q', 5, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (ADeadLostSoul, Doom, 23, 0) PROP_SKIP_SUPER PROP_SpawnState (S_SKULL_DIE+5) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (APainElemental, Doom, 71, 115) PROP_SpawnHealth (400) PROP_RadiusFixed (31) PROP_HeightFixed (56) PROP_Mass (400) PROP_SpeedFixed (8) PROP_PainChance (128) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_FLOAT|MF_NOGRAVITY|MF_COUNTKILL) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL) PROP_SpawnState (S_PAIN_STND) PROP_SeeState (S_PAIN_RUN) PROP_PainState (S_PAIN_PAIN) PROP_MissileState (S_PAIN_ATK) PROP_DeathState (S_PAIN_DIE) PROP_RaiseState (S_PAIN_RAISE) PROP_SeeSound ("pain/sight") PROP_PainSound ("pain/pain") PROP_DeathSound ("pain/death") PROP_ActiveSound ("pain/active") END_DEFAULTS FState APainElemental::States[] = { #define S_PAIN_STND 0 S_NORMAL1 (PAIN, 'A', 10, A_Look , &States[S_PAIN_STND]), #define S_PAIN_RUN (S_PAIN_STND+1) S_NORMAL1 (PAIN, 'A', 3, A_Chase , &States[S_PAIN_RUN+1]), S_NORMAL1 (PAIN, 'A', 3, A_Chase , &States[S_PAIN_RUN+2]), S_NORMAL1 (PAIN, 'B', 3, A_Chase , &States[S_PAIN_RUN+3]), S_NORMAL1 (PAIN, 'B', 3, A_Chase , &States[S_PAIN_RUN+4]), S_NORMAL1 (PAIN, 'C', 3, A_Chase , &States[S_PAIN_RUN+5]), S_NORMAL1 (PAIN, 'C', 3, A_Chase , &States[S_PAIN_RUN+0]), #define S_PAIN_ATK (S_PAIN_RUN+6) S_NORMAL1 (PAIN, 'D', 5, A_FaceTarget , &States[S_PAIN_ATK+1]), S_NORMAL1 (PAIN, 'E', 5, A_FaceTarget , &States[S_PAIN_ATK+2]), S_BRIGHT (PAIN, 'F', 5, A_FaceTarget , &States[S_PAIN_ATK+3]), S_BRIGHT (PAIN, 'F', 0, A_PainAttack , &States[S_PAIN_RUN+0]), #define S_PAIN_PAIN (S_PAIN_ATK+4) S_NORMAL1 (PAIN, 'G', 6, NULL , &States[S_PAIN_PAIN+1]), S_NORMAL1 (PAIN, 'G', 6, A_Pain , &States[S_PAIN_RUN+0]), #define S_PAIN_DIE (S_PAIN_PAIN+2) S_BRIGHT (PAIN, 'H', 8, NULL , &States[S_PAIN_DIE+1]), S_BRIGHT (PAIN, 'I', 8, A_Scream , &States[S_PAIN_DIE+2]), S_BRIGHT (PAIN, 'J', 8, NULL , &States[S_PAIN_DIE+3]), S_BRIGHT (PAIN, 'K', 8, NULL , &States[S_PAIN_DIE+4]), S_BRIGHT (PAIN, 'L', 8, A_PainDie , &States[S_PAIN_DIE+5]), S_BRIGHT (PAIN, 'M', 8, NULL , NULL), #define S_PAIN_RAISE (S_PAIN_DIE+6) S_NORMAL1 (PAIN, 'M', 8, NULL , &States[S_PAIN_RAISE+1]), S_NORMAL1 (PAIN, 'L', 8, NULL , &States[S_PAIN_RAISE+2]), S_NORMAL1 (PAIN, 'K', 8, NULL , &States[S_PAIN_RAISE+3]), S_NORMAL1 (PAIN, 'J', 8, NULL , &States[S_PAIN_RAISE+4]), S_NORMAL1 (PAIN, 'I', 8, NULL , &States[S_PAIN_RAISE+5]), S_NORMAL1 (PAIN, 'H', 8, NULL , &States[S_PAIN_RUN+0]) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AZombieMan, Doom, 3004, 4) PROP_SpawnHealth (20) PROP_RadiusFixed (20) PROP_HeightFixed (56) PROP_Mass (100) PROP_SpeedFixed (8) PROP_PainChance (200) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_FLOORCLIP) PROP_SpawnState (S_POSS_STND) PROP_SeeState (S_POSS_RUN) PROP_PainState (S_POSS_PAIN) PROP_MissileState (S_POSS_ATK) PROP_DeathState (S_POSS_DIE) PROP_XDeathState (S_POSS_XDIE) PROP_RaiseState (S_POSS_RAISE) PROP_SeeSound ("grunt/sight") PROP_AttackSound ("grunt/attack") PROP_PainSound ("grunt/pain") PROP_DeathSound ("grunt/death") PROP_ActiveSound ("grunt/active") END_DEFAULTS FState AZombieMan::States[] = { #define S_POSS_STND 0 S_NORMAL1 (POSS, 'A', 10, A_Look , &States[S_POSS_STND+1]), S_NORMAL1 (POSS, 'B', 10, A_Look , &States[S_POSS_STND]), #define S_POSS_RUN (S_POSS_STND+2) S_NORMAL1 (POSS, 'A', 4, A_Chase , &States[S_POSS_RUN+1]), S_NORMAL1 (POSS, 'A', 4, A_Chase , &States[S_POSS_RUN+2]), S_NORMAL1 (POSS, 'B', 4, A_Chase , &States[S_POSS_RUN+3]), S_NORMAL1 (POSS, 'B', 4, A_Chase , &States[S_POSS_RUN+4]), S_NORMAL1 (POSS, 'C', 4, A_Chase , &States[S_POSS_RUN+5]), S_NORMAL1 (POSS, 'C', 4, A_Chase , &States[S_POSS_RUN+6]), S_NORMAL1 (POSS, 'D', 4, A_Chase , &States[S_POSS_RUN+7]), S_NORMAL1 (POSS, 'D', 4, A_Chase , &States[S_POSS_RUN+0]), #define S_POSS_ATK (S_POSS_RUN+8) S_NORMAL1 (POSS, 'E', 10, A_FaceTarget , &States[S_POSS_ATK+1]), S_NORMAL1 (POSS, 'F', 8, A_PosAttack , &States[S_POSS_ATK+2]), S_NORMAL1 (POSS, 'E', 8, NULL , &States[S_POSS_RUN+0]), #define S_POSS_PAIN (S_POSS_ATK+3) S_NORMAL1 (POSS, 'G', 3, NULL , &States[S_POSS_PAIN+1]), S_NORMAL1 (POSS, 'G', 3, A_Pain , &States[S_POSS_RUN+0]), #define S_POSS_DIE (S_POSS_PAIN+2) S_NORMAL1 (POSS, 'H', 5, NULL , &States[S_POSS_DIE+1]), S_NORMAL1 (POSS, 'I', 5, A_Scream , &States[S_POSS_DIE+2]), S_NORMAL1 (POSS, 'J', 5, A_NoBlocking , &States[S_POSS_DIE+3]), S_NORMAL1 (POSS, 'K', 5, NULL , &States[S_POSS_DIE+4]), S_NORMAL1 (POSS, 'L', -1, NULL , NULL), #define S_POSS_XDIE (S_POSS_DIE+5) S_NORMAL1 (POSS, 'M', 5, NULL , &States[S_POSS_XDIE+1]), S_NORMAL1 (POSS, 'N', 5, A_XScream , &States[S_POSS_XDIE+2]), S_NORMAL1 (POSS, 'O', 5, A_NoBlocking , &States[S_POSS_XDIE+3]), S_NORMAL1 (POSS, 'P', 5, NULL , &States[S_POSS_XDIE+4]), S_NORMAL1 (POSS, 'Q', 5, NULL , &States[S_POSS_XDIE+5]), S_NORMAL1 (POSS, 'R', 5, NULL , &States[S_POSS_XDIE+6]), S_NORMAL1 (POSS, 'S', 5, NULL , &States[S_POSS_XDIE+7]), S_NORMAL1 (POSS, 'T', 5, NULL , &States[S_POSS_XDIE+8]), S_NORMAL1 (POSS, 'U', -1, NULL , NULL), #define S_POSS_RAISE (S_POSS_XDIE+9) S_NORMAL1 (POSS, 'K', 5, NULL , &States[S_POSS_RAISE+1]), S_NORMAL1 (POSS, 'J', 5, NULL , &States[S_POSS_RAISE+2]), S_NORMAL1 (POSS, 'I', 5, NULL , &States[S_POSS_RAISE+3]), S_NORMAL1 (POSS, 'H', 5, NULL , &States[S_POSS_RUN+0]) }; ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (AStealthZombieMan, Doom, 9061, 102) PROP_FlagsSet (MF_STEALTH) PROP_RenderStyle (STYLE_Translucent) PROP_Alpha (0) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (ADeadZombieMan, Doom, 18, 0) PROP_SKIP_SUPER PROP_SpawnState (S_POSS_DIE+4) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AShotgunGuy, Doom, 9, 1) PROP_SpawnHealth (30) PROP_RadiusFixed (20) PROP_HeightFixed (56) PROP_Mass (100) PROP_SpeedFixed (8) PROP_PainChance (170) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_FLOORCLIP) PROP_SpawnState (S_SPOS_STND) PROP_SeeState (S_SPOS_RUN) PROP_PainState (S_SPOS_PAIN) PROP_MissileState (S_SPOS_ATK) PROP_DeathState (S_SPOS_DIE) PROP_XDeathState (S_SPOS_XDIE) PROP_RaiseState (S_SPOS_RAISE) PROP_SeeSound ("shotguy/sight") PROP_AttackSound ("shotguy/attack") PROP_PainSound ("shotguy/pain") PROP_DeathSound ("shotguy/death") PROP_ActiveSound ("shotguy/active") END_DEFAULTS FState AShotgunGuy::States[] = { #define S_SPOS_STND 0 S_NORMAL1 (SPOS, 'A', 10, A_Look , &States[S_SPOS_STND+1]), S_NORMAL1 (SPOS, 'B', 10, A_Look , &States[S_SPOS_STND]), #define S_SPOS_RUN (S_SPOS_STND+2) S_NORMAL1 (SPOS, 'A', 3, A_Chase , &States[S_SPOS_RUN+1]), S_NORMAL1 (SPOS, 'A', 3, A_Chase , &States[S_SPOS_RUN+2]), S_NORMAL1 (SPOS, 'B', 3, A_Chase , &States[S_SPOS_RUN+3]), S_NORMAL1 (SPOS, 'B', 3, A_Chase , &States[S_SPOS_RUN+4]), S_NORMAL1 (SPOS, 'C', 3, A_Chase , &States[S_SPOS_RUN+5]), S_NORMAL1 (SPOS, 'C', 3, A_Chase , &States[S_SPOS_RUN+6]), S_NORMAL1 (SPOS, 'D', 3, A_Chase , &States[S_SPOS_RUN+7]), S_NORMAL1 (SPOS, 'D', 3, A_Chase , &States[S_SPOS_RUN+0]), #define S_SPOS_ATK (S_SPOS_RUN+8) S_NORMAL1 (SPOS, 'E', 10, A_FaceTarget , &States[S_SPOS_ATK+1]), S_BRIGHT (SPOS, 'F', 10, A_SPosAttackUseAtkSound , &States[S_SPOS_ATK+2]), S_NORMAL1 (SPOS, 'E', 10, NULL , &States[S_SPOS_RUN+0]), #define S_SPOS_PAIN (S_SPOS_ATK+3) S_NORMAL1 (SPOS, 'G', 3, NULL , &States[S_SPOS_PAIN+1]), S_NORMAL1 (SPOS, 'G', 3, A_Pain , &States[S_SPOS_RUN+0]), #define S_SPOS_DIE (S_SPOS_PAIN+2) S_NORMAL1 (SPOS, 'H', 5, NULL , &States[S_SPOS_DIE+1]), S_NORMAL1 (SPOS, 'I', 5, A_Scream , &States[S_SPOS_DIE+2]), S_NORMAL1 (SPOS, 'J', 5, A_NoBlocking , &States[S_SPOS_DIE+3]), S_NORMAL1 (SPOS, 'K', 5, NULL , &States[S_SPOS_DIE+4]), S_NORMAL1 (SPOS, 'L', -1, NULL , NULL), #define S_SPOS_XDIE (S_SPOS_DIE+5) S_NORMAL1 (SPOS, 'M', 5, NULL , &States[S_SPOS_XDIE+1]), S_NORMAL1 (SPOS, 'N', 5, A_XScream , &States[S_SPOS_XDIE+2]), S_NORMAL1 (SPOS, 'O', 5, A_NoBlocking , &States[S_SPOS_XDIE+3]), S_NORMAL1 (SPOS, 'P', 5, NULL , &States[S_SPOS_XDIE+4]), S_NORMAL1 (SPOS, 'Q', 5, NULL , &States[S_SPOS_XDIE+5]), S_NORMAL1 (SPOS, 'R', 5, NULL , &States[S_SPOS_XDIE+6]), S_NORMAL1 (SPOS, 'S', 5, NULL , &States[S_SPOS_XDIE+7]), S_NORMAL1 (SPOS, 'T', 5, NULL , &States[S_SPOS_XDIE+8]), S_NORMAL1 (SPOS, 'U', -1, NULL , NULL), #define S_SPOS_RAISE (S_SPOS_XDIE+9) S_NORMAL1 (SPOS, 'L', 5, NULL , &States[S_SPOS_RAISE+1]), S_NORMAL1 (SPOS, 'K', 5, NULL , &States[S_SPOS_RAISE+2]), S_NORMAL1 (SPOS, 'J', 5, NULL , &States[S_SPOS_RAISE+3]), S_NORMAL1 (SPOS, 'I', 5, NULL , &States[S_SPOS_RAISE+4]), S_NORMAL1 (SPOS, 'H', 5, NULL , &States[S_SPOS_RUN+0]) }; ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (AStealthShotgunGuy, Doom, 9060, 103) PROP_FlagsSet (MF_STEALTH) PROP_RenderStyle (STYLE_Translucent) PROP_Alpha (0) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (ADeadShotgunGuy, Doom, 19, 0) PROP_SKIP_SUPER PROP_SpawnState (S_SPOS_DIE+4) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AChaingunGuy, Doom, 65, 2) PROP_SpawnHealth (70) PROP_RadiusFixed (20) PROP_HeightFixed (56) PROP_Mass (100) PROP_SpeedFixed (8) PROP_PainChance (170) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_FLOORCLIP) PROP_SpawnState (S_CPOS_STND) PROP_SeeState (S_CPOS_RUN) PROP_PainState (S_CPOS_PAIN) PROP_MissileState (S_CPOS_ATK) PROP_DeathState (S_CPOS_DIE) PROP_XDeathState (S_CPOS_XDIE) PROP_RaiseState (S_CPOS_RAISE) PROP_SeeSound ("chainguy/sight") PROP_PainSound ("chainguy/pain") PROP_DeathSound ("chainguy/death") PROP_ActiveSound ("chainguy/active") PROP_AttackSound ("chainguy/attack") END_DEFAULTS FState AChaingunGuy::States[] = { #define S_CPOS_STND 0 S_NORMAL1 (CPOS, 'A', 10, A_Look , &States[S_CPOS_STND+1]), S_NORMAL1 (CPOS, 'B', 10, A_Look , &States[S_CPOS_STND]), #define S_CPOS_RUN (S_CPOS_STND+2) S_NORMAL1 (CPOS, 'A', 3, A_Chase , &States[S_CPOS_RUN+1]), S_NORMAL1 (CPOS, 'A', 3, A_Chase , &States[S_CPOS_RUN+2]), S_NORMAL1 (CPOS, 'B', 3, A_Chase , &States[S_CPOS_RUN+3]), S_NORMAL1 (CPOS, 'B', 3, A_Chase , &States[S_CPOS_RUN+4]), S_NORMAL1 (CPOS, 'C', 3, A_Chase , &States[S_CPOS_RUN+5]), S_NORMAL1 (CPOS, 'C', 3, A_Chase , &States[S_CPOS_RUN+6]), S_NORMAL1 (CPOS, 'D', 3, A_Chase , &States[S_CPOS_RUN+7]), S_NORMAL1 (CPOS, 'D', 3, A_Chase , &States[S_CPOS_RUN+0]), #define S_CPOS_ATK (S_CPOS_RUN+8) S_NORMAL1 (CPOS, 'E', 10, A_FaceTarget , &States[S_CPOS_ATK+1]), S_BRIGHT (CPOS, 'F', 4, A_CPosAttack , &States[S_CPOS_ATK+2]), S_BRIGHT (CPOS, 'E', 4, A_CPosAttack , &States[S_CPOS_ATK+3]), S_NORMAL1 (CPOS, 'F', 1, A_CPosRefire , &States[S_CPOS_ATK+1]), #define S_CPOS_PAIN (S_CPOS_ATK+4) S_NORMAL1 (CPOS, 'G', 3, NULL , &States[S_CPOS_PAIN+1]), S_NORMAL1 (CPOS, 'G', 3, A_Pain , &States[S_CPOS_RUN+0]), #define S_CPOS_DIE (S_CPOS_PAIN+2) S_NORMAL1 (CPOS, 'H', 5, NULL , &States[S_CPOS_DIE+1]), S_NORMAL1 (CPOS, 'I', 5, A_Scream , &States[S_CPOS_DIE+2]), S_NORMAL1 (CPOS, 'J', 5, A_NoBlocking , &States[S_CPOS_DIE+3]), S_NORMAL1 (CPOS, 'K', 5, NULL , &States[S_CPOS_DIE+4]), S_NORMAL1 (CPOS, 'L', 5, NULL , &States[S_CPOS_DIE+5]), S_NORMAL1 (CPOS, 'M', 5, NULL , &States[S_CPOS_DIE+6]), S_NORMAL1 (CPOS, 'N', -1, NULL , NULL), #define S_CPOS_XDIE (S_CPOS_DIE+7) S_NORMAL1 (CPOS, 'O', 5, NULL , &States[S_CPOS_XDIE+1]), S_NORMAL1 (CPOS, 'P', 5, A_XScream , &States[S_CPOS_XDIE+2]), S_NORMAL1 (CPOS, 'Q', 5, A_NoBlocking , &States[S_CPOS_XDIE+3]), S_NORMAL1 (CPOS, 'R', 5, NULL , &States[S_CPOS_XDIE+4]), S_NORMAL1 (CPOS, 'S', 5, NULL , &States[S_CPOS_XDIE+5]), S_NORMAL1 (CPOS, 'T', -1, NULL , NULL), #define S_CPOS_RAISE (S_CPOS_XDIE+6) S_NORMAL1 (CPOS, 'N', 5, NULL , &States[S_CPOS_RAISE+1]), S_NORMAL1 (CPOS, 'M', 5, NULL , &States[S_CPOS_RAISE+2]), S_NORMAL1 (CPOS, 'L', 5, NULL , &States[S_CPOS_RAISE+3]), S_NORMAL1 (CPOS, 'K', 5, NULL , &States[S_CPOS_RAISE+4]), S_NORMAL1 (CPOS, 'J', 5, NULL , &States[S_CPOS_RAISE+5]), S_NORMAL1 (CPOS, 'I', 5, NULL , &States[S_CPOS_RAISE+6]), S_NORMAL1 (CPOS, 'H', 5, NULL , &States[S_CPOS_RUN+0]) }; ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (AStealthChaingunGuy, Doom, 9054, 120) PROP_FlagsSet (MF_STEALTH) PROP_RenderStyle (STYLE_Translucent) PROP_Alpha (0) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AWolfensteinSS, Doom, 84, 116) PROP_SpawnHealth (50) PROP_RadiusFixed (20) PROP_HeightFixed (56) PROP_Mass (100) PROP_SpeedFixed (8) PROP_PainChance (170) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_FLOORCLIP) PROP_SpawnState (S_SSWV_STND) PROP_SeeState (S_SSWV_RUN) PROP_PainState (S_SSWV_PAIN) PROP_MissileState (S_SSWV_ATK) PROP_DeathState (S_SSWV_DIE) PROP_XDeathState (S_SSWV_XDIE) PROP_RaiseState (S_SSWV_RAISE) PROP_SeeSound ("wolfss/sight") PROP_PainSound ("wolfss/pain") PROP_DeathSound ("wolfss/death") PROP_ActiveSound ("wolfss/active") PROP_AttackSound ("wolfss/attack") END_DEFAULTS FState AWolfensteinSS::States[] = { #define S_SSWV_STND 0 S_NORMAL1 (SSWV, 'A', 10, A_Look , &States[S_SSWV_STND+1]), S_NORMAL1 (SSWV, 'B', 10, A_Look , &States[S_SSWV_STND]), #define S_SSWV_RUN (S_SSWV_STND+2) S_NORMAL1 (SSWV, 'A', 3, A_Chase , &States[S_SSWV_RUN+1]), S_NORMAL1 (SSWV, 'A', 3, A_Chase , &States[S_SSWV_RUN+2]), S_NORMAL1 (SSWV, 'B', 3, A_Chase , &States[S_SSWV_RUN+3]), S_NORMAL1 (SSWV, 'B', 3, A_Chase , &States[S_SSWV_RUN+4]), S_NORMAL1 (SSWV, 'C', 3, A_Chase , &States[S_SSWV_RUN+5]), S_NORMAL1 (SSWV, 'C', 3, A_Chase , &States[S_SSWV_RUN+6]), S_NORMAL1 (SSWV, 'D', 3, A_Chase , &States[S_SSWV_RUN+7]), S_NORMAL1 (SSWV, 'D', 3, A_Chase , &States[S_SSWV_RUN+0]), #define S_SSWV_ATK (S_SSWV_RUN+8) S_NORMAL1 (SSWV, 'E', 10, A_FaceTarget , &States[S_SSWV_ATK+1]), S_NORMAL1 (SSWV, 'F', 10, A_FaceTarget , &States[S_SSWV_ATK+2]), S_BRIGHT (SSWV, 'G', 4, A_CPosAttack , &States[S_SSWV_ATK+3]), S_NORMAL1 (SSWV, 'F', 6, A_FaceTarget , &States[S_SSWV_ATK+4]), S_BRIGHT (SSWV, 'G', 4, A_CPosAttack , &States[S_SSWV_ATK+5]), S_NORMAL1 (SSWV, 'F', 1, A_CPosRefire , &States[S_SSWV_ATK+1]), #define S_SSWV_PAIN (S_SSWV_ATK+6) S_NORMAL1 (SSWV, 'H', 3, NULL , &States[S_SSWV_PAIN+1]), S_NORMAL1 (SSWV, 'H', 3, A_Pain , &States[S_SSWV_RUN+0]), #define S_SSWV_DIE (S_SSWV_PAIN+2) S_NORMAL1 (SSWV, 'I', 5, NULL , &States[S_SSWV_DIE+1]), S_NORMAL1 (SSWV, 'J', 5, A_Scream , &States[S_SSWV_DIE+2]), S_NORMAL1 (SSWV, 'K', 5, A_NoBlocking , &States[S_SSWV_DIE+3]), S_NORMAL1 (SSWV, 'L', 5, NULL , &States[S_SSWV_DIE+4]), S_NORMAL1 (SSWV, 'M', -1, NULL , NULL), #define S_SSWV_XDIE (S_SSWV_DIE+5) S_NORMAL1 (SSWV, 'N', 5, NULL , &States[S_SSWV_XDIE+1]), S_NORMAL1 (SSWV, 'O', 5, A_XScream , &States[S_SSWV_XDIE+2]), S_NORMAL1 (SSWV, 'P', 5, A_NoBlocking , &States[S_SSWV_XDIE+3]), S_NORMAL1 (SSWV, 'Q', 5, NULL , &States[S_SSWV_XDIE+4]), S_NORMAL1 (SSWV, 'R', 5, NULL , &States[S_SSWV_XDIE+5]), S_NORMAL1 (SSWV, 'S', 5, NULL , &States[S_SSWV_XDIE+6]), S_NORMAL1 (SSWV, 'T', 5, NULL , &States[S_SSWV_XDIE+7]), S_NORMAL1 (SSWV, 'U', 5, NULL , &States[S_SSWV_XDIE+8]), S_NORMAL1 (SSWV, 'V', -1, NULL , NULL), #define S_SSWV_RAISE (S_SSWV_XDIE+9) S_NORMAL1 (SSWV, 'M', 5, NULL , &States[S_SSWV_RAISE+1]), S_NORMAL1 (SSWV, 'L', 5, NULL , &States[S_SSWV_RAISE+2]), S_NORMAL1 (SSWV, 'K', 5, NULL , &States[S_SSWV_RAISE+3]), S_NORMAL1 (SSWV, 'J', 5, NULL , &States[S_SSWV_RAISE+4]), S_NORMAL1 (SSWV, 'I', 5, NULL , &States[S_SSWV_RUN+0]) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ARevenant, Doom, 66, 20) PROP_SpawnHealth (300) PROP_RadiusFixed (20) PROP_HeightFixed (56) PROP_Mass (500) PROP_SpeedFixed (10) PROP_PainChance (100) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_FLOORCLIP) PROP_SpawnState (S_SKEL_STND) PROP_SeeState (S_SKEL_RUN) PROP_PainState (S_SKEL_PAIN) PROP_MeleeState (S_SKEL_FIST) PROP_MissileState (S_SKEL_MISS) PROP_DeathState (S_SKEL_DIE) PROP_RaiseState (S_SKEL_RAISE) PROP_SeeSound ("skeleton/sight") PROP_PainSound ("skeleton/pain") PROP_DeathSound ("skeleton/death") PROP_ActiveSound ("skeleton/active") END_DEFAULTS FState ARevenant::States[] = { #define S_SKEL_STND 0 S_NORMAL1 (SKEL, 'A', 10, A_Look , &States[S_SKEL_STND+1]), S_NORMAL1 (SKEL, 'B', 10, A_Look , &States[S_SKEL_STND]), #define S_SKEL_RUN (S_SKEL_STND+2) S_NORMAL1 (SKEL, 'A', 2, A_Chase , &States[S_SKEL_RUN+1]), S_NORMAL1 (SKEL, 'A', 2, A_Chase , &States[S_SKEL_RUN+2]), S_NORMAL1 (SKEL, 'B', 2, A_Chase , &States[S_SKEL_RUN+3]), S_NORMAL1 (SKEL, 'B', 2, A_Chase , &States[S_SKEL_RUN+4]), S_NORMAL1 (SKEL, 'C', 2, A_Chase , &States[S_SKEL_RUN+5]), S_NORMAL1 (SKEL, 'C', 2, A_Chase , &States[S_SKEL_RUN+6]), S_NORMAL1 (SKEL, 'D', 2, A_Chase , &States[S_SKEL_RUN+7]), S_NORMAL1 (SKEL, 'D', 2, A_Chase , &States[S_SKEL_RUN+8]), S_NORMAL1 (SKEL, 'E', 2, A_Chase , &States[S_SKEL_RUN+9]), S_NORMAL1 (SKEL, 'E', 2, A_Chase , &States[S_SKEL_RUN+10]), S_NORMAL1 (SKEL, 'F', 2, A_Chase , &States[S_SKEL_RUN+11]), S_NORMAL1 (SKEL, 'F', 2, A_Chase , &States[S_SKEL_RUN+0]), #define S_SKEL_FIST (S_SKEL_RUN+12) S_NORMAL1 (SKEL, 'G', 0, A_FaceTarget , &States[S_SKEL_FIST+1]), S_NORMAL1 (SKEL, 'G', 6, A_SkelWhoosh , &States[S_SKEL_FIST+2]), S_NORMAL1 (SKEL, 'H', 6, A_FaceTarget , &States[S_SKEL_FIST+3]), S_NORMAL1 (SKEL, 'I', 6, A_SkelFist , &States[S_SKEL_RUN+0]), #define S_SKEL_MISS (S_SKEL_FIST+4) S_BRIGHT (SKEL, 'J', 0, A_FaceTarget , &States[S_SKEL_MISS+1]), S_BRIGHT (SKEL, 'J', 10, A_FaceTarget , &States[S_SKEL_MISS+2]), S_NORMAL1 (SKEL, 'K', 10, A_SkelMissile , &States[S_SKEL_MISS+3]), S_NORMAL1 (SKEL, 'K', 10, A_FaceTarget , &States[S_SKEL_RUN+0]), #define S_SKEL_PAIN (S_SKEL_MISS+4) S_NORMAL1 (SKEL, 'L', 5, NULL , &States[S_SKEL_PAIN+1]), S_NORMAL1 (SKEL, 'L', 5, A_Pain , &States[S_SKEL_RUN+0]), #define S_SKEL_DIE (S_SKEL_PAIN+2) S_NORMAL1 (SKEL, 'L', 7, NULL , &States[S_SKEL_DIE+1]), S_NORMAL1 (SKEL, 'M', 7, NULL , &States[S_SKEL_DIE+2]), S_NORMAL1 (SKEL, 'N', 7, A_Scream , &States[S_SKEL_DIE+3]), S_NORMAL1 (SKEL, 'O', 7, A_NoBlocking , &States[S_SKEL_DIE+4]), S_NORMAL1 (SKEL, 'P', 7, NULL , &States[S_SKEL_DIE+5]), S_NORMAL1 (SKEL, 'Q', -1, NULL , NULL), #define S_SKEL_RAISE (S_SKEL_DIE+6) S_NORMAL1 (SKEL, 'Q', 5, NULL , &States[S_SKEL_RAISE+1]), S_NORMAL1 (SKEL, 'P', 5, NULL , &States[S_SKEL_RAISE+2]), S_NORMAL1 (SKEL, 'O', 5, NULL , &States[S_SKEL_RAISE+3]), S_NORMAL1 (SKEL, 'N', 5, NULL , &States[S_SKEL_RAISE+4]), S_NORMAL1 (SKEL, 'M', 5, NULL , &States[S_SKEL_RAISE+5]), S_NORMAL1 (SKEL, 'L', 5, NULL , &States[S_SKEL_RUN+0]) }; ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR (AStealthRevenant, Doom, 9059, 124) PROP_FlagsSet (MF_STEALTH) PROP_RenderStyle (STYLE_Translucent) PROP_Alpha (0) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ARevenantTracer, Doom, -1, 53) PROP_RadiusFixed (11) PROP_HeightFixed (8) PROP_SpeedFixed (10) PROP_Damage (10) PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY) PROP_Flags2 (MF2_PCROSS|MF2_IMPACT|MF2_NOTELEPORT) PROP_RenderStyle (STYLE_Add) PROP_SpawnState (S_TRACER) PROP_DeathState (S_TRACEEXP) PROP_SeeSound ("skeleton/attack") PROP_DeathSound ("skeleton/tracex") END_DEFAULTS FState ARevenantTracer::States[] = { #define S_TRACER 0 S_BRIGHT (FATB, 'A', 2, A_Tracer , &States[S_TRACER+1]), S_BRIGHT (FATB, 'B', 2, A_Tracer , &States[S_TRACER]), #define S_TRACEEXP (S_TRACER+2) S_BRIGHT (FBXP, 'A', 8, NULL , &States[S_TRACEEXP+1]), S_BRIGHT (FBXP, 'B', 6, NULL , &States[S_TRACEEXP+2]), S_BRIGHT (FBXP, 'C', 4, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ARevenantTracerSmoke, Doom, -1, 0) PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY) PROP_RenderStyle (STYLE_Translucent) PROP_Alpha (TRANSLUC50) PROP_SpawnState (0) END_DEFAULTS FState ARevenantTracerSmoke::States[] = { S_NORMAL1 (PUFF, 'B', 4, NULL , &States[1]), S_NORMAL1 (PUFF, 'C', 4, NULL , &States[2]), S_NORMAL1 (PUFF, 'B', 4, NULL , &States[3]), S_NORMAL1 (PUFF, 'C', 4, NULL , &States[4]), S_NORMAL1 (PUFF, 'D', 4, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ASpiderMastermind, Doom, 7, 7) PROP_SpawnHealth (3000) PROP_RadiusFixed (128) PROP_HeightFixed (100) PROP_Mass (1000) PROP_SpeedFixed (12) PROP_PainChance (40) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_BOSS|MF2_FLOORCLIP) PROP_Flags3 (MF3_NORADIUSDMG|MF3_DONTMORPH) PROP_Flags4 (MF4_BOSSDEATH) PROP_SpawnState (S_SPID_STND) PROP_SeeState (S_SPID_RUN) PROP_PainState (S_SPID_PAIN) PROP_MissileState (S_SPID_ATK) PROP_DeathState (S_SPID_DIE) PROP_SeeSound ("spider/sight") PROP_AttackSound ("spider/attack") PROP_PainSound ("spider/pain") PROP_DeathSound ("spider/death") PROP_ActiveSound ("spider/active") END_DEFAULTS FState ASpiderMastermind::States[] = { #define S_SPID_STND 0 S_NORMAL1 (SPID, 'A', 10, A_Look , &States[S_SPID_STND+1]), S_NORMAL1 (SPID, 'B', 10, A_Look , &States[S_SPID_STND]), #define S_SPID_RUN (S_SPID_STND+2) S_NORMAL1 (SPID, 'A', 3, A_Metal , &States[S_SPID_RUN+1]), S_NORMAL1 (SPID, 'A', 3, A_Chase , &States[S_SPID_RUN+2]), S_NORMAL1 (SPID, 'B', 3, A_Chase , &States[S_SPID_RUN+3]), S_NORMAL1 (SPID, 'B', 3, A_Chase , &States[S_SPID_RUN+4]), S_NORMAL1 (SPID, 'C', 3, A_Metal , &States[S_SPID_RUN+5]), S_NORMAL1 (SPID, 'C', 3, A_Chase , &States[S_SPID_RUN+6]), S_NORMAL1 (SPID, 'D', 3, A_Chase , &States[S_SPID_RUN+7]), S_NORMAL1 (SPID, 'D', 3, A_Chase , &States[S_SPID_RUN+8]), S_NORMAL1 (SPID, 'E', 3, A_Metal , &States[S_SPID_RUN+9]), S_NORMAL1 (SPID, 'E', 3, A_Chase , &States[S_SPID_RUN+10]), S_NORMAL1 (SPID, 'F', 3, A_Chase , &States[S_SPID_RUN+11]), S_NORMAL1 (SPID, 'F', 3, A_Chase , &States[S_SPID_RUN+0]), #define S_SPID_ATK (S_SPID_RUN+12) S_BRIGHT (SPID, 'A', 20, A_FaceTarget , &States[S_SPID_ATK+1]), S_BRIGHT (SPID, 'G', 4, A_SPosAttackUseAtkSound , &States[S_SPID_ATK+2]), S_BRIGHT (SPID, 'H', 4, A_SPosAttackUseAtkSound , &States[S_SPID_ATK+3]), S_BRIGHT (SPID, 'H', 1, A_SpidRefire , &States[S_SPID_ATK+1]), #define S_SPID_PAIN (S_SPID_ATK+4) S_NORMAL1 (SPID, 'I', 3, NULL , &States[S_SPID_PAIN+1]), S_NORMAL1 (SPID, 'I', 3, A_Pain , &States[S_SPID_RUN+0]), #define S_SPID_DIE (S_SPID_PAIN+2) S_NORMAL1 (SPID, 'J', 20, A_Scream , &States[S_SPID_DIE+1]), S_NORMAL1 (SPID, 'K', 10, A_NoBlocking , &States[S_SPID_DIE+2]), S_NORMAL1 (SPID, 'L', 10, NULL , &States[S_SPID_DIE+3]), S_NORMAL1 (SPID, 'M', 10, NULL , &States[S_SPID_DIE+4]), S_NORMAL1 (SPID, 'N', 10, NULL , &States[S_SPID_DIE+5]), S_NORMAL1 (SPID, 'O', 10, NULL , &States[S_SPID_DIE+6]), S_NORMAL1 (SPID, 'P', 10, NULL , &States[S_SPID_DIE+7]), S_NORMAL1 (SPID, 'Q', 10, NULL , &States[S_SPID_DIE+8]), S_NORMAL1 (SPID, 'R', 10, NULL , &States[S_SPID_DIE+9]), S_NORMAL1 (SPID, 'S', 30, NULL , &States[S_SPID_DIE+10]), S_NORMAL1 (SPID, 'S', -1, A_BossDeath , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AScriptedMarine, Doom, 9100, 151) PROP_SpawnHealth (100) PROP_RadiusFixed (16) PROP_HeightFixed (56) PROP_Mass (100) PROP_SpeedFixed (8) PROP_PainChance (MARINE_PAIN_CHANCE) PROP_Flags (MF_SOLID|MF_SHOOTABLE) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_FLOORCLIP) PROP_Flags3 (MF3_ISMONSTER) PROP_Translation (TRANSLATION_Standard,0) // Scripted marines wear gray PROP_Damage (100) PROP_SpawnState (S_MPLAYSTILL) PROP_SeeState (S_MPLAY_RUN) PROP_PainState (S_MPLAY_PAIN) PROP_MissileState (S_MPLAY_ATK) PROP_DeathState (S_MPLAY_DIE) PROP_XDeathState (S_MPLAY_XDIE) PROP_RaiseState (S_MPLAY_RAISE) PROP_DeathSound ("*death") PROP_PainSound ("*pain50") END_DEFAULTS FState AScriptedMarine::States[] = { #define S_MPLAYSTILL 0 S_NORMAL1(PLAY, 'A', 4, A_MarineLook , &States[S_MPLAYSTILL+1]), S_NORMAL1(PLAY, 'A', 4, A_MarineNoise , &States[S_MPLAYSTILL]), #define S_MPLAY (S_MPLAYSTILL+2) S_NORMAL1(PLAY, 'A', 4, A_MarineLook , &States[S_MPLAY+1]), S_NORMAL1(PLAY, 'A', 4, A_MarineNoise , &States[S_MPLAY+2]), S_NORMAL1(PLAY, 'A', 4, A_MarineLook , &States[S_MPLAY+3]), S_NORMAL1(PLAY, 'B', 4, A_MarineNoise , &States[S_MPLAY+4]), S_NORMAL1(PLAY, 'B', 4, A_MarineLook , &States[S_MPLAY+5]), S_NORMAL1(PLAY, 'B', 4, A_MarineNoise , &States[S_MPLAY]), #define S_MPLAY_RUN (S_MPLAY+6) S_NORMAL1(PLAY, 'A', 4, A_MarineChase , &States[S_MPLAY_RUN+1]), S_NORMAL1(PLAY, 'B', 4, A_MarineChase , &States[S_MPLAY_RUN+2]), S_NORMAL1(PLAY, 'C', 4, A_MarineChase , &States[S_MPLAY_RUN+3]), S_NORMAL1(PLAY, 'D', 4, A_MarineChase , &States[S_MPLAY_RUN+0]), #define S_MPLAY_ATK (S_MPLAY_RUN+4) S_NORMAL1(PLAY, 'E', 12, A_FaceTarget , &States[S_MPLAY]), S_BRIGHT (PLAY, 'F', 6, NULL , &States[S_MPLAY_ATK+0]), #define S_MPLAY_PAIN (S_MPLAY_ATK+2) S_NORMAL1(PLAY, 'G', 4, NULL , &States[S_MPLAY_PAIN+1]), S_NORMAL1(PLAY, 'G', 4, A_Pain , &States[S_MPLAY]), #define S_MPLAY_DIE (S_MPLAY_PAIN+2) S_NORMAL1(PLAY, 'H', 10, NULL , &States[S_MPLAY_DIE+1]), S_NORMAL1(PLAY, 'I', 10, A_Scream , &States[S_MPLAY_DIE+2]), S_NORMAL1(PLAY, 'J', 10, A_NoBlocking , &States[S_MPLAY_DIE+3]), S_NORMAL1(PLAY, 'K', 10, NULL , &States[S_MPLAY_DIE+4]), S_NORMAL1(PLAY, 'L', 10, NULL , &States[S_MPLAY_DIE+5]), S_NORMAL1(PLAY, 'M', 10, NULL , &States[S_MPLAY_DIE+6]), S_NORMAL1(PLAY, 'N', -1, NULL , NULL), #define S_MPLAY_XDIE (S_MPLAY_DIE+7) S_NORMAL1(PLAY, 'O', 5, NULL , &States[S_MPLAY_XDIE+1]), S_NORMAL1(PLAY, 'P', 5, A_XScream , &States[S_MPLAY_XDIE+2]), S_NORMAL1(PLAY, 'Q', 5, A_NoBlocking , &States[S_MPLAY_XDIE+3]), S_NORMAL1(PLAY, 'R', 5, NULL , &States[S_MPLAY_XDIE+4]), S_NORMAL1(PLAY, 'S', 5, NULL , &States[S_MPLAY_XDIE+5]), S_NORMAL1(PLAY, 'T', 5, NULL , &States[S_MPLAY_XDIE+6]), S_NORMAL1(PLAY, 'U', 5, NULL , &States[S_MPLAY_XDIE+7]), S_NORMAL1(PLAY, 'V', 5, NULL , &States[S_MPLAY_XDIE+8]), S_NORMAL1(PLAY, 'W', -1, NULL , NULL), #define S_MPLAY_RAISE (S_MPLAY_XDIE+9) S_NORMAL1(PLAY, 'M', 5, NULL , &States[S_MPLAY_RAISE+1]), S_NORMAL1(PLAY, 'L', 5, NULL , &States[S_MPLAY_RAISE+2]), S_NORMAL1(PLAY, 'K', 5, NULL , &States[S_MPLAY_RAISE+3]), S_NORMAL1(PLAY, 'J', 5, NULL , &States[S_MPLAY_RAISE+4]), S_NORMAL1(PLAY, 'I', 5, NULL , &States[S_MPLAY_RAISE+5]), S_NORMAL1(PLAY, 'H', 5, NULL , &States[S_MPLAY_RUN]), #define S_MPLAY_ATK_CHAINSAW (S_MPLAY_RAISE+6) S_NORMAL1(PLAY, 'E', 4, A_MarineNoise , &States[S_MPLAY_ATK_CHAINSAW+1]), S_BRIGHT (PLAY, 'F', 4, A_M_Saw , &States[S_MPLAY_ATK_CHAINSAW+2]), S_BRIGHT (PLAY, 'F', 0, A_M_SawRefire , &States[S_MPLAY_ATK_CHAINSAW+1]), S_NORMAL1(PLAY, 'A', 0, NULL , &States[S_MPLAY_RUN]), #define S_MPLAY_ATK_FIST (S_MPLAY_ATK_CHAINSAW+4) S_NORMAL1(PLAY, 'E', 4, A_FaceTarget , &States[S_MPLAY_ATK_FIST+1]), S_NORMAL1(PLAY, 'F', 4, A_M_Punch , &States[S_MPLAY_ATK_FIST+2]), // Purposefully not BRIGHT S_NORMAL1(PLAY, 'A', 9, NULL , &States[S_MPLAY_ATK_FIST+3]), S_NORMAL1(PLAY, 'A', 0, A_M_Refire , &States[S_MPLAY_ATK_FIST]), S_NORMAL1(PLAY, 'A', 5, A_FaceTarget , &States[S_MPLAY_RUN]), #define S_MPLAY_ATK_BERSERK (S_MPLAY_ATK_FIST+5) S_NORMAL1(PLAY, 'E', 4, A_FaceTarget , &States[S_MPLAY_ATK_BERSERK+1]), S_NORMAL1(PLAY, 'F', 4, A_M_BerserkPunch , &States[S_MPLAY_ATK_BERSERK+2]), // Purposefully not BRIGHT S_NORMAL1(PLAY, 'A', 9, NULL , &States[S_MPLAY_ATK_BERSERK+3]), S_NORMAL1(PLAY, 'A', 0, A_M_Refire , &States[S_MPLAY_ATK_BERSERK]), S_NORMAL1(PLAY, 'A', 5, A_FaceTarget , &States[S_MPLAY_RUN]), #define S_MPLAY_ATK_PISTOL (S_MPLAY_ATK_BERSERK+5) S_NORMAL1(PLAY, 'E', 4, A_FaceTarget , &States[S_MPLAY_ATK_PISTOL+1]), S_BRIGHT (PLAY, 'F', 6, A_M_FirePistol , &States[S_MPLAY_ATK_PISTOL+2]), S_NORMAL1(PLAY, 'A', 4, A_FaceTarget , &States[S_MPLAY_ATK_PISTOL+3]), S_NORMAL1(PLAY, 'A', 0, A_M_Refire , &States[S_MPLAY_ATK_PISTOL+5]), S_NORMAL1(PLAY, 'A', 5, NULL , &States[S_MPLAY_RUN]), S_BRIGHT (PLAY, 'F', 6, A_M_FirePistolInaccurate , &States[S_MPLAY_ATK_PISTOL+6]), S_NORMAL1(PLAY, 'A', 4, A_FaceTarget , &States[S_MPLAY_ATK_PISTOL+7]), S_NORMAL1(PLAY, 'A', 0, A_M_Refire , &States[S_MPLAY_ATK_PISTOL+5]), S_NORMAL1(PLAY, 'A', 5, A_FaceTarget , &States[S_MPLAY_RUN]), #define S_MPLAY_ATK_SHOTGUN (S_MPLAY_ATK_PISTOL+9) S_NORMAL1(PLAY, 'E', 3, A_M_CheckAttack , &States[S_MPLAY_ATK_SHOTGUN+1]), S_BRIGHT (PLAY, 'F', 7, A_M_FireShotgun , &States[S_MPLAY_RUN]), #define S_MPLAY_ATK_DSHOTGUN (S_MPLAY_ATK_SHOTGUN+2) S_NORMAL1(PLAY, 'E', 3, A_M_CheckAttack , &States[S_MPLAY_ATK_DSHOTGUN+1]), S_BRIGHT (PLAY, 'F', 7, A_M_FireShotgun2 , &States[S_MPLAY_RUN]), #define S_MPLAY_SKIP_ATTACK (S_MPLAY_ATK_DSHOTGUN+2) S_NORMAL1(PLAY, 'A', 1, NULL , &States[S_MPLAY_RUN]), #define S_MPLAY_ATK_CHAINGUN (S_MPLAY_SKIP_ATTACK+1) S_NORMAL1(PLAY, 'E', 4, A_FaceTarget , &States[S_MPLAY_ATK_CHAINGUN+1]), S_BRIGHT (PLAY, 'F', 4, A_M_FireCGunAccurate , &States[S_MPLAY_ATK_CHAINGUN+2]), S_BRIGHT (PLAY, 'F', 4, A_M_FireCGunAccurate , &States[S_MPLAY_ATK_CHAINGUN+3]), S_BRIGHT (PLAY, 'F', 4, A_M_FireCGun , &States[S_MPLAY_ATK_CHAINGUN+4]), S_BRIGHT (PLAY, 'F', 4, A_M_FireCGun , &States[S_MPLAY_ATK_CHAINGUN+5]), S_NORMAL1(PLAY, 'A', 0, A_M_Refire , &States[S_MPLAY_ATK_CHAINGUN+3]), S_NORMAL1(PLAY, 'A', 0, NULL , &States[S_MPLAY_RUN]), #define S_MPLAY_ATK_ROCKET (S_MPLAY_ATK_CHAINGUN+7) S_NORMAL1(PLAY, 'E', 8, A_FaceTarget , &States[S_MPLAY_ATK_ROCKET+1]), S_BRIGHT (PLAY, 'F', 6, A_M_FireMissile , &States[S_MPLAY_ATK_ROCKET+2]), S_NORMAL1(PLAY, 'A', 0, A_M_Refire , &States[S_MPLAY_ATK_ROCKET]), S_NORMAL1(PLAY, 'A', 0, NULL , &States[S_MPLAY_RUN]), #define S_MPLAY_ATK_RAILGUN (S_MPLAY_ATK_ROCKET+4) S_NORMAL1(PLAY, 'E', 4, A_M_CheckAttack , &States[S_MPLAY_ATK_RAILGUN+1]), S_BRIGHT (PLAY, 'F', 6, A_M_FireRailgun , &States[S_MPLAY_RUN]), #define S_MPLAY_ATK_PLASMA (S_MPLAY_ATK_RAILGUN+2) S_NORMAL1(PLAY, 'E', 2, A_FaceTarget , &States[S_MPLAY_ATK_PLASMA+1]), S_BRIGHT (PLAY, 'F', 3, A_M_FirePlasma , &States[S_MPLAY_ATK_PLASMA+2]), S_NORMAL1(PLAY, 'A', 0, A_M_Refire , &States[S_MPLAY_ATK_PLASMA+1]), S_NORMAL1(PLAY, 'A', 0, NULL , &States[S_MPLAY_RUN]), #define S_MPLAY_ATK_BFG (S_MPLAY_ATK_PLASMA+4) S_NORMAL1(PLAY, 'E', 5, A_M_BFGsound , &States[S_MPLAY_ATK_BFG+1]), S_NORMAL1(PLAY, 'E', 5, A_FaceTarget , &States[S_MPLAY_ATK_BFG+2]), S_NORMAL1(PLAY, 'E', 5, A_FaceTarget , &States[S_MPLAY_ATK_BFG+3]), S_NORMAL1(PLAY, 'E', 5, A_FaceTarget , &States[S_MPLAY_ATK_BFG+4]), S_NORMAL1(PLAY, 'E', 5, A_FaceTarget , &States[S_MPLAY_ATK_BFG+5]), S_NORMAL1(PLAY, 'E', 5, A_FaceTarget , &States[S_MPLAY_ATK_BFG+6]), S_BRIGHT (PLAY, 'F', 6, A_M_FireBFG , &States[S_MPLAY_ATK_BFG+7]), S_NORMAL1(PLAY, 'A', 4, A_FaceTarget , &States[S_MPLAY_ATK_BFG+8]), S_NORMAL1(PLAY, 'A', 0, A_M_Refire , &States[S_MPLAY_ATK_BFG]), S_NORMAL1(PLAY, 'A', 0, NULL , &States[S_MPLAY_RUN]), }; ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR(AMarineFist, Doom, 9101, 0) PROP_SpawnState(S_MPLAYSTILL) PROP_MeleeState(S_MPLAY_ATK_FIST) PROP_MissileState(255) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR(AMarineBerserk, Doom, 9102, 0) PROP_SpawnState(S_MPLAYSTILL) PROP_MeleeState(S_MPLAY_ATK_BERSERK) PROP_MissileState(255) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR(AMarineChainsaw, Doom, 9103, 0) PROP_SpawnState(S_MPLAYSTILL) PROP_MeleeState(S_MPLAY_ATK_CHAINSAW) PROP_MissileState(255) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR(AMarinePistol, Doom, 9104, 0) PROP_SpawnState(S_MPLAYSTILL) PROP_MeleeState(255) PROP_MissileState(S_MPLAY_ATK_PISTOL) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR(AMarineShotgun, Doom, 9105, 0) PROP_SpawnState(S_MPLAYSTILL) PROP_MeleeState(255) PROP_MissileState(S_MPLAY_ATK_SHOTGUN) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR(AMarineSSG, Doom, 9106, 0) PROP_SpawnState(S_MPLAYSTILL) PROP_MeleeState(255) PROP_MissileState(S_MPLAY_ATK_DSHOTGUN) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR(AMarineChaingun, Doom, 9107, 0) PROP_SpawnState(S_MPLAYSTILL) PROP_MeleeState(255) PROP_MissileState(S_MPLAY_ATK_CHAINGUN) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR(AMarineRocket, Doom, 9108, 0) PROP_SpawnState(S_MPLAYSTILL) PROP_MeleeState(255) PROP_MissileState(S_MPLAY_ATK_ROCKET) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR(AMarinePlasma, Doom, 9109, 0) PROP_SpawnState(S_MPLAYSTILL) PROP_MeleeState(255) PROP_MissileState(S_MPLAY_ATK_PLASMA) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR(AMarineRailgun, Doom, 9110, 0) PROP_SpawnState(S_MPLAYSTILL) PROP_MeleeState(255) PROP_MissileState(S_MPLAY_ATK_RAILGUN) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_STATELESS_ACTOR(AMarineBFG, Doom, 9111, 0) PROP_SpawnState(S_MPLAYSTILL) PROP_MeleeState(255) PROP_MissileState(S_MPLAY_ATK_BFG) END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AMBFHelperDog, Doom, 888, 0) PROP_SpawnHealth (500) PROP_PainChance (180) PROP_SpeedFixed (10) PROP_RadiusFixed (12) PROP_HeightFixed (28) PROP_Mass (100) PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL) PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_FLOORCLIP) PROP_SpawnState (S_DOGS_STND) PROP_SeeState (S_DOGS_RUN) PROP_PainState (S_DOGS_PAIN) PROP_MeleeState (S_DOGS_ATK) PROP_DeathState (S_DOGS_DIE) PROP_RaiseState (S_DOGS_RAISE) PROP_SeeSound ("dog/sight") PROP_AttackSound ("dog/attack") PROP_PainSound ("dog/pain") PROP_DeathSound ("dog/death") PROP_ActiveSound ("dog/active") END_DEFAULTS FState AMBFHelperDog::States[] = { #define S_DOGS_STND 0 S_NORMAL1 (DOGS, 'A', 10, A_Look , &States[S_DOGS_STND+1]), S_NORMAL1 (DOGS, 'B', 10, A_Look , &States[S_DOGS_STND]), #define S_DOGS_RUN (S_DOGS_STND+2) S_NORMAL1 (DOGS, 'A', 2, A_Chase , &States[S_DOGS_RUN+1]), S_NORMAL1 (DOGS, 'A', 2, A_Chase , &States[S_DOGS_RUN+2]), S_NORMAL1 (DOGS, 'B', 2, A_Chase , &States[S_DOGS_RUN+3]), S_NORMAL1 (DOGS, 'B', 2, A_Chase , &States[S_DOGS_RUN+4]), S_NORMAL1 (DOGS, 'C', 2, A_Chase , &States[S_DOGS_RUN+5]), S_NORMAL1 (DOGS, 'C', 2, A_Chase , &States[S_DOGS_RUN+6]), S_NORMAL1 (DOGS, 'D', 2, A_Chase , &States[S_DOGS_RUN+7]), S_NORMAL1 (DOGS, 'D', 2, A_Chase , &States[S_DOGS_RUN+0]), #define S_DOGS_ATK (S_DOGS_RUN+8) S_NORMAL1 (DOGS, 'E', 8, A_FaceTarget , &States[S_DOGS_ATK+1]), S_NORMAL1 (DOGS, 'F', 8, A_FaceTarget , &States[S_DOGS_ATK+2]), S_NORMAL1 (DOGS, 'G', 8, A_SargAttack , &States[S_DOGS_RUN+0]), #define S_DOGS_PAIN (S_DOGS_ATK+3) S_NORMAL1 (DOGS, 'H', 2, NULL , &States[S_DOGS_PAIN+1]), S_NORMAL1 (DOGS, 'H', 2, A_Pain , &States[S_DOGS_RUN+0]), #define S_DOGS_DIE (S_DOGS_PAIN+2) S_NORMAL1 (DOGS, 'I', 8, NULL , &States[S_DOGS_DIE+1]), S_NORMAL1 (DOGS, 'J', 8, A_Scream , &States[S_DOGS_DIE+2]), S_NORMAL1 (DOGS, 'K', 4, NULL , &States[S_DOGS_DIE+3]), S_NORMAL1 (DOGS, 'L', 4, A_NoBlocking , &States[S_DOGS_DIE+4]), S_NORMAL1 (DOGS, 'M', 4, NULL , &States[S_DOGS_DIE+5]), S_NORMAL1 (DOGS, 'N', -1, NULL , NULL), #define S_DOGS_RAISE (S_SARG_DIE+6) S_NORMAL1 (DOGS, 'N', 5, NULL , &States[S_DOGS_RAISE+1]), S_NORMAL1 (DOGS, 'M', 5, NULL , &States[S_DOGS_RAISE+2]), S_NORMAL1 (DOGS, 'L', 5, NULL , &States[S_DOGS_RAISE+3]), S_NORMAL1 (DOGS, 'K', 5, NULL , &States[S_DOGS_RAISE+4]), S_NORMAL1 (DOGS, 'J', 5, NULL , &States[S_DOGS_RAISE+5]), S_NORMAL1 (DOGS, 'I', 5, NULL , &States[S_DOGS_RUN+0]) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AClip, Doom, 2007, 11) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL) PROP_SpawnState (0) END_DEFAULTS FState AClip::States[] = { S_NORMAL1 (CLIP, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AClipBox, Doom, 2048, 139) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL) PROP_SpawnState (0) END_DEFAULTS FState AClipBox::States[] = { S_NORMAL1 (AMMO, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ARocketAmmo, Doom, 2010, 140) PROP_RadiusFixed (20) PROP_HeightFixed (26) PROP_Flags (MF_SPECIAL) PROP_SpawnState (0) END_DEFAULTS FState ARocketAmmo::States[] = { S_NORMAL1 (ROCK, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ARocketBox, Doom, 2046, 141) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL) PROP_SpawnState (0) END_DEFAULTS FState ARocketBox::States[] = { S_NORMAL1 (BROK, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ACell, Doom, 2047, 75) PROP_RadiusFixed (20) PROP_HeightFixed (10) PROP_Flags (MF_SPECIAL) PROP_SpawnState (0) END_DEFAULTS FState ACell::States[] = { S_NORMAL1 (CELL, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ACellPack, Doom, 17, 142) PROP_RadiusFixed (20) PROP_HeightFixed (18) PROP_Flags (MF_SPECIAL) PROP_SpawnState (0) END_DEFAULTS FState ACellPack::States[] = { S_NORMAL1 (CELP, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AShell, Doom, 2008, 12) PROP_RadiusFixed (20) PROP_HeightFixed (8) PROP_Flags (MF_SPECIAL) PROP_SpawnState (0) END_DEFAULTS FState AShell::States[] = { S_NORMAL1 (SHEL, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AShellBox, Doom, 2049, 143) PROP_RadiusFixed (20) PROP_HeightFixed (10) PROP_Flags (MF_SPECIAL) PROP_SpawnState (0) END_DEFAULTS FState AShellBox::States[] = { S_NORMAL1 (SBOX, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AFist, Doom, -1, 0) END_DEFAULTS FState AFist::States[] = { #define S_PUNCH 0 S_NORMAL1 (PUNG, 'A', 1, A_WeaponReady , &States[S_PUNCH]), #define S_PUNCHDOWN (S_PUNCH+1) S_NORMAL1 (PUNG, 'A', 1, A_Lower , &States[S_PUNCHDOWN]), #define S_PUNCHUP (S_PUNCHDOWN+1) S_NORMAL1 (PUNG, 'A', 1, A_Raise , &States[S_PUNCHUP]), #define S_PUNCH1 (S_PUNCHUP+1) S_NORMAL1 (PUNG, 'B', 4, NULL , &States[S_PUNCH1+1]), S_NORMAL1 (PUNG, 'C', 4, A_Punch , &States[S_PUNCH1+2]), S_NORMAL1 (PUNG, 'D', 5, NULL , &States[S_PUNCH1+3]), S_NORMAL1 (PUNG, 'C', 4, NULL , &States[S_PUNCH1+4]), S_NORMAL1 (PUNG, 'B', 5, A_ReFire , &States[S_PUNCH]) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (APistol, Doom, -1, 0) END_DEFAULTS FState APistol::States[] = { #define S_PISTOL 0 S_NORMAL1 (PISG, 'A', 1, A_WeaponReady , &States[S_PISTOL]), #define S_PISTOLDOWN (S_PISTOL+1) S_NORMAL1 (PISG, 'A', 1, A_Lower , &States[S_PISTOLDOWN]), #define S_PISTOLUP (S_PISTOLDOWN+1) S_NORMAL1 (PISG, 'A', 1, A_Raise , &States[S_PISTOLUP]), #define S_PISTOL1 (S_PISTOLUP+1) S_NORMAL1 (PISG, 'A', 4, NULL , &States[S_PISTOL1+1]), S_NORMAL1 (PISG, 'B', 6, A_FirePistol , &States[S_PISTOL1+2]), S_NORMAL1 (PISG, 'C', 4, NULL , &States[S_PISTOL1+3]), S_NORMAL1 (PISG, 'B', 5, A_ReFire , &States[S_PISTOL]), #define S_PISTOLFLASH (S_PISTOL1+4) S_BRIGHT (PISF, 'A', 7, A_Light1 , &AWeapon::States[S_LIGHTDONE]) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AChainsaw, Doom, 2005, 32) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL) PROP_SpawnState (S_CSAW) END_DEFAULTS FState AChainsaw::States[] = { #define S_SAW 0 S_NORMAL1 (SAWG, 'C', 4, A_WeaponReady , &States[S_SAW+1]), S_NORMAL1 (SAWG, 'D', 4, A_WeaponReady , &States[S_SAW+0]), #define S_SAWDOWN (S_SAW+2) S_NORMAL1 (SAWG, 'C', 1, A_Lower , &States[S_SAWDOWN]), #define S_SAWUP (S_SAWDOWN+1) S_NORMAL1 (SAWG, 'C', 1, A_Raise , &States[S_SAWUP]), #define S_SAW1 (S_SAWUP+1) S_NORMAL1 (SAWG, 'A', 4, A_Saw , &States[S_SAW1+1]), S_NORMAL1 (SAWG, 'B', 4, A_Saw , &States[S_SAW1+2]), S_NORMAL1 (SAWG, 'B', 0, A_ReFire , &States[S_SAW]), #define S_CSAW (S_SAW1+3) S_NORMAL1 (CSAW, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AShotgun, Doom, 2001, 27) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL) PROP_SpawnState (S_SHOT) END_DEFAULTS FState AShotgun::States[] = { #define S_SGUN 0 S_NORMAL1 (SHTG, 'A', 1, A_WeaponReady , &States[S_SGUN]), #define S_SGUNDOWN (S_SGUN+1) S_NORMAL1 (SHTG, 'A', 1, A_Lower , &States[S_SGUNDOWN]), #define S_SGUNUP (S_SGUNDOWN+1) S_NORMAL1 (SHTG, 'A', 1, A_Raise , &States[S_SGUNUP]), #define S_SGUN1 (S_SGUNUP+1) S_NORMAL1 (SHTG, 'A', 3, NULL , &States[S_SGUN1+1]), S_NORMAL1 (SHTG, 'A', 7, A_FireShotgun , &States[S_SGUN1+2]), S_NORMAL1 (SHTG, 'B', 5, NULL , &States[S_SGUN1+3]), S_NORMAL1 (SHTG, 'C', 5, NULL , &States[S_SGUN1+4]), S_NORMAL1 (SHTG, 'D', 4, NULL , &States[S_SGUN1+5]), S_NORMAL1 (SHTG, 'C', 5, NULL , &States[S_SGUN1+6]), S_NORMAL1 (SHTG, 'B', 5, NULL , &States[S_SGUN1+7]), S_NORMAL1 (SHTG, 'A', 3, NULL , &States[S_SGUN1+8]), S_NORMAL1 (SHTG, 'A', 7, A_ReFire , &States[S_SGUN]), #define S_SGUNFLASH (S_SGUN1+9) S_BRIGHT (SHTF, 'A', 4, A_Light1 , &States[S_SGUNFLASH+1]), S_BRIGHT (SHTF, 'B', 3, A_Light2 , &AWeapon::States[S_LIGHTDONE]), #define S_SHOT (S_SGUNFLASH+2) S_NORMAL1 (SHOT, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ASuperShotgun, Doom, 82, 33) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL) PROP_SpawnState (S_SHOT2) END_DEFAULTS FState ASuperShotgun::States[] = { #define S_DSGUN 0 S_NORMAL1 (SHT2, 'A', 1, A_WeaponReady , &States[S_DSGUN]), #define S_DSGUNDOWN (S_DSGUN+1) S_NORMAL1 (SHT2, 'A', 1, A_Lower , &States[S_DSGUNDOWN]), #define S_DSGUNUP (S_DSGUNDOWN+1) S_NORMAL1 (SHT2, 'A', 1, A_Raise , &States[S_DSGUNUP]), #define S_DSGUN1 (S_DSGUNUP+1) S_NORMAL1 (SHT2, 'A', 3, NULL , &States[S_DSGUN1+1]), S_NORMAL1 (SHT2, 'A', 7, A_FireShotgun2 , &States[S_DSGUN1+2]), S_NORMAL1 (SHT2, 'B', 7, NULL , &States[S_DSGUN1+3]), S_NORMAL1 (SHT2, 'C', 7, A_CheckReload , &States[S_DSGUN1+4]), S_NORMAL1 (SHT2, 'D', 7, A_OpenShotgun2 , &States[S_DSGUN1+5]), S_NORMAL1 (SHT2, 'E', 7, NULL , &States[S_DSGUN1+6]), S_NORMAL1 (SHT2, 'F', 7, A_LoadShotgun2 , &States[S_DSGUN1+7]), S_NORMAL1 (SHT2, 'G', 6, NULL , &States[S_DSGUN1+8]), S_NORMAL1 (SHT2, 'H', 6, A_CloseShotgun2 , &States[S_DSGUN1+9]), S_NORMAL1 (SHT2, 'A', 5, A_ReFire , &States[S_DSGUN]), #define S_DSNR (S_DSGUN1+10) S_NORMAL1 (SHT2, 'B', 7, NULL , &States[S_DSNR+1]), S_NORMAL1 (SHT2, 'A', 3, NULL , &States[S_DSGUNDOWN]), #define S_DSGUNFLASH (S_DSNR+2) S_BRIGHT (SHT2, 'I', 4, A_Light1 , &States[S_DSGUNFLASH+1]), S_BRIGHT (SHT2, 'J', 3, A_Light2 , &AWeapon::States[S_LIGHTDONE]), #define S_SHOT2 (S_DSGUNFLASH+2) S_NORMAL1 (SGN2, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (AChaingun, Doom, 2002, 28) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL) PROP_SpawnState (S_MGUN) END_DEFAULTS FState AChaingun::States[] = { #define S_CHAIN 0 S_NORMAL1 (CHGG, 'A', 1, A_WeaponReady , &States[S_CHAIN]), #define S_CHAINDOWN (S_CHAIN+1) S_NORMAL1 (CHGG, 'A', 1, A_Lower , &States[S_CHAINDOWN]), #define S_CHAINUP (S_CHAINDOWN+1) S_NORMAL1 (CHGG, 'A', 1, A_Raise , &States[S_CHAINUP]), #define S_CHAIN1 (S_CHAINUP+1) S_NORMAL1 (CHGG, 'A', 4, A_FireCGun , &States[S_CHAIN1+1]), S_NORMAL1 (CHGG, 'B', 4, A_FireCGun , &States[S_CHAIN1+2]), S_NORMAL1 (CHGG, 'B', 0, A_ReFire , &States[S_CHAIN]), #define S_CHAINFLASH (S_CHAIN1+3) S_BRIGHT (CHGF, 'A', 5, A_Light1 , &AWeapon::States[S_LIGHTDONE]), S_BRIGHT (CHGF, 'B', 5, A_Light2 , &AWeapon::States[S_LIGHTDONE]), #define S_MGUN (S_CHAINFLASH+2) S_NORMAL1 (MGUN, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ARocketLauncher, Doom, 2003, 29) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL) PROP_SpawnState (S_LAUN) END_DEFAULTS FState ARocketLauncher::States[] = { #define S_MISSILE 0 S_NORMAL1 (MISG, 'A', 1, A_WeaponReady , &States[S_MISSILE]), #define S_MISSILEDOWN (S_MISSILE+1) S_NORMAL1 (MISG, 'A', 1, A_Lower , &States[S_MISSILEDOWN]), #define S_MISSILEUP (S_MISSILEDOWN+1) S_NORMAL1 (MISG, 'A', 1, A_Raise , &States[S_MISSILEUP]), #define S_MISSILE1 (S_MISSILEUP+1) S_NORMAL1 (MISG, 'B', 8, A_GunFlash , &States[S_MISSILE1+1]), S_NORMAL1 (MISG, 'B', 12, A_FireMissile , &States[S_MISSILE1+2]), S_NORMAL1 (MISG, 'B', 0, A_ReFire , &States[S_MISSILE]), #define S_MISSILEFLASH (S_MISSILE1+3) S_BRIGHT (MISF, 'A', 3, A_Light1 , &States[S_MISSILEFLASH+1]), S_BRIGHT (MISF, 'B', 4, NULL , &States[S_MISSILEFLASH+2]), S_BRIGHT (MISF, 'C', 4, A_Light2 , &States[S_MISSILEFLASH+3]), S_BRIGHT (MISF, 'D', 4, A_Light2 , &AWeapon::States[S_LIGHTDONE]), #define S_LAUN (S_MISSILEFLASH+4) S_NORMAL1 (LAUN, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ARocket, Doom, -1, 127) PROP_RadiusFixed (11) PROP_HeightFixed (8) PROP_SpeedFixed (20) PROP_Damage (20) PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY) PROP_Flags2 (MF2_PCROSS|MF2_IMPACT|MF2_NOTELEPORT) PROP_SpawnState (S_ROCKET) PROP_DeathState (S_EXPLODE) PROP_SeeSound ("weapons/rocklf") PROP_DeathSound ("weapons/rocklx") END_DEFAULTS FState ARocket::States[] = { #define S_ROCKET 0 S_BRIGHT (MISL, 'A', 1, NULL , &States[S_ROCKET]), #define S_EXPLODE (S_ROCKET+1) S_BRIGHT (MISL, 'B', 8, A_Explode , &States[S_EXPLODE+1]), S_BRIGHT (MISL, 'C', 6, NULL , &States[S_EXPLODE+2]), S_BRIGHT (MISL, 'D', 4, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (APlasmaRifle, Doom, 2004, 30) PROP_RadiusFixed (20) PROP_HeightFixed (16) PROP_Flags (MF_SPECIAL) PROP_SpawnState (S_PLAS) END_DEFAULTS FState APlasmaRifle::States[] = { #define S_PLASMA 0 S_NORMAL1 (PLSG, 'A', 1, A_WeaponReady , &States[S_PLASMA]), #define S_PLASMADOWN (S_PLASMA+1) S_NORMAL1 (PLSG, 'A', 1, A_Lower , &States[S_PLASMADOWN]), #define S_PLASMAUP (S_PLASMADOWN+1) S_NORMAL1 (PLSG, 'A', 1, A_Raise , &States[S_PLASMAUP]), #define S_PLASMA1 (S_PLASMAUP+1) S_NORMAL1 (PLSG, 'A', 3, A_FirePlasma , &States[S_PLASMA1+1]), S_NORMAL1 (PLSG, 'B', 20, A_ReFire , &States[S_PLASMA]), #define S_PLASMAFLASH (S_PLASMA1+2) S_BRIGHT (PLSF, 'A', 4, A_Light1 , &AWeapon::States[S_LIGHTDONE]), S_BRIGHT (PLSF, 'B', 4, A_Light1 , &AWeapon::States[S_LIGHTDONE]), #define S_PLAS (S_PLASMAFLASH+2) S_NORMAL1 (PLAS, 'A', -1, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (APlasmaBall, Doom, -1, 51) PROP_RadiusFixed (13) PROP_HeightFixed (8) PROP_SpeedFixed (25) PROP_Damage (5) PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY) PROP_Flags2 (MF2_PCROSS|MF2_IMPACT|MF2_NOTELEPORT) PROP_RenderStyle (STYLE_Add) PROP_Alpha (TRANSLUC75) PROP_SpawnState (S_PLASBALL) PROP_DeathState (S_PLASEXP) PROP_SeeSound ("weapons/plasmaf") PROP_DeathSound ("weapons/plasmax") END_DEFAULTS FState APlasmaBall::States[] = { #define S_PLASBALL 0 S_BRIGHT (PLSS, 'A', 6, NULL , &States[S_PLASBALL+1]), S_BRIGHT (PLSS, 'B', 6, NULL , &States[S_PLASBALL]), #define S_PLASEXP (S_PLASBALL+2) S_BRIGHT (PLSE, 'A', 4, NULL , &States[S_PLASEXP+1]), S_BRIGHT (PLSE, 'B', 4, NULL , &States[S_PLASEXP+2]), S_BRIGHT (PLSE, 'C', 4, NULL , &States[S_PLASEXP+3]), S_BRIGHT (PLSE, 'D', 4, NULL , &States[S_PLASEXP+4]), S_BRIGHT (PLSE, 'E', 4, NULL , NULL) }; -- Doom's Pre-Beta BFG ------------------------------------------------- FState APlasmaBall1::States[] = { #define S_PLASBALL1 0 S_BRIGHT (PLS1, 'A', 6, NULL , &States[S_PLASBALL1+1]), S_BRIGHT (PLS1, 'B', 6, NULL , &States[S_PLASBALL1]), #define S_PLASEXP1 (S_PLASBALL1+2) S_BRIGHT (PLS1, 'C', 4, NULL , &States[S_PLASEXP1+1]), S_BRIGHT (PLS1, 'D', 4, NULL , &States[S_PLASEXP1+2]), S_BRIGHT (PLS1, 'E', 4, NULL , &States[S_PLASEXP1+3]), S_BRIGHT (PLS1, 'F', 4, NULL , &States[S_PLASEXP1+4]), S_BRIGHT (PLS1, 'G', 4, NULL , NULL) }; IMPLEMENT_ACTOR (APlasmaBall1, Doom, -1, 0) PROP_RadiusFixed (13) PROP_HeightFixed (8) PROP_SpeedFixed (25) PROP_Damage (4) PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY) PROP_Flags2 (MF2_PCROSS|MF2_IMPACT|MF2_NOTELEPORT) PROP_Flags4 (MF4_RANDOMIZE) PROP_Flags5 (MF5_OLDBFGBOUNCE) PROP_RenderStyle (STYLE_Add) PROP_Alpha (TRANSLUC75) PROP_SpawnState (S_PLASBALL) PROP_DeathState (S_PLASEXP) PROP_SeeSound ("weapons/plasmaf") PROP_DeathSound ("weapons/plasmax") END_DEFAULTS -- Doom's Pre-Beta BFG ------------------------------------------------- FState APlasmaBall2::States[] = { #define S_PLASBALL2 0 S_BRIGHT (PLS2, 'A', 6, NULL , &States[S_PLASBALL2+1]), S_BRIGHT (PLS2, 'B', 6, NULL , &States[S_PLASBALL2]), #define S_PLASEXP2 (S_PLASBALL+2) S_BRIGHT (PLS2, 'C', 4, NULL , &States[S_PLASEXP2+1]), S_BRIGHT (PLS2, 'D', 4, NULL , &States[S_PLASEXP2+2]), S_BRIGHT (PLS2, 'E', 4, NULL , NULL) }; IMPLEMENT_ACTOR (APlasmaBall2, Doom, -1, 0) PROP_RadiusFixed (13) PROP_HeightFixed (8) PROP_SpeedFixed (25) PROP_Damage (4) PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY) PROP_Flags2 (MF2_PCROSS|MF2_IMPACT|MF2_NOTELEPORT) PROP_Flags4 (MF4_RANDOMIZE) PROP_Flags5 (MF5_OLDBFGBOUNCE) PROP_RenderStyle (STYLE_Add) PROP_Alpha (TRANSLUC75) PROP_SpawnState (S_PLASBALL) PROP_DeathState (S_PLASEXP) PROP_SeeSound ("weapons/plasmaf") PROP_DeathSound ("weapons/plasmax") END_DEFAULTS ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ABFGBall, Doom, -1, 128) PROP_RadiusFixed (13) PROP_HeightFixed (8) PROP_SpeedFixed (25) PROP_Damage (100) PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY) PROP_Flags2 (MF2_PCROSS|MF2_IMPACT|MF2_NOTELEPORT) PROP_RenderStyle (STYLE_Add) PROP_Alpha (TRANSLUC75) PROP_SpawnState (S_BFGSHOT) PROP_DeathState (S_BFGLAND) PROP_DeathSound ("weapons/bfgx") END_DEFAULTS FState ABFGBall::States[] = { #define S_BFGSHOT 0 S_BRIGHT (BFS1, 'A', 4, NULL , &States[S_BFGSHOT+1]), S_BRIGHT (BFS1, 'B', 4, NULL , &States[S_BFGSHOT]), #define S_BFGLAND (S_BFGSHOT+2) S_BRIGHT (BFE1, 'A', 8, NULL , &States[S_BFGLAND+1]), S_BRIGHT (BFE1, 'B', 8, NULL , &States[S_BFGLAND+2]), S_BRIGHT (BFE1, 'C', 8, A_BFGSpray , &States[S_BFGLAND+3]), S_BRIGHT (BFE1, 'D', 8, NULL , &States[S_BFGLAND+4]), S_BRIGHT (BFE1, 'E', 8, NULL , &States[S_BFGLAND+5]), S_BRIGHT (BFE1, 'F', 8, NULL , NULL) }; ------------------------------------------------------------------------ IMPLEMENT_ACTOR (ABFGExtra, Doom, -1, 0) PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY) PROP_RenderStyle (STYLE_Add) PROP_Alpha (TRANSLUC75) PROP_SpawnState (0) END_DEFAULTS FState ABFGExtra::States[] = { S_BRIGHT (BFE2, 'A', 8, NULL , &States[1]), S_BRIGHT (BFE2, 'B', 8, NULL , &States[2]), S_BRIGHT (BFE2, 'C', 8, NULL , &States[3]), S_BRIGHT (BFE2, 'D', 8, NULL , NULL) }; ------------------------------------------------------------------------ // AItemFog, shown for respawning Doom items IMPLEMENT_ACTOR (AItemFog, Doom, -1, 0) PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY) PROP_SpawnState (0) END_DEFAULTS FState AItemFog::States[] = { S_BRIGHT (IFOG, 'A', 6, NULL , &States[1]), S_BRIGHT (IFOG, 'B', 6, NULL , &States[2]), S_BRIGHT (IFOG, 'A', 6, NULL , &States[3]), S_BRIGHT (IFOG, 'B', 6, NULL , &States[4]), S_BRIGHT (IFOG, 'C', 6, NULL , &States[5]), S_BRIGHT (IFOG, 'D', 6, NULL , &States[6]), S_BRIGHT (IFOG, 'E', 6, NULL , NULL) }; ------------------------------------------------------------------------ // Tech lamp IMPLEMENT_ACTOR (ATechLamp, Doom, 85, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(80) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState ATechLamp::States[4] = { S_BRIGHT (TLMP, 'A', 4, NULL, &States[1]), S_BRIGHT (TLMP, 'B', 4, NULL, &States[2]), S_BRIGHT (TLMP, 'C', 4, NULL, &States[3]), S_BRIGHT (TLMP, 'D', 4, NULL, &States[0]) }; ------------------------------------------------------------------------ // Tech lamp 2 IMPLEMENT_ACTOR (ATechLamp2, Doom, 86, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(60) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState ATechLamp2::States[4] = { S_BRIGHT (TLP2, 'A', 4, NULL, &States[1]), S_BRIGHT (TLP2, 'B', 4, NULL, &States[2]), S_BRIGHT (TLP2, 'C', 4, NULL, &States[3]), S_BRIGHT (TLP2, 'D', 4, NULL, &States[0]) }; ------------------------------------------------------------------------ // Column IMPLEMENT_ACTOR (AColumn, Doom, 2028, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(48) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState AColumn::States[1] = { S_BRIGHT (COLU, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Tall green column IMPLEMENT_ACTOR (ATallGreenColumn, Doom, 30, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(52) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState ATallGreenColumn::States[1] = { S_NORMAL1 (COL1, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Short green column IMPLEMENT_ACTOR (AShortGreenColumn, Doom, 31, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(40) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState AShortGreenColumn::States[1] = { S_NORMAL1 (COL2, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Tall red column IMPLEMENT_ACTOR (ATallRedColumn, Doom, 32, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(52) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState ATallRedColumn::States[1] = { S_NORMAL1 (COL3, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Short red column IMPLEMENT_ACTOR (AShortRedColumn, Doom, 33, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(40) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState AShortRedColumn::States[1] = { S_NORMAL1 (COL4, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Skull column IMPLEMENT_ACTOR (ASkullColumn, Doom, 37, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(40) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState ASkullColumn::States[1] = { S_NORMAL1 (COL6, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Heart column IMPLEMENT_ACTOR (AHeartColumn, Doom, 36, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(40) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState AHeartColumn::States[2] = { S_NORMAL1 (COL5, 'A', 14, NULL, &States[1]), S_NORMAL1 (COL5, 'B', 14, NULL, &States[0]) }; ------------------------------------------------------------------------ // Evil eye IMPLEMENT_ACTOR (AEvilEye, Doom, 41, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(54) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState AEvilEye::States[4] = { S_BRIGHT (CEYE, 'A', 6, NULL, &States[1]), S_BRIGHT (CEYE, 'B', 6, NULL, &States[2]), S_BRIGHT (CEYE, 'C', 6, NULL, &States[3]), S_BRIGHT (CEYE, 'B', 6, NULL, &States[0]) }; ------------------------------------------------------------------------ // Floating skull IMPLEMENT_ACTOR (AFloatingSkull, Doom, 42, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(26) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState AFloatingSkull::States[3] = { S_BRIGHT (FSKU, 'A', 6, NULL, &States[1]), S_BRIGHT (FSKU, 'B', 6, NULL, &States[2]), S_BRIGHT (FSKU, 'C', 6, NULL, &States[0]) }; ------------------------------------------------------------------------ // Torch tree IMPLEMENT_ACTOR (ATorchTree, Doom, 43, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(56) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState ATorchTree::States[1] = { S_NORMAL1 (TRE1, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Blue torch IMPLEMENT_ACTOR (ABlueTorch, Doom, 44, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(68) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState ABlueTorch::States[4] = { S_BRIGHT (TBLU, 'A', 4, NULL, &States[1]), S_BRIGHT (TBLU, 'B', 4, NULL, &States[2]), S_BRIGHT (TBLU, 'C', 4, NULL, &States[3]), S_BRIGHT (TBLU, 'D', 4, NULL, &States[0]) }; ------------------------------------------------------------------------ // Green torch IMPLEMENT_ACTOR (AGreenTorch, Doom, 45, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(68) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState AGreenTorch::States[4] = { S_BRIGHT (TGRN, 'A', 4, NULL, &States[1]), S_BRIGHT (TGRN, 'B', 4, NULL, &States[2]), S_BRIGHT (TGRN, 'C', 4, NULL, &States[3]), S_BRIGHT (TGRN, 'D', 4, NULL, &States[0]) }; ------------------------------------------------------------------------ // Red torch IMPLEMENT_ACTOR (ARedTorch, Doom, 46, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(68) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState ARedTorch::States[4] = { S_BRIGHT (TRED, 'A', 4, NULL, &States[1]), S_BRIGHT (TRED, 'B', 4, NULL, &States[2]), S_BRIGHT (TRED, 'C', 4, NULL, &States[3]), S_BRIGHT (TRED, 'D', 4, NULL, &States[0]) }; ------------------------------------------------------------------------ // Short blue torch IMPLEMENT_ACTOR (AShortBlueTorch, Doom, 55, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(37) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState AShortBlueTorch::States[4] = { S_BRIGHT (SMBT, 'A', 4, NULL, &States[1]), S_BRIGHT (SMBT, 'B', 4, NULL, &States[2]), S_BRIGHT (SMBT, 'C', 4, NULL, &States[3]), S_BRIGHT (SMBT, 'D', 4, NULL, &States[0]) }; ------------------------------------------------------------------------ // Short green torch IMPLEMENT_ACTOR (AShortGreenTorch, Doom, 56, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(37) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState AShortGreenTorch::States[4] = { S_BRIGHT (SMGT, 'A', 4, NULL, &States[1]), S_BRIGHT (SMGT, 'B', 4, NULL, &States[2]), S_BRIGHT (SMGT, 'C', 4, NULL, &States[3]), S_BRIGHT (SMGT, 'D', 4, NULL, &States[0]) }; ------------------------------------------------------------------------ // Short red torch IMPLEMENT_ACTOR (AShortRedTorch, Doom, 57, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(37) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState AShortRedTorch::States[4] = { S_BRIGHT (SMRT, 'A', 4, NULL, &States[1]), S_BRIGHT (SMRT, 'B', 4, NULL, &States[2]), S_BRIGHT (SMRT, 'C', 4, NULL, &States[3]), S_BRIGHT (SMRT, 'D', 4, NULL, &States[0]) }; ------------------------------------------------------------------------ // Stalagtite IMPLEMENT_ACTOR (AStalagtite, Doom, 47, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(40) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState AStalagtite::States[1] = { S_NORMAL1 (SMIT, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Tech pillar IMPLEMENT_ACTOR (ATechPillar, Doom, 48, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(128) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState ATechPillar::States[1] = { S_NORMAL1 (ELEC, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Candle stick IMPLEMENT_ACTOR (ACandlestick, Doom, 34, 0) PROP_SpawnState(0) PROP_RadiusFixed(20) PROP_HeightFixed(14) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState ACandlestick::States[1] = { S_BRIGHT (CAND, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Candelabra IMPLEMENT_ACTOR (ACandelabra, Doom, 35, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(60) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState ACandelabra::States[1] = { S_BRIGHT (CBRA, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Bloody twitch IMPLEMENT_ACTOR (ABloodyTwitch, Doom, 49, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(68) PROP_Flags(MF_SOLID|MF_SPAWNCEILING|MF_NOGRAVITY) END_DEFAULTS FState ABloodyTwitch::States[4] = { S_NORMAL1 (GOR1, 'A', 10, NULL, &States[1]), S_NORMAL1 (GOR1, 'B', 15, NULL, &States[2]), S_NORMAL1 (GOR1, 'C', 8, NULL, &States[3]), S_NORMAL1 (GOR1, 'B', 6, NULL, &States[0]) }; ------------------------------------------------------------------------ // Meat 2 IMPLEMENT_ACTOR (AMeat2, Doom, 50, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(84) PROP_Flags(MF_SOLID|MF_SPAWNCEILING|MF_NOGRAVITY) END_DEFAULTS FState AMeat2::States[1] = { S_NORMAL1 (GOR2, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Meat 3 IMPLEMENT_ACTOR (AMeat3, Doom, 51, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(84) PROP_Flags(MF_SOLID|MF_SPAWNCEILING|MF_NOGRAVITY) END_DEFAULTS FState AMeat3::States[1] = { S_NORMAL1 (GOR3, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Meat 4 IMPLEMENT_ACTOR (AMeat4, Doom, 52, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(68) PROP_Flags(MF_SOLID|MF_SPAWNCEILING|MF_NOGRAVITY) END_DEFAULTS FState AMeat4::States[1] = { S_NORMAL1 (GOR4, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Meat 5 IMPLEMENT_ACTOR (AMeat5, Doom, 53, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(52) PROP_Flags(MF_SOLID|MF_SPAWNCEILING|MF_NOGRAVITY) END_DEFAULTS FState AMeat5::States[1] = { S_NORMAL1 (GOR5, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Nonsolid meat IMPLEMENT_STATELESS_ACTOR (ANonsolidMeat2, Doom, 59, 0) PROP_RadiusFixed(20) PROP_HeightFixed(84) PROP_FlagsClear(MF_SOLID) END_DEFAULTS ------------------------------------------------------------------------ // Nonsolid meat IMPLEMENT_STATELESS_ACTOR (ANonsolidMeat3, Doom, 61, 0) PROP_RadiusFixed(20) PROP_HeightFixed(52) PROP_FlagsClear(MF_SOLID) END_DEFAULTS ------------------------------------------------------------------------ // Nonsolid meat IMPLEMENT_STATELESS_ACTOR (ANonsolidMeat4, Doom, 60, 0) PROP_RadiusFixed(20) PROP_HeightFixed(68) PROP_FlagsClear(MF_SOLID) END_DEFAULTS ------------------------------------------------------------------------ // Nonsolid meat IMPLEMENT_STATELESS_ACTOR (ANonsolidMeat5, Doom, 62, 0) PROP_RadiusFixed(20) PROP_HeightFixed(52) PROP_FlagsClear(MF_SOLID) END_DEFAULTS ------------------------------------------------------------------------ // Nonsolid bloody twitch IMPLEMENT_STATELESS_ACTOR (ANonsolidTwitch, Doom, 63, 0) PROP_RadiusFixed(20) PROP_HeightFixed(68) PROP_FlagsClear(MF_SOLID) END_DEFAULTS ------------------------------------------------------------------------ // Head on a stick IMPLEMENT_ACTOR (AHeadOnAStick, Doom, 27, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(56) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState AHeadOnAStick::States[1] = { S_NORMAL1 (POL4, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Heads (plural!) on a stick IMPLEMENT_ACTOR (AHeadsOnAStick, Doom, 28, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(64) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState AHeadsOnAStick::States[1] = { S_NORMAL1 (POL2, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Head candles IMPLEMENT_ACTOR (AHeadCandles, Doom, 29, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(42) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState AHeadCandles::States[2] = { S_BRIGHT (POL3, 'A', 6, NULL, &States[1]), S_BRIGHT (POL3, 'B', 6, NULL, &States[0]) }; ------------------------------------------------------------------------ // Dead on a stick IMPLEMENT_ACTOR (ADeadStick, Doom, 25, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(64) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState ADeadStick::States[1] = { S_NORMAL1 (POL1, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Still alive on a stick IMPLEMENT_ACTOR (ALiveStick, Doom, 26, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(64) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState ALiveStick::States[2] = { S_NORMAL1 (POL6, 'A', 6, NULL, &States[1]), S_NORMAL1 (POL6, 'B', 8, NULL, &States[0]) }; ------------------------------------------------------------------------ // Big tree IMPLEMENT_ACTOR (ABigTree, Doom, 54, 0) PROP_SpawnState(0) PROP_RadiusFixed(32) PROP_HeightFixed(108) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState ABigTree::States[1] = { S_NORMAL1 (TRE2, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Burning barrel IMPLEMENT_ACTOR (ABurningBarrel, Doom, 70, 149) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(32) PROP_Flags(MF_SOLID) PROP_ProjectilePassHeight(-16) END_DEFAULTS FState ABurningBarrel::States[3] = { S_BRIGHT (FCAN, 'A', 4, NULL, &States[1]), S_BRIGHT (FCAN, 'B', 4, NULL, &States[2]), S_BRIGHT (FCAN, 'C', 4, NULL, &States[0]) }; ------------------------------------------------------------------------ // Hanging with no guts IMPLEMENT_ACTOR (AHangNoGuts, Doom, 73, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(88) PROP_Flags(MF_SOLID|MF_SPAWNCEILING|MF_NOGRAVITY) END_DEFAULTS FState AHangNoGuts::States[1] = { S_NORMAL1 (HDB1, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Hanging from bottom with no brain IMPLEMENT_ACTOR (AHangBNoBrain, Doom, 74, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(88) PROP_Flags(MF_SOLID|MF_SPAWNCEILING|MF_NOGRAVITY) END_DEFAULTS FState AHangBNoBrain::States[1] = { S_NORMAL1 (HDB2, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Hanging from top, looking down IMPLEMENT_ACTOR (AHangTLookingDown, Doom, 75, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(64) PROP_Flags(MF_SOLID|MF_SPAWNCEILING|MF_NOGRAVITY) END_DEFAULTS FState AHangTLookingDown::States[1] = { S_NORMAL1 (HDB3, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Hanging from top, looking up IMPLEMENT_ACTOR (AHangTLookingUp, Doom, 77, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(64) PROP_Flags(MF_SOLID|MF_SPAWNCEILING|MF_NOGRAVITY) END_DEFAULTS FState AHangTLookingUp::States[1] = { S_NORMAL1 (HDB5, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Hanging from top, skully IMPLEMENT_ACTOR (AHangTSkull, Doom, 76, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(64) PROP_Flags(MF_SOLID|MF_SPAWNCEILING|MF_NOGRAVITY) END_DEFAULTS FState AHangTSkull::States[1] = { S_NORMAL1 (HDB4, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Hanging from top without a brain IMPLEMENT_ACTOR (AHangTNoBrain, Doom, 78, 0) PROP_SpawnState(0) PROP_RadiusFixed(16) PROP_HeightFixed(64) PROP_Flags(MF_SOLID|MF_SPAWNCEILING|MF_NOGRAVITY) END_DEFAULTS FState AHangTNoBrain::States[1] = { S_NORMAL1 (HDB6, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Colon gibs IMPLEMENT_ACTOR (AColonGibs, Doom, 79, 147) PROP_SpawnState(0) PROP_RadiusFixed(20) PROP_HeightFixed(4) PROP_Flags(MF_NOBLOCKMAP) END_DEFAULTS FState AColonGibs::States[1] = { S_NORMAL1 (POB1, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // Small pool o' blood IMPLEMENT_ACTOR (ASmallBloodPool, Doom, 80, 148) PROP_SpawnState(0) PROP_RadiusFixed(20) PROP_HeightFixed(1) PROP_Flags(MF_NOBLOCKMAP) END_DEFAULTS FState ASmallBloodPool::States[1] = { S_NORMAL1 (POB2, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------ // brain stem lying on the ground IMPLEMENT_ACTOR (ABrainStem, Doom, 81, 150) PROP_SpawnState(0) PROP_RadiusFixed(20) PROP_HeightFixed(4) PROP_Flags(MF_NOBLOCKMAP) END_DEFAULTS FState ABrainStem::States[1] = { S_NORMAL1 (BRS1, 'A', -1, NULL, NULL) }; ------------------------------------------------------------------------