From efcf56308a8f0c217e8884e035e2790204c43c50 Mon Sep 17 00:00:00 2001 From: Fabian Greffrath Date: Mon, 12 Sep 2022 18:55:05 +0200 Subject: [PATCH] make the entire code base clang-15 compatible (#728) * make cheat codes clang-15 compatible * make the entire code base clang-15 compatible * hopefully silence MSVC compiler warnings * name arguments * cosmetic line break * cosmetic spacing * convert actionf_t into a union of function pointers * convert some forgotten code pointers * remove support for non-existant two-arg action pointers * apparently MSVC makes a difference between func() and func(void), wow! * back to the original two-arg PSPR function pointers --- src/d_deh.c | 248 +++--- src/d_think.h | 12 +- src/info.c | 2074 ++++++++++++++++++++++++------------------------ src/info.h | 2 +- src/m_cheat.c | 4 +- src/p_ceilng.c | 6 +- src/p_doors.c | 12 +- src/p_enemy.c | 14 +- src/p_floor.c | 12 +- src/p_genlin.c | 16 +- src/p_lights.c | 8 +- src/p_mobj.c | 12 +- src/p_plats.c | 6 +- src/p_pspr.c | 13 +- src/p_pspr.h | 2 +- src/p_saveg.c | 116 +-- src/p_spec.c | 6 +- src/p_telept.c | 4 +- src/p_tick.c | 10 +- src/r_data.c | 2 +- 20 files changed, 1294 insertions(+), 1285 deletions(-) diff --git a/src/d_deh.c b/src/d_deh.c index 0051f9f4..a7c7dab7 100644 --- a/src/d_deh.c +++ b/src/d_deh.c @@ -1492,127 +1492,127 @@ typedef struct { deh_bexptr deh_bexptrs[] = { - {A_Light0, "A_Light0"}, - {A_WeaponReady, "A_WeaponReady"}, - {A_Lower, "A_Lower"}, - {A_Raise, "A_Raise"}, - {A_Punch, "A_Punch"}, - {A_ReFire, "A_ReFire"}, - {A_FirePistol, "A_FirePistol"}, - {A_Light1, "A_Light1"}, - {A_FireShotgun, "A_FireShotgun"}, - {A_Light2, "A_Light2"}, - {A_FireShotgun2, "A_FireShotgun2"}, - {A_CheckReload, "A_CheckReload"}, - {A_OpenShotgun2, "A_OpenShotgun2"}, - {A_LoadShotgun2, "A_LoadShotgun2"}, - {A_CloseShotgun2, "A_CloseShotgun2"}, - {A_FireCGun, "A_FireCGun"}, - {A_GunFlash, "A_GunFlash"}, - {A_FireMissile, "A_FireMissile"}, - {A_Saw, "A_Saw"}, - {A_FirePlasma, "A_FirePlasma"}, - {A_BFGsound, "A_BFGsound"}, - {A_FireBFG, "A_FireBFG"}, - {A_BFGSpray, "A_BFGSpray"}, - {A_Explode, "A_Explode"}, - {A_Pain, "A_Pain"}, - {A_PlayerScream, "A_PlayerScream"}, - {A_Fall, "A_Fall"}, - {A_XScream, "A_XScream"}, - {A_Look, "A_Look"}, - {A_Chase, "A_Chase"}, - {A_FaceTarget, "A_FaceTarget"}, - {A_PosAttack, "A_PosAttack"}, - {A_Scream, "A_Scream"}, - {A_SPosAttack, "A_SPosAttack"}, - {A_VileChase, "A_VileChase"}, - {A_VileStart, "A_VileStart"}, - {A_VileTarget, "A_VileTarget"}, - {A_VileAttack, "A_VileAttack"}, - {A_StartFire, "A_StartFire"}, - {A_Fire, "A_Fire"}, - {A_FireCrackle, "A_FireCrackle"}, - {A_Tracer, "A_Tracer"}, - {A_SkelWhoosh, "A_SkelWhoosh"}, - {A_SkelFist, "A_SkelFist"}, - {A_SkelMissile, "A_SkelMissile"}, - {A_FatRaise, "A_FatRaise"}, - {A_FatAttack1, "A_FatAttack1"}, - {A_FatAttack2, "A_FatAttack2"}, - {A_FatAttack3, "A_FatAttack3"}, - {A_BossDeath, "A_BossDeath"}, - {A_CPosAttack, "A_CPosAttack"}, - {A_CPosRefire, "A_CPosRefire"}, - {A_TroopAttack, "A_TroopAttack"}, - {A_SargAttack, "A_SargAttack"}, - {A_HeadAttack, "A_HeadAttack"}, - {A_BruisAttack, "A_BruisAttack"}, - {A_SkullAttack, "A_SkullAttack"}, - {A_Metal, "A_Metal"}, - {A_SpidRefire, "A_SpidRefire"}, - {A_BabyMetal, "A_BabyMetal"}, - {A_BspiAttack, "A_BspiAttack"}, - {A_Hoof, "A_Hoof"}, - {A_CyberAttack, "A_CyberAttack"}, - {A_PainAttack, "A_PainAttack"}, - {A_PainDie, "A_PainDie"}, - {A_KeenDie, "A_KeenDie"}, - {A_BrainPain, "A_BrainPain"}, - {A_BrainScream, "A_BrainScream"}, - {A_BrainDie, "A_BrainDie"}, - {A_BrainAwake, "A_BrainAwake"}, - {A_BrainSpit, "A_BrainSpit"}, - {A_SpawnSound, "A_SpawnSound"}, - {A_SpawnFly, "A_SpawnFly"}, - {A_BrainExplode, "A_BrainExplode"}, - {A_Detonate, "A_Detonate"}, // killough 8/9/98 - {A_Mushroom, "A_Mushroom"}, // killough 10/98 - {A_Die, "A_Die"}, // killough 11/98 - {A_Spawn, "A_Spawn"}, // killough 11/98 - {A_Turn, "A_Turn"}, // killough 11/98 - {A_Face, "A_Face"}, // killough 11/98 - {A_Scratch, "A_Scratch"}, // killough 11/98 - {A_PlaySound, "A_PlaySound"}, // killough 11/98 - {A_RandomJump, "A_RandomJump"}, // killough 11/98 - {A_LineEffect, "A_LineEffect"}, // killough 11/98 + {{A_Light0}, "A_Light0"}, + {{A_WeaponReady}, "A_WeaponReady"}, + {{A_Lower}, "A_Lower"}, + {{A_Raise}, "A_Raise"}, + {{A_Punch}, "A_Punch"}, + {{A_ReFire}, "A_ReFire"}, + {{A_FirePistol}, "A_FirePistol"}, + {{A_Light1}, "A_Light1"}, + {{A_FireShotgun}, "A_FireShotgun"}, + {{A_Light2}, "A_Light2"}, + {{A_FireShotgun2}, "A_FireShotgun2"}, + {{A_CheckReload}, "A_CheckReload"}, + {{A_OpenShotgun2}, "A_OpenShotgun2"}, + {{A_LoadShotgun2}, "A_LoadShotgun2"}, + {{A_CloseShotgun2}, "A_CloseShotgun2"}, + {{A_FireCGun}, "A_FireCGun"}, + {{A_GunFlash}, "A_GunFlash"}, + {{A_FireMissile}, "A_FireMissile"}, + {{A_Saw}, "A_Saw"}, + {{A_FirePlasma}, "A_FirePlasma"}, + {{A_BFGsound}, "A_BFGsound"}, + {{A_FireBFG}, "A_FireBFG"}, + {{A_BFGSpray}, "A_BFGSpray"}, + {{A_Explode}, "A_Explode"}, + {{A_Pain}, "A_Pain"}, + {{A_PlayerScream}, "A_PlayerScream"}, + {{A_Fall}, "A_Fall"}, + {{A_XScream}, "A_XScream"}, + {{A_Look}, "A_Look"}, + {{A_Chase}, "A_Chase"}, + {{A_FaceTarget}, "A_FaceTarget"}, + {{A_PosAttack}, "A_PosAttack"}, + {{A_Scream}, "A_Scream"}, + {{A_SPosAttack}, "A_SPosAttack"}, + {{A_VileChase}, "A_VileChase"}, + {{A_VileStart}, "A_VileStart"}, + {{A_VileTarget}, "A_VileTarget"}, + {{A_VileAttack}, "A_VileAttack"}, + {{A_StartFire}, "A_StartFire"}, + {{A_Fire}, "A_Fire"}, + {{A_FireCrackle}, "A_FireCrackle"}, + {{A_Tracer}, "A_Tracer"}, + {{A_SkelWhoosh}, "A_SkelWhoosh"}, + {{A_SkelFist}, "A_SkelFist"}, + {{A_SkelMissile}, "A_SkelMissile"}, + {{A_FatRaise}, "A_FatRaise"}, + {{A_FatAttack1}, "A_FatAttack1"}, + {{A_FatAttack2}, "A_FatAttack2"}, + {{A_FatAttack3}, "A_FatAttack3"}, + {{A_BossDeath}, "A_BossDeath"}, + {{A_CPosAttack}, "A_CPosAttack"}, + {{A_CPosRefire}, "A_CPosRefire"}, + {{A_TroopAttack}, "A_TroopAttack"}, + {{A_SargAttack}, "A_SargAttack"}, + {{A_HeadAttack}, "A_HeadAttack"}, + {{A_BruisAttack}, "A_BruisAttack"}, + {{A_SkullAttack}, "A_SkullAttack"}, + {{A_Metal}, "A_Metal"}, + {{A_SpidRefire}, "A_SpidRefire"}, + {{A_BabyMetal}, "A_BabyMetal"}, + {{A_BspiAttack}, "A_BspiAttack"}, + {{A_Hoof}, "A_Hoof"}, + {{A_CyberAttack}, "A_CyberAttack"}, + {{A_PainAttack}, "A_PainAttack"}, + {{A_PainDie}, "A_PainDie"}, + {{A_KeenDie}, "A_KeenDie"}, + {{A_BrainPain}, "A_BrainPain"}, + {{A_BrainScream}, "A_BrainScream"}, + {{A_BrainDie}, "A_BrainDie"}, + {{A_BrainAwake}, "A_BrainAwake"}, + {{A_BrainSpit}, "A_BrainSpit"}, + {{A_SpawnSound}, "A_SpawnSound"}, + {{A_SpawnFly}, "A_SpawnFly"}, + {{A_BrainExplode}, "A_BrainExplode"}, + {{A_Detonate}, "A_Detonate"}, // killough 8/9/98 + {{A_Mushroom}, "A_Mushroom"}, // killough 10/98 + {{A_Die}, "A_Die"}, // killough 11/98 + {{A_Spawn}, "A_Spawn"}, // killough 11/98 + {{A_Turn}, "A_Turn"}, // killough 11/98 + {{A_Face}, "A_Face"}, // killough 11/98 + {{A_Scratch}, "A_Scratch"}, // killough 11/98 + {{A_PlaySound}, "A_PlaySound"}, // killough 11/98 + {{A_RandomJump}, "A_RandomJump"}, // killough 11/98 + {{A_LineEffect}, "A_LineEffect"}, // killough 11/98 - {A_FireOldBFG, "A_FireOldBFG"}, // killough 7/19/98: classic BFG firing function - {A_BetaSkullAttack, "A_BetaSkullAttack"}, // killough 10/98: beta lost souls attacked different - {A_Stop, "A_Stop"}, + {{A_FireOldBFG}, "A_FireOldBFG"}, // killough 7/19/98: classic BFG firing function + {{A_BetaSkullAttack}, "A_BetaSkullAttack"}, // killough 10/98: beta lost souls attacked different + {{A_Stop}, "A_Stop"}, // [XA] New mbf21 codepointers - {A_SpawnObject, "A_SpawnObject", 8}, - {A_MonsterProjectile, "A_MonsterProjectile", 5}, - {A_MonsterBulletAttack, "A_MonsterBulletAttack", 5, {0, 0, 1, 3, 5}}, - {A_MonsterMeleeAttack, "A_MonsterMeleeAttack", 4, {3, 8, 0, 0}}, - {A_RadiusDamage, "A_RadiusDamage", 2}, - {A_NoiseAlert, "A_NoiseAlert", 0}, - {A_HealChase, "A_HealChase", 2}, - {A_SeekTracer, "A_SeekTracer", 2}, - {A_FindTracer, "A_FindTracer", 2, {0, 10}}, - {A_ClearTracer, "A_ClearTracer", 0}, - {A_JumpIfHealthBelow, "A_JumpIfHealthBelow", 2}, - {A_JumpIfTargetInSight, "A_JumpIfTargetInSight", 2}, - {A_JumpIfTargetCloser, "A_JumpIfTargetCloser", 2}, - {A_JumpIfTracerInSight, "A_JumpIfTracerInSight", 2}, - {A_JumpIfTracerCloser, "A_JumpIfTracerCloser", 2}, - {A_JumpIfFlagsSet, "A_JumpIfFlagsSet", 3}, - {A_AddFlags, "A_AddFlags", 2}, - {A_RemoveFlags, "A_RemoveFlags", 2}, - {A_WeaponProjectile, "A_WeaponProjectile", 5}, - {A_WeaponBulletAttack, "A_WeaponBulletAttack", 5, {0, 0, 1, 5, 3}}, - {A_WeaponMeleeAttack, "A_WeaponMeleeAttack", 5, {2, 10, 1 * FRACUNIT, 0, 0}}, - {A_WeaponSound, "A_WeaponSound", 2}, - {A_WeaponAlert, "A_WeaponAlert", 0}, - {A_WeaponJump, "A_WeaponJump", 2}, - {A_ConsumeAmmo, "A_ConsumeAmmo", 1}, - {A_CheckAmmo, "A_CheckAmmo", 2}, - {A_RefireTo, "A_RefireTo", 2}, - {A_GunFlashTo, "A_GunFlashTo", 2}, + {{A_SpawnObject}, "A_SpawnObject", 8}, + {{A_MonsterProjectile}, "A_MonsterProjectile", 5}, + {{A_MonsterBulletAttack}, "A_MonsterBulletAttack", 5, {0, 0, 1, 3, 5}}, + {{A_MonsterMeleeAttack}, "A_MonsterMeleeAttack", 4, {3, 8, 0, 0}}, + {{A_RadiusDamage}, "A_RadiusDamage", 2}, + {{A_NoiseAlert}, "A_NoiseAlert", 0}, + {{A_HealChase}, "A_HealChase", 2}, + {{A_SeekTracer}, "A_SeekTracer", 2}, + {{A_FindTracer}, "A_FindTracer", 2, {0, 10}}, + {{A_ClearTracer}, "A_ClearTracer", 0}, + {{A_JumpIfHealthBelow}, "A_JumpIfHealthBelow", 2}, + {{A_JumpIfTargetInSight}, "A_JumpIfTargetInSight", 2}, + {{A_JumpIfTargetCloser}, "A_JumpIfTargetCloser", 2}, + {{A_JumpIfTracerInSight}, "A_JumpIfTracerInSight", 2}, + {{A_JumpIfTracerCloser}, "A_JumpIfTracerCloser", 2}, + {{A_JumpIfFlagsSet}, "A_JumpIfFlagsSet", 3}, + {{A_AddFlags}, "A_AddFlags", 2}, + {{A_RemoveFlags}, "A_RemoveFlags", 2}, + {{A_WeaponProjectile}, "A_WeaponProjectile", 5}, + {{A_WeaponBulletAttack}, "A_WeaponBulletAttack", 5, {0, 0, 1, 5, 3}}, + {{A_WeaponMeleeAttack}, "A_WeaponMeleeAttack", 5, {2, 10, 1 * FRACUNIT, 0, 0}}, + {{A_WeaponSound}, "A_WeaponSound", 2}, + {{A_WeaponAlert}, "A_WeaponAlert", 0}, + {{A_WeaponJump}, "A_WeaponJump", 2}, + {{A_ConsumeAmmo}, "A_ConsumeAmmo", 1}, + {{A_CheckAmmo}, "A_CheckAmmo", 2}, + {{A_RefireTo}, "A_RefireTo", 2}, + {{A_GunFlashTo}, "A_GunFlashTo", 2}, // This NULL entry must be the last in the list - {NULL, "A_NULL"}, // Ty 05/16/98 + {{NULL}, "A_NULL"}, // Ty 05/16/98 }; extern byte *defined_codeptr_args; @@ -1848,10 +1848,10 @@ void deh_procBexCodePointers(DEHFILE *fpin, FILE* fpout, char *line) states[indexnum].action = deh_bexptrs[i].cptr; // assign if (fpout) fprintf(fpout, " - applied %p from codeptr[%d] to states[%d]\n", - (void*)(intptr_t)deh_bexptrs[i].cptr,i,indexnum); + (void*)(intptr_t)deh_bexptrs[i].cptr.v,i,indexnum); found = TRUE; } - } while (!found && (deh_bexptrs[i].cptr != NULL)); // [FG] lookup is never NULL! + } while (!found && (deh_bexptrs[i].cptr.v != NULL)); // [FG] lookup is never NULL! if (!found) if (fpout) fprintf(fpout, @@ -2282,11 +2282,11 @@ void deh_procPointer(DEHFILE *fpin, FILE* fpout, char *line) // done if (!strcasecmp(key,deh_state[4])) // Codep frame (not set in Frame deh block) { states[indexnum].action = deh_codeptr[value]; - if (fpout) fprintf(fpout," - applied %p from codeptr[%ld] to states[%d]\n",(void*)(intptr_t)deh_codeptr[value],value,indexnum); + if (fpout) fprintf(fpout," - applied %p from codeptr[%ld] to states[%d]\n",(void*)(intptr_t)deh_codeptr[value].v,value,indexnum); // Write BEX-oriented line to match: for (i=0;i FRAME %d = %s\n", indexnum, &deh_bexptrs[i].lookup[2]); @@ -2296,7 +2296,7 @@ void deh_procPointer(DEHFILE *fpin, FILE* fpout, char *line) // done } else if (fpout) fprintf(fpout,"Invalid frame pointer index for '%s' at %ld, xref %p\n", - key, value, (void*)(intptr_t)deh_codeptr[value]); + key, value, (void*)(intptr_t)deh_codeptr[value].v); } return; } @@ -3320,7 +3320,7 @@ boolean deh_GetData(char *s, char *k, long *l, char **strval, FILE *fpout) return(okrc); } -static deh_bexptr null_bexptr = { NULL, "(NULL)" }; +static deh_bexptr null_bexptr = { {NULL}, "(NULL)" }; void PostProcessDeh(void) { @@ -3341,8 +3341,8 @@ void PostProcessDeh(void) { bexptr_match = &null_bexptr; - for (j = 0; deh_bexptrs[j].cptr != NULL; ++j) - if (states[i].action == deh_bexptrs[j].cptr) + for (j = 0; deh_bexptrs[j].cptr.v != NULL; ++j) + if (states[i].action.v == deh_bexptrs[j].cptr.v) { bexptr_match = &deh_bexptrs[j]; break; diff --git a/src/d_think.h b/src/d_think.h index 66078673..1a1a4d5b 100644 --- a/src/d_think.h +++ b/src/d_think.h @@ -31,8 +31,16 @@ #ifndef __D_THINK__ #define __D_THINK__ -// killough 11/98: convert back to C instead of C++ -typedef void (*actionf_t)(); +typedef void (*actionf_v)(); +typedef void (*actionf_p1)(void *); +typedef void (*actionf_p2)(void *, void *); + +typedef union +{ + actionf_v v; + actionf_p1 p1; + actionf_p2 p2; +} actionf_t; // Historically, "think_t" is yet another function // pointer to a routine to handle an actor. diff --git a/src/info.c b/src/info.c index 62b980f3..19b5a0b6 100644 --- a/src/info.c +++ b/src/info.c @@ -202,1029 +202,1029 @@ void A_BetaSkullAttack(); // killough 10/98: beta lost souls attacked different // killough 11/98: cleaned up, since we don't need to accomodate C++ state_t original_states[NUMSTATES] = { - {SPR_TROO,0,-1,NULL,S_NULL}, // S_NULL - {SPR_SHTG,4,0,A_Light0,S_NULL}, // S_LIGHTDONE - {SPR_PUNG,0,1,A_WeaponReady,S_PUNCH}, // S_PUNCH - {SPR_PUNG,0,1,A_Lower,S_PUNCHDOWN}, // S_PUNCHDOWN - {SPR_PUNG,0,1,A_Raise,S_PUNCHUP}, // S_PUNCHUP - {SPR_PUNG,1,4,NULL,S_PUNCH2}, // S_PUNCH1 - {SPR_PUNG,2,4,A_Punch,S_PUNCH3}, // S_PUNCH2 - {SPR_PUNG,3,5,NULL,S_PUNCH4}, // S_PUNCH3 - {SPR_PUNG,2,4,NULL,S_PUNCH5}, // S_PUNCH4 - {SPR_PUNG,1,5,A_ReFire,S_PUNCH}, // S_PUNCH5 - {SPR_PISG,0,1,A_WeaponReady,S_PISTOL},// S_PISTOL - {SPR_PISG,0,1,A_Lower,S_PISTOLDOWN}, // S_PISTOLDOWN - {SPR_PISG,0,1,A_Raise,S_PISTOLUP}, // S_PISTOLUP - {SPR_PISG,0,4,NULL,S_PISTOL2}, // S_PISTOL1 - {SPR_PISG,1,6,A_FirePistol,S_PISTOL3},// S_PISTOL2 - {SPR_PISG,2,4,NULL,S_PISTOL4}, // S_PISTOL3 - {SPR_PISG,1,5,A_ReFire,S_PISTOL}, // S_PISTOL4 - {SPR_PISF,32768,7,A_Light1,S_LIGHTDONE}, // S_PISTOLFLASH - {SPR_SHTG,0,1,A_WeaponReady,S_SGUN}, // S_SGUN - {SPR_SHTG,0,1,A_Lower,S_SGUNDOWN}, // S_SGUNDOWN - {SPR_SHTG,0,1,A_Raise,S_SGUNUP}, // S_SGUNUP - {SPR_SHTG,0,3,NULL,S_SGUN2}, // S_SGUN1 - {SPR_SHTG,0,7,A_FireShotgun,S_SGUN3}, // S_SGUN2 - {SPR_SHTG,1,5,NULL,S_SGUN4}, // S_SGUN3 - {SPR_SHTG,2,5,NULL,S_SGUN5}, // S_SGUN4 - {SPR_SHTG,3,4,NULL,S_SGUN6}, // S_SGUN5 - {SPR_SHTG,2,5,NULL,S_SGUN7}, // S_SGUN6 - {SPR_SHTG,1,5,NULL,S_SGUN8}, // S_SGUN7 - {SPR_SHTG,0,3,NULL,S_SGUN9}, // S_SGUN8 - {SPR_SHTG,0,7,A_ReFire,S_SGUN}, // S_SGUN9 - {SPR_SHTF,32768,4,A_Light1,S_SGUNFLASH2}, // S_SGUNFLASH1 - {SPR_SHTF,32769,3,A_Light2,S_LIGHTDONE}, // S_SGUNFLASH2 - {SPR_SHT2,0,1,A_WeaponReady,S_DSGUN}, // S_DSGUN - {SPR_SHT2,0,1,A_Lower,S_DSGUNDOWN}, // S_DSGUNDOWN - {SPR_SHT2,0,1,A_Raise,S_DSGUNUP}, // S_DSGUNUP - {SPR_SHT2,0,3,NULL,S_DSGUN2}, // S_DSGUN1 + {SPR_TROO,0,-1,{NULL},S_NULL}, // S_NULL + {SPR_SHTG,4,0,{A_Light0},S_NULL}, // S_LIGHTDONE + {SPR_PUNG,0,1,{A_WeaponReady},S_PUNCH}, // S_PUNCH + {SPR_PUNG,0,1,{A_Lower},S_PUNCHDOWN}, // S_PUNCHDOWN + {SPR_PUNG,0,1,{A_Raise},S_PUNCHUP}, // S_PUNCHUP + {SPR_PUNG,1,4,{NULL},S_PUNCH2}, // S_PUNCH1 + {SPR_PUNG,2,4,{A_Punch},S_PUNCH3}, // S_PUNCH2 + {SPR_PUNG,3,5,{NULL},S_PUNCH4}, // S_PUNCH3 + {SPR_PUNG,2,4,{NULL},S_PUNCH5}, // S_PUNCH4 + {SPR_PUNG,1,5,{A_ReFire},S_PUNCH}, // S_PUNCH5 + {SPR_PISG,0,1,{A_WeaponReady},S_PISTOL},// S_PISTOL + {SPR_PISG,0,1,{A_Lower},S_PISTOLDOWN}, // S_PISTOLDOWN + {SPR_PISG,0,1,{A_Raise},S_PISTOLUP}, // S_PISTOLUP + {SPR_PISG,0,4,{NULL},S_PISTOL2}, // S_PISTOL1 + {SPR_PISG,1,6,{A_FirePistol},S_PISTOL3},// S_PISTOL2 + {SPR_PISG,2,4,{NULL},S_PISTOL4}, // S_PISTOL3 + {SPR_PISG,1,5,{A_ReFire},S_PISTOL}, // S_PISTOL4 + {SPR_PISF,32768,7,{A_Light1},S_LIGHTDONE}, // S_PISTOLFLASH + {SPR_SHTG,0,1,{A_WeaponReady},S_SGUN}, // S_SGUN + {SPR_SHTG,0,1,{A_Lower},S_SGUNDOWN}, // S_SGUNDOWN + {SPR_SHTG,0,1,{A_Raise},S_SGUNUP}, // S_SGUNUP + {SPR_SHTG,0,3,{NULL},S_SGUN2}, // S_SGUN1 + {SPR_SHTG,0,7,{A_FireShotgun},S_SGUN3}, // S_SGUN2 + {SPR_SHTG,1,5,{NULL},S_SGUN4}, // S_SGUN3 + {SPR_SHTG,2,5,{NULL},S_SGUN5}, // S_SGUN4 + {SPR_SHTG,3,4,{NULL},S_SGUN6}, // S_SGUN5 + {SPR_SHTG,2,5,{NULL},S_SGUN7}, // S_SGUN6 + {SPR_SHTG,1,5,{NULL},S_SGUN8}, // S_SGUN7 + {SPR_SHTG,0,3,{NULL},S_SGUN9}, // S_SGUN8 + {SPR_SHTG,0,7,{A_ReFire},S_SGUN}, // S_SGUN9 + {SPR_SHTF,32768,4,{A_Light1},S_SGUNFLASH2}, // S_SGUNFLASH1 + {SPR_SHTF,32769,3,{A_Light2},S_LIGHTDONE}, // S_SGUNFLASH2 + {SPR_SHT2,0,1,{A_WeaponReady},S_DSGUN}, // S_DSGUN + {SPR_SHT2,0,1,{A_Lower},S_DSGUNDOWN}, // S_DSGUNDOWN + {SPR_SHT2,0,1,{A_Raise},S_DSGUNUP}, // S_DSGUNUP + {SPR_SHT2,0,3,{NULL},S_DSGUN2}, // S_DSGUN1 // killough 9/5/98: make SSG lighting flash more uniform along super shotgun: - {SPR_SHT2, 32768 /* killough */,7,A_FireShotgun2,S_DSGUN3}, // S_DSGUN2 - {SPR_SHT2,1,7,NULL,S_DSGUN4}, // S_DSGUN3 - {SPR_SHT2,2,7,A_CheckReload,S_DSGUN5}, // S_DSGUN4 - {SPR_SHT2,3,7,A_OpenShotgun2,S_DSGUN6}, // S_DSGUN5 - {SPR_SHT2,4,7,NULL,S_DSGUN7}, // S_DSGUN6 - {SPR_SHT2,5,7,A_LoadShotgun2,S_DSGUN8}, // S_DSGUN7 - {SPR_SHT2,6,6,NULL,S_DSGUN9}, // S_DSGUN8 - {SPR_SHT2,7,6,A_CloseShotgun2,S_DSGUN10}, // S_DSGUN9 - {SPR_SHT2,0,5,A_ReFire,S_DSGUN}, // S_DSGUN10 - {SPR_SHT2,1,7,NULL,S_DSNR2}, // S_DSNR1 - {SPR_SHT2,0,3,NULL,S_DSGUNDOWN}, // S_DSNR2 + {SPR_SHT2, 32768 /* killough */,7,{A_FireShotgun2},S_DSGUN3}, // S_DSGUN2 + {SPR_SHT2,1,7,{NULL},S_DSGUN4}, // S_DSGUN3 + {SPR_SHT2,2,7,{A_CheckReload},S_DSGUN5}, // S_DSGUN4 + {SPR_SHT2,3,7,{A_OpenShotgun2},S_DSGUN6}, // S_DSGUN5 + {SPR_SHT2,4,7,{NULL},S_DSGUN7}, // S_DSGUN6 + {SPR_SHT2,5,7,{A_LoadShotgun2},S_DSGUN8}, // S_DSGUN7 + {SPR_SHT2,6,6,{NULL},S_DSGUN9}, // S_DSGUN8 + {SPR_SHT2,7,6,{A_CloseShotgun2},S_DSGUN10}, // S_DSGUN9 + {SPR_SHT2,0,5,{A_ReFire},S_DSGUN}, // S_DSGUN10 + {SPR_SHT2,1,7,{NULL},S_DSNR2}, // S_DSNR1 + {SPR_SHT2,0,3,{NULL},S_DSGUNDOWN}, // S_DSNR2 // killough 8/20/98: reduce first SSG flash frame one tic, to fix // Doom II SSG flash bug, in which SSG raises before flash finishes - {SPR_SHT2,32776,4/*killough*/,A_Light1,S_DSGUNFLASH2}, // S_DSGUNFLASH1 - {SPR_SHT2,32777,4,A_Light2,S_LIGHTDONE}, // S_DSGUNFLASH2 - {SPR_CHGG,0,1,A_WeaponReady,S_CHAIN}, // S_CHAIN - {SPR_CHGG,0,1,A_Lower,S_CHAINDOWN}, // S_CHAINDOWN - {SPR_CHGG,0,1,A_Raise,S_CHAINUP}, // S_CHAINUP - {SPR_CHGG,0,4,A_FireCGun,S_CHAIN2}, // S_CHAIN1 - {SPR_CHGG,1,4,A_FireCGun,S_CHAIN3}, // S_CHAIN2 - {SPR_CHGG,1,0,A_ReFire,S_CHAIN}, // S_CHAIN3 - {SPR_CHGF,32768,5,A_Light1,S_LIGHTDONE}, // S_CHAINFLASH1 - {SPR_CHGF,32769,5,A_Light2,S_LIGHTDONE}, // S_CHAINFLASH2 - {SPR_MISG,0,1,A_WeaponReady,S_MISSILE}, // S_MISSILE - {SPR_MISG,0,1,A_Lower,S_MISSILEDOWN}, // S_MISSILEDOWN - {SPR_MISG,0,1,A_Raise,S_MISSILEUP}, // S_MISSILEUP - {SPR_MISG,1,8,A_GunFlash,S_MISSILE2}, // S_MISSILE1 - {SPR_MISG,1,12,A_FireMissile,S_MISSILE3}, // S_MISSILE2 - {SPR_MISG,1,0,A_ReFire,S_MISSILE}, // S_MISSILE3 - {SPR_MISF,32768,3,A_Light1,S_MISSILEFLASH2}, // S_MISSILEFLASH1 - {SPR_MISF,32769,4,NULL,S_MISSILEFLASH3}, // S_MISSILEFLASH2 - {SPR_MISF,32770,4,A_Light2,S_MISSILEFLASH4}, // S_MISSILEFLASH3 - {SPR_MISF,32771,4,A_Light2,S_LIGHTDONE}, // S_MISSILEFLASH4 - {SPR_SAWG,2,4,A_WeaponReady,S_SAWB}, // S_SAW - {SPR_SAWG,3,4,A_WeaponReady,S_SAW}, // S_SAWB - {SPR_SAWG,2,1,A_Lower,S_SAWDOWN}, // S_SAWDOWN - {SPR_SAWG,2,1,A_Raise,S_SAWUP}, // S_SAWUP - {SPR_SAWG,0,4,A_Saw,S_SAW2}, // S_SAW1 - {SPR_SAWG,1,4,A_Saw,S_SAW3}, // S_SAW2 - {SPR_SAWG,1,0,A_ReFire,S_SAW}, // S_SAW3 - {SPR_PLSG,0,1,A_WeaponReady,S_PLASMA}, // S_PLASMA - {SPR_PLSG,0,1,A_Lower,S_PLASMADOWN}, // S_PLASMADOWN - {SPR_PLSG,0,1,A_Raise,S_PLASMAUP}, // S_PLASMAUP - {SPR_PLSG,0,3,A_FirePlasma,S_PLASMA2}, // S_PLASMA1 - {SPR_PLSG,1,20,A_ReFire,S_PLASMA}, // S_PLASMA2 - {SPR_PLSF,32768,4,A_Light1,S_LIGHTDONE}, // S_PLASMAFLASH1 - {SPR_PLSF,32769,4,A_Light1,S_LIGHTDONE}, // S_PLASMAFLASH2 - {SPR_BFGG,0,1,A_WeaponReady,S_BFG}, // S_BFG - {SPR_BFGG,0,1,A_Lower,S_BFGDOWN}, // S_BFGDOWN - {SPR_BFGG,0,1,A_Raise,S_BFGUP}, // S_BFGUP - {SPR_BFGG,0,20,A_BFGsound,S_BFG2}, // S_BFG1 - {SPR_BFGG,1,10,A_GunFlash,S_BFG3}, // S_BFG2 - {SPR_BFGG,1,10,A_FireBFG,S_BFG4}, // S_BFG3 - {SPR_BFGG,1,20,A_ReFire,S_BFG}, // S_BFG4 - {SPR_BFGF,32768,11,A_Light1,S_BFGFLASH2}, // S_BFGFLASH1 - {SPR_BFGF,32769,6,A_Light2,S_LIGHTDONE}, // S_BFGFLASH2 - {SPR_BLUD,2,8,NULL,S_BLOOD2}, // S_BLOOD1 - {SPR_BLUD,1,8,NULL,S_BLOOD3}, // S_BLOOD2 - {SPR_BLUD,0,8,NULL,S_NULL}, // S_BLOOD3 - {SPR_PUFF,32768,4,NULL,S_PUFF2}, // S_PUFF1 - {SPR_PUFF,1,4,NULL,S_PUFF3}, // S_PUFF2 - {SPR_PUFF,2,4,NULL,S_PUFF4}, // S_PUFF3 - {SPR_PUFF,3,4,NULL,S_NULL}, // S_PUFF4 - {SPR_BAL1,32768,4,NULL,S_TBALL2}, // S_TBALL1 - {SPR_BAL1,32769,4,NULL,S_TBALL1}, // S_TBALL2 - {SPR_BAL1,32770,6,NULL,S_TBALLX2}, // S_TBALLX1 - {SPR_BAL1,32771,6,NULL,S_TBALLX3}, // S_TBALLX2 - {SPR_BAL1,32772,6,NULL,S_NULL}, // S_TBALLX3 - {SPR_BAL2,32768,4,NULL,S_RBALL2}, // S_RBALL1 - {SPR_BAL2,32769,4,NULL,S_RBALL1}, // S_RBALL2 - {SPR_BAL2,32770,6,NULL,S_RBALLX2}, // S_RBALLX1 - {SPR_BAL2,32771,6,NULL,S_RBALLX3}, // S_RBALLX2 - {SPR_BAL2,32772,6,NULL,S_NULL}, // S_RBALLX3 - {SPR_PLSS,32768,6,NULL,S_PLASBALL2}, // S_PLASBALL - {SPR_PLSS,32769,6,NULL,S_PLASBALL}, // S_PLASBALL2 - {SPR_PLSE,32768,4,NULL,S_PLASEXP2}, // S_PLASEXP - {SPR_PLSE,32769,4,NULL,S_PLASEXP3}, // S_PLASEXP2 - {SPR_PLSE,32770,4,NULL,S_PLASEXP4}, // S_PLASEXP3 - {SPR_PLSE,32771,4,NULL,S_PLASEXP5}, // S_PLASEXP4 - {SPR_PLSE,32772,4,NULL,S_NULL}, // S_PLASEXP5 - {SPR_MISL,32768,1,NULL,S_ROCKET}, // S_ROCKET - {SPR_BFS1,32768,4,NULL,S_BFGSHOT2}, // S_BFGSHOT - {SPR_BFS1,32769,4,NULL,S_BFGSHOT}, // S_BFGSHOT2 - {SPR_BFE1,32768,8,NULL,S_BFGLAND2}, // S_BFGLAND - {SPR_BFE1,32769,8,NULL,S_BFGLAND3}, // S_BFGLAND2 - {SPR_BFE1,32770,8,A_BFGSpray,S_BFGLAND4}, // S_BFGLAND3 - {SPR_BFE1,32771,8,NULL,S_BFGLAND5}, // S_BFGLAND4 - {SPR_BFE1,32772,8,NULL,S_BFGLAND6}, // S_BFGLAND5 - {SPR_BFE1,32773,8,NULL,S_NULL}, // S_BFGLAND6 - {SPR_BFE2,32768,8,NULL,S_BFGEXP2}, // S_BFGEXP - {SPR_BFE2,32769,8,NULL,S_BFGEXP3}, // S_BFGEXP2 - {SPR_BFE2,32770,8,NULL,S_BFGEXP4}, // S_BFGEXP3 - {SPR_BFE2,32771,8,NULL,S_NULL}, // S_BFGEXP4 - {SPR_MISL,32769,8,A_Explode,S_EXPLODE2}, // S_EXPLODE1 - {SPR_MISL,32770,6,NULL,S_EXPLODE3}, // S_EXPLODE2 - {SPR_MISL,32771,4,NULL,S_NULL}, // S_EXPLODE3 - {SPR_TFOG,32768,6,NULL,S_TFOG01}, // S_TFOG - {SPR_TFOG,32769,6,NULL,S_TFOG02}, // S_TFOG01 - {SPR_TFOG,32768,6,NULL,S_TFOG2}, // S_TFOG02 - {SPR_TFOG,32769,6,NULL,S_TFOG3}, // S_TFOG2 - {SPR_TFOG,32770,6,NULL,S_TFOG4}, // S_TFOG3 - {SPR_TFOG,32771,6,NULL,S_TFOG5}, // S_TFOG4 - {SPR_TFOG,32772,6,NULL,S_TFOG6}, // S_TFOG5 - {SPR_TFOG,32773,6,NULL,S_TFOG7}, // S_TFOG6 - {SPR_TFOG,32774,6,NULL,S_TFOG8}, // S_TFOG7 - {SPR_TFOG,32775,6,NULL,S_TFOG9}, // S_TFOG8 - {SPR_TFOG,32776,6,NULL,S_TFOG10}, // S_TFOG9 - {SPR_TFOG,32777,6,NULL,S_NULL}, // S_TFOG10 - {SPR_IFOG,32768,6,NULL,S_IFOG01}, // S_IFOG - {SPR_IFOG,32769,6,NULL,S_IFOG02}, // S_IFOG01 - {SPR_IFOG,32768,6,NULL,S_IFOG2}, // S_IFOG02 - {SPR_IFOG,32769,6,NULL,S_IFOG3}, // S_IFOG2 - {SPR_IFOG,32770,6,NULL,S_IFOG4}, // S_IFOG3 - {SPR_IFOG,32771,6,NULL,S_IFOG5}, // S_IFOG4 - {SPR_IFOG,32772,6,NULL,S_NULL}, // S_IFOG5 - {SPR_PLAY,0,-1,NULL,S_NULL}, // S_PLAY - {SPR_PLAY,0,4,NULL,S_PLAY_RUN2}, // S_PLAY_RUN1 - {SPR_PLAY,1,4,NULL,S_PLAY_RUN3}, // S_PLAY_RUN2 - {SPR_PLAY,2,4,NULL,S_PLAY_RUN4}, // S_PLAY_RUN3 - {SPR_PLAY,3,4,NULL,S_PLAY_RUN1}, // S_PLAY_RUN4 - {SPR_PLAY,4,12,NULL,S_PLAY}, // S_PLAY_ATK1 - {SPR_PLAY,32773,6,NULL,S_PLAY_ATK1}, // S_PLAY_ATK2 - {SPR_PLAY,6,4,NULL,S_PLAY_PAIN2}, // S_PLAY_PAIN - {SPR_PLAY,6,4,A_Pain,S_PLAY}, // S_PLAY_PAIN2 - {SPR_PLAY,7,10,NULL,S_PLAY_DIE2}, // S_PLAY_DIE1 - {SPR_PLAY,8,10,A_PlayerScream,S_PLAY_DIE3}, // S_PLAY_DIE2 - {SPR_PLAY,9,10,A_Fall,S_PLAY_DIE4}, // S_PLAY_DIE3 - {SPR_PLAY,10,10,NULL,S_PLAY_DIE5}, // S_PLAY_DIE4 - {SPR_PLAY,11,10,NULL,S_PLAY_DIE6}, // S_PLAY_DIE5 - {SPR_PLAY,12,10,NULL,S_PLAY_DIE7}, // S_PLAY_DIE6 - {SPR_PLAY,13,-1,NULL,S_NULL}, // S_PLAY_DIE7 - {SPR_PLAY,14,5,NULL,S_PLAY_XDIE2}, // S_PLAY_XDIE1 - {SPR_PLAY,15,5,A_XScream,S_PLAY_XDIE3}, // S_PLAY_XDIE2 - {SPR_PLAY,16,5,A_Fall,S_PLAY_XDIE4}, // S_PLAY_XDIE3 - {SPR_PLAY,17,5,NULL,S_PLAY_XDIE5}, // S_PLAY_XDIE4 - {SPR_PLAY,18,5,NULL,S_PLAY_XDIE6}, // S_PLAY_XDIE5 - {SPR_PLAY,19,5,NULL,S_PLAY_XDIE7}, // S_PLAY_XDIE6 - {SPR_PLAY,20,5,NULL,S_PLAY_XDIE8}, // S_PLAY_XDIE7 - {SPR_PLAY,21,5,NULL,S_PLAY_XDIE9}, // S_PLAY_XDIE8 - {SPR_PLAY,22,-1,NULL,S_NULL}, // S_PLAY_XDIE9 - {SPR_POSS,0,10,A_Look,S_POSS_STND2}, // S_POSS_STND - {SPR_POSS,1,10,A_Look,S_POSS_STND}, // S_POSS_STND2 - {SPR_POSS,0,4,A_Chase,S_POSS_RUN2}, // S_POSS_RUN1 - {SPR_POSS,0,4,A_Chase,S_POSS_RUN3}, // S_POSS_RUN2 - {SPR_POSS,1,4,A_Chase,S_POSS_RUN4}, // S_POSS_RUN3 - {SPR_POSS,1,4,A_Chase,S_POSS_RUN5}, // S_POSS_RUN4 - {SPR_POSS,2,4,A_Chase,S_POSS_RUN6}, // S_POSS_RUN5 - {SPR_POSS,2,4,A_Chase,S_POSS_RUN7}, // S_POSS_RUN6 - {SPR_POSS,3,4,A_Chase,S_POSS_RUN8}, // S_POSS_RUN7 - {SPR_POSS,3,4,A_Chase,S_POSS_RUN1}, // S_POSS_RUN8 - {SPR_POSS,4,10,A_FaceTarget,S_POSS_ATK2}, // S_POSS_ATK1 - {SPR_POSS,5,8,A_PosAttack,S_POSS_ATK3}, // S_POSS_ATK2 - {SPR_POSS,4,8,NULL,S_POSS_RUN1}, // S_POSS_ATK3 - {SPR_POSS,6,3,NULL,S_POSS_PAIN2}, // S_POSS_PAIN - {SPR_POSS,6,3,A_Pain,S_POSS_RUN1}, // S_POSS_PAIN2 - {SPR_POSS,7,5,NULL,S_POSS_DIE2}, // S_POSS_DIE1 - {SPR_POSS,8,5,A_Scream,S_POSS_DIE3}, // S_POSS_DIE2 - {SPR_POSS,9,5,A_Fall,S_POSS_DIE4}, // S_POSS_DIE3 - {SPR_POSS,10,5,NULL,S_POSS_DIE5}, // S_POSS_DIE4 - {SPR_POSS,11,-1,NULL,S_NULL}, // S_POSS_DIE5 - {SPR_POSS,12,5,NULL,S_POSS_XDIE2}, // S_POSS_XDIE1 - {SPR_POSS,13,5,A_XScream,S_POSS_XDIE3}, // S_POSS_XDIE2 - {SPR_POSS,14,5,A_Fall,S_POSS_XDIE4}, // S_POSS_XDIE3 - {SPR_POSS,15,5,NULL,S_POSS_XDIE5}, // S_POSS_XDIE4 - {SPR_POSS,16,5,NULL,S_POSS_XDIE6}, // S_POSS_XDIE5 - {SPR_POSS,17,5,NULL,S_POSS_XDIE7}, // S_POSS_XDIE6 - {SPR_POSS,18,5,NULL,S_POSS_XDIE8}, // S_POSS_XDIE7 - {SPR_POSS,19,5,NULL,S_POSS_XDIE9}, // S_POSS_XDIE8 - {SPR_POSS,20,-1,NULL,S_NULL}, // S_POSS_XDIE9 - {SPR_POSS,10,5,NULL,S_POSS_RAISE2}, // S_POSS_RAISE1 - {SPR_POSS,9,5,NULL,S_POSS_RAISE3}, // S_POSS_RAISE2 - {SPR_POSS,8,5,NULL,S_POSS_RAISE4}, // S_POSS_RAISE3 - {SPR_POSS,7,5,NULL,S_POSS_RUN1}, // S_POSS_RAISE4 - {SPR_SPOS,0,10,A_Look,S_SPOS_STND2}, // S_SPOS_STND - {SPR_SPOS,1,10,A_Look,S_SPOS_STND}, // S_SPOS_STND2 - {SPR_SPOS,0,3,A_Chase,S_SPOS_RUN2}, // S_SPOS_RUN1 - {SPR_SPOS,0,3,A_Chase,S_SPOS_RUN3}, // S_SPOS_RUN2 - {SPR_SPOS,1,3,A_Chase,S_SPOS_RUN4}, // S_SPOS_RUN3 - {SPR_SPOS,1,3,A_Chase,S_SPOS_RUN5}, // S_SPOS_RUN4 - {SPR_SPOS,2,3,A_Chase,S_SPOS_RUN6}, // S_SPOS_RUN5 - {SPR_SPOS,2,3,A_Chase,S_SPOS_RUN7}, // S_SPOS_RUN6 - {SPR_SPOS,3,3,A_Chase,S_SPOS_RUN8}, // S_SPOS_RUN7 - {SPR_SPOS,3,3,A_Chase,S_SPOS_RUN1}, // S_SPOS_RUN8 - {SPR_SPOS,4,10,A_FaceTarget,S_SPOS_ATK2}, // S_SPOS_ATK1 - {SPR_SPOS,32773,10,A_SPosAttack,S_SPOS_ATK3}, // S_SPOS_ATK2 - {SPR_SPOS,4,10,NULL,S_SPOS_RUN1}, // S_SPOS_ATK3 - {SPR_SPOS,6,3,NULL,S_SPOS_PAIN2}, // S_SPOS_PAIN - {SPR_SPOS,6,3,A_Pain,S_SPOS_RUN1}, // S_SPOS_PAIN2 - {SPR_SPOS,7,5,NULL,S_SPOS_DIE2}, // S_SPOS_DIE1 - {SPR_SPOS,8,5,A_Scream,S_SPOS_DIE3}, // S_SPOS_DIE2 - {SPR_SPOS,9,5,A_Fall,S_SPOS_DIE4}, // S_SPOS_DIE3 - {SPR_SPOS,10,5,NULL,S_SPOS_DIE5}, // S_SPOS_DIE4 - {SPR_SPOS,11,-1,NULL,S_NULL}, // S_SPOS_DIE5 - {SPR_SPOS,12,5,NULL,S_SPOS_XDIE2}, // S_SPOS_XDIE1 - {SPR_SPOS,13,5,A_XScream,S_SPOS_XDIE3}, // S_SPOS_XDIE2 - {SPR_SPOS,14,5,A_Fall,S_SPOS_XDIE4}, // S_SPOS_XDIE3 - {SPR_SPOS,15,5,NULL,S_SPOS_XDIE5}, // S_SPOS_XDIE4 - {SPR_SPOS,16,5,NULL,S_SPOS_XDIE6}, // S_SPOS_XDIE5 - {SPR_SPOS,17,5,NULL,S_SPOS_XDIE7}, // S_SPOS_XDIE6 - {SPR_SPOS,18,5,NULL,S_SPOS_XDIE8}, // S_SPOS_XDIE7 - {SPR_SPOS,19,5,NULL,S_SPOS_XDIE9}, // S_SPOS_XDIE8 - {SPR_SPOS,20,-1,NULL,S_NULL}, // S_SPOS_XDIE9 - {SPR_SPOS,11,5,NULL,S_SPOS_RAISE2}, // S_SPOS_RAISE1 - {SPR_SPOS,10,5,NULL,S_SPOS_RAISE3}, // S_SPOS_RAISE2 - {SPR_SPOS,9,5,NULL,S_SPOS_RAISE4}, // S_SPOS_RAISE3 - {SPR_SPOS,8,5,NULL,S_SPOS_RAISE5}, // S_SPOS_RAISE4 - {SPR_SPOS,7,5,NULL,S_SPOS_RUN1}, // S_SPOS_RAISE5 - {SPR_VILE,0,10,A_Look,S_VILE_STND2}, // S_VILE_STND - {SPR_VILE,1,10,A_Look,S_VILE_STND}, // S_VILE_STND2 - {SPR_VILE,0,2,A_VileChase,S_VILE_RUN2}, // S_VILE_RUN1 - {SPR_VILE,0,2,A_VileChase,S_VILE_RUN3}, // S_VILE_RUN2 - {SPR_VILE,1,2,A_VileChase,S_VILE_RUN4}, // S_VILE_RUN3 - {SPR_VILE,1,2,A_VileChase,S_VILE_RUN5}, // S_VILE_RUN4 - {SPR_VILE,2,2,A_VileChase,S_VILE_RUN6}, // S_VILE_RUN5 - {SPR_VILE,2,2,A_VileChase,S_VILE_RUN7}, // S_VILE_RUN6 - {SPR_VILE,3,2,A_VileChase,S_VILE_RUN8}, // S_VILE_RUN7 - {SPR_VILE,3,2,A_VileChase,S_VILE_RUN9}, // S_VILE_RUN8 - {SPR_VILE,4,2,A_VileChase,S_VILE_RUN10}, // S_VILE_RUN9 - {SPR_VILE,4,2,A_VileChase,S_VILE_RUN11}, // S_VILE_RUN10 - {SPR_VILE,5,2,A_VileChase,S_VILE_RUN12}, // S_VILE_RUN11 - {SPR_VILE,5,2,A_VileChase,S_VILE_RUN1}, // S_VILE_RUN12 - {SPR_VILE,32774,0,A_VileStart,S_VILE_ATK2}, // S_VILE_ATK1 - {SPR_VILE,32774,10,A_FaceTarget,S_VILE_ATK3}, // S_VILE_ATK2 - {SPR_VILE,32775,8,A_VileTarget,S_VILE_ATK4}, // S_VILE_ATK3 - {SPR_VILE,32776,8,A_FaceTarget,S_VILE_ATK5}, // S_VILE_ATK4 - {SPR_VILE,32777,8,A_FaceTarget,S_VILE_ATK6}, // S_VILE_ATK5 - {SPR_VILE,32778,8,A_FaceTarget,S_VILE_ATK7}, // S_VILE_ATK6 - {SPR_VILE,32779,8,A_FaceTarget,S_VILE_ATK8}, // S_VILE_ATK7 - {SPR_VILE,32780,8,A_FaceTarget,S_VILE_ATK9}, // S_VILE_ATK8 - {SPR_VILE,32781,8,A_FaceTarget,S_VILE_ATK10}, // S_VILE_ATK9 - {SPR_VILE,32782,8,A_VileAttack,S_VILE_ATK11}, // S_VILE_ATK10 - {SPR_VILE,32783,20,NULL,S_VILE_RUN1}, // S_VILE_ATK11 - {SPR_VILE,32794,10,NULL,S_VILE_HEAL2}, // S_VILE_HEAL1 - {SPR_VILE,32795,10,NULL,S_VILE_HEAL3}, // S_VILE_HEAL2 - {SPR_VILE,32796,10,NULL,S_VILE_RUN1}, // S_VILE_HEAL3 - {SPR_VILE,16,5,NULL,S_VILE_PAIN2}, // S_VILE_PAIN - {SPR_VILE,16,5,A_Pain,S_VILE_RUN1}, // S_VILE_PAIN2 - {SPR_VILE,16,7,NULL,S_VILE_DIE2}, // S_VILE_DIE1 - {SPR_VILE,17,7,A_Scream,S_VILE_DIE3}, // S_VILE_DIE2 - {SPR_VILE,18,7,A_Fall,S_VILE_DIE4}, // S_VILE_DIE3 - {SPR_VILE,19,7,NULL,S_VILE_DIE5}, // S_VILE_DIE4 - {SPR_VILE,20,7,NULL,S_VILE_DIE6}, // S_VILE_DIE5 - {SPR_VILE,21,7,NULL,S_VILE_DIE7}, // S_VILE_DIE6 - {SPR_VILE,22,7,NULL,S_VILE_DIE8}, // S_VILE_DIE7 - {SPR_VILE,23,5,NULL,S_VILE_DIE9}, // S_VILE_DIE8 - {SPR_VILE,24,5,NULL,S_VILE_DIE10}, // S_VILE_DIE9 - {SPR_VILE,25,-1,NULL,S_NULL}, // S_VILE_DIE10 - {SPR_FIRE,32768,2,A_StartFire,S_FIRE2}, // S_FIRE1 - {SPR_FIRE,32769,2,A_Fire,S_FIRE3}, // S_FIRE2 - {SPR_FIRE,32768,2,A_Fire,S_FIRE4}, // S_FIRE3 - {SPR_FIRE,32769,2,A_Fire,S_FIRE5}, // S_FIRE4 - {SPR_FIRE,32770,2,A_FireCrackle,S_FIRE6}, // S_FIRE5 - {SPR_FIRE,32769,2,A_Fire,S_FIRE7}, // S_FIRE6 - {SPR_FIRE,32770,2,A_Fire,S_FIRE8}, // S_FIRE7 - {SPR_FIRE,32769,2,A_Fire,S_FIRE9}, // S_FIRE8 - {SPR_FIRE,32770,2,A_Fire,S_FIRE10}, // S_FIRE9 - {SPR_FIRE,32771,2,A_Fire,S_FIRE11}, // S_FIRE10 - {SPR_FIRE,32770,2,A_Fire,S_FIRE12}, // S_FIRE11 - {SPR_FIRE,32771,2,A_Fire,S_FIRE13}, // S_FIRE12 - {SPR_FIRE,32770,2,A_Fire,S_FIRE14}, // S_FIRE13 - {SPR_FIRE,32771,2,A_Fire,S_FIRE15}, // S_FIRE14 - {SPR_FIRE,32772,2,A_Fire,S_FIRE16}, // S_FIRE15 - {SPR_FIRE,32771,2,A_Fire,S_FIRE17}, // S_FIRE16 - {SPR_FIRE,32772,2,A_Fire,S_FIRE18}, // S_FIRE17 - {SPR_FIRE,32771,2,A_Fire,S_FIRE19}, // S_FIRE18 - {SPR_FIRE,32772,2,A_FireCrackle,S_FIRE20}, // S_FIRE19 - {SPR_FIRE,32773,2,A_Fire,S_FIRE21}, // S_FIRE20 - {SPR_FIRE,32772,2,A_Fire,S_FIRE22}, // S_FIRE21 - {SPR_FIRE,32773,2,A_Fire,S_FIRE23}, // S_FIRE22 - {SPR_FIRE,32772,2,A_Fire,S_FIRE24}, // S_FIRE23 - {SPR_FIRE,32773,2,A_Fire,S_FIRE25}, // S_FIRE24 - {SPR_FIRE,32774,2,A_Fire,S_FIRE26}, // S_FIRE25 - {SPR_FIRE,32775,2,A_Fire,S_FIRE27}, // S_FIRE26 - {SPR_FIRE,32774,2,A_Fire,S_FIRE28}, // S_FIRE27 - {SPR_FIRE,32775,2,A_Fire,S_FIRE29}, // S_FIRE28 - {SPR_FIRE,32774,2,A_Fire,S_FIRE30}, // S_FIRE29 - {SPR_FIRE,32775,2,A_Fire,S_NULL}, // S_FIRE30 - {SPR_PUFF,1,4,NULL,S_SMOKE2}, // S_SMOKE1 - {SPR_PUFF,2,4,NULL,S_SMOKE3}, // S_SMOKE2 - {SPR_PUFF,1,4,NULL,S_SMOKE4}, // S_SMOKE3 - {SPR_PUFF,2,4,NULL,S_SMOKE5}, // S_SMOKE4 - {SPR_PUFF,3,4,NULL,S_NULL}, // S_SMOKE5 - {SPR_FATB,32768,2,A_Tracer,S_TRACER2}, // S_TRACER - {SPR_FATB,32769,2,A_Tracer,S_TRACER}, // S_TRACER2 - {SPR_FBXP,32768,8,NULL,S_TRACEEXP2}, // S_TRACEEXP1 - {SPR_FBXP,32769,6,NULL,S_TRACEEXP3}, // S_TRACEEXP2 - {SPR_FBXP,32770,4,NULL,S_NULL}, // S_TRACEEXP3 - {SPR_SKEL,0,10,A_Look,S_SKEL_STND2}, // S_SKEL_STND - {SPR_SKEL,1,10,A_Look,S_SKEL_STND}, // S_SKEL_STND2 - {SPR_SKEL,0,2,A_Chase,S_SKEL_RUN2}, // S_SKEL_RUN1 - {SPR_SKEL,0,2,A_Chase,S_SKEL_RUN3}, // S_SKEL_RUN2 - {SPR_SKEL,1,2,A_Chase,S_SKEL_RUN4}, // S_SKEL_RUN3 - {SPR_SKEL,1,2,A_Chase,S_SKEL_RUN5}, // S_SKEL_RUN4 - {SPR_SKEL,2,2,A_Chase,S_SKEL_RUN6}, // S_SKEL_RUN5 - {SPR_SKEL,2,2,A_Chase,S_SKEL_RUN7}, // S_SKEL_RUN6 - {SPR_SKEL,3,2,A_Chase,S_SKEL_RUN8}, // S_SKEL_RUN7 - {SPR_SKEL,3,2,A_Chase,S_SKEL_RUN9}, // S_SKEL_RUN8 - {SPR_SKEL,4,2,A_Chase,S_SKEL_RUN10}, // S_SKEL_RUN9 - {SPR_SKEL,4,2,A_Chase,S_SKEL_RUN11}, // S_SKEL_RUN10 - {SPR_SKEL,5,2,A_Chase,S_SKEL_RUN12}, // S_SKEL_RUN11 - {SPR_SKEL,5,2,A_Chase,S_SKEL_RUN1}, // S_SKEL_RUN12 - {SPR_SKEL,6,0,A_FaceTarget,S_SKEL_FIST2}, // S_SKEL_FIST1 - {SPR_SKEL,6,6,A_SkelWhoosh,S_SKEL_FIST3}, // S_SKEL_FIST2 - {SPR_SKEL,7,6,A_FaceTarget,S_SKEL_FIST4}, // S_SKEL_FIST3 - {SPR_SKEL,8,6,A_SkelFist,S_SKEL_RUN1}, // S_SKEL_FIST4 - {SPR_SKEL,32777,0,A_FaceTarget,S_SKEL_MISS2}, // S_SKEL_MISS1 - {SPR_SKEL,32777,10,A_FaceTarget,S_SKEL_MISS3}, // S_SKEL_MISS2 - {SPR_SKEL,10,10,A_SkelMissile,S_SKEL_MISS4}, // S_SKEL_MISS3 - {SPR_SKEL,10,10,A_FaceTarget,S_SKEL_RUN1}, // S_SKEL_MISS4 - {SPR_SKEL,11,5,NULL,S_SKEL_PAIN2}, // S_SKEL_PAIN - {SPR_SKEL,11,5,A_Pain,S_SKEL_RUN1}, // S_SKEL_PAIN2 - {SPR_SKEL,11,7,NULL,S_SKEL_DIE2}, // S_SKEL_DIE1 - {SPR_SKEL,12,7,NULL,S_SKEL_DIE3}, // S_SKEL_DIE2 - {SPR_SKEL,13,7,A_Scream,S_SKEL_DIE4}, // S_SKEL_DIE3 - {SPR_SKEL,14,7,A_Fall,S_SKEL_DIE5}, // S_SKEL_DIE4 - {SPR_SKEL,15,7,NULL,S_SKEL_DIE6}, // S_SKEL_DIE5 - {SPR_SKEL,16,-1,NULL,S_NULL}, // S_SKEL_DIE6 - {SPR_SKEL,16,5,NULL,S_SKEL_RAISE2}, // S_SKEL_RAISE1 - {SPR_SKEL,15,5,NULL,S_SKEL_RAISE3}, // S_SKEL_RAISE2 - {SPR_SKEL,14,5,NULL,S_SKEL_RAISE4}, // S_SKEL_RAISE3 - {SPR_SKEL,13,5,NULL,S_SKEL_RAISE5}, // S_SKEL_RAISE4 - {SPR_SKEL,12,5,NULL,S_SKEL_RAISE6}, // S_SKEL_RAISE5 - {SPR_SKEL,11,5,NULL,S_SKEL_RUN1}, // S_SKEL_RAISE6 - {SPR_MANF,32768,4,NULL,S_FATSHOT2}, // S_FATSHOT1 - {SPR_MANF,32769,4,NULL,S_FATSHOT1}, // S_FATSHOT2 - {SPR_MISL,32769,8,NULL,S_FATSHOTX2}, // S_FATSHOTX1 - {SPR_MISL,32770,6,NULL,S_FATSHOTX3}, // S_FATSHOTX2 - {SPR_MISL,32771,4,NULL,S_NULL}, // S_FATSHOTX3 - {SPR_FATT,0,15,A_Look,S_FATT_STND2}, // S_FATT_STND - {SPR_FATT,1,15,A_Look,S_FATT_STND}, // S_FATT_STND2 - {SPR_FATT,0,4,A_Chase,S_FATT_RUN2}, // S_FATT_RUN1 - {SPR_FATT,0,4,A_Chase,S_FATT_RUN3}, // S_FATT_RUN2 - {SPR_FATT,1,4,A_Chase,S_FATT_RUN4}, // S_FATT_RUN3 - {SPR_FATT,1,4,A_Chase,S_FATT_RUN5}, // S_FATT_RUN4 - {SPR_FATT,2,4,A_Chase,S_FATT_RUN6}, // S_FATT_RUN5 - {SPR_FATT,2,4,A_Chase,S_FATT_RUN7}, // S_FATT_RUN6 - {SPR_FATT,3,4,A_Chase,S_FATT_RUN8}, // S_FATT_RUN7 - {SPR_FATT,3,4,A_Chase,S_FATT_RUN9}, // S_FATT_RUN8 - {SPR_FATT,4,4,A_Chase,S_FATT_RUN10}, // S_FATT_RUN9 - {SPR_FATT,4,4,A_Chase,S_FATT_RUN11}, // S_FATT_RUN10 - {SPR_FATT,5,4,A_Chase,S_FATT_RUN12}, // S_FATT_RUN11 - {SPR_FATT,5,4,A_Chase,S_FATT_RUN1}, // S_FATT_RUN12 - {SPR_FATT,6,20,A_FatRaise,S_FATT_ATK2}, // S_FATT_ATK1 - {SPR_FATT,32775,10,A_FatAttack1,S_FATT_ATK3}, // S_FATT_ATK2 - {SPR_FATT,8,5,A_FaceTarget,S_FATT_ATK4}, // S_FATT_ATK3 - {SPR_FATT,6,5,A_FaceTarget,S_FATT_ATK5}, // S_FATT_ATK4 - {SPR_FATT,32775,10,A_FatAttack2,S_FATT_ATK6}, // S_FATT_ATK5 - {SPR_FATT,8,5,A_FaceTarget,S_FATT_ATK7}, // S_FATT_ATK6 - {SPR_FATT,6,5,A_FaceTarget,S_FATT_ATK8}, // S_FATT_ATK7 - {SPR_FATT,32775,10,A_FatAttack3,S_FATT_ATK9}, // S_FATT_ATK8 - {SPR_FATT,8,5,A_FaceTarget,S_FATT_ATK10}, // S_FATT_ATK9 - {SPR_FATT,6,5,A_FaceTarget,S_FATT_RUN1}, // S_FATT_ATK10 - {SPR_FATT,9,3,NULL,S_FATT_PAIN2}, // S_FATT_PAIN - {SPR_FATT,9,3,A_Pain,S_FATT_RUN1}, // S_FATT_PAIN2 - {SPR_FATT,10,6,NULL,S_FATT_DIE2}, // S_FATT_DIE1 - {SPR_FATT,11,6,A_Scream,S_FATT_DIE3}, // S_FATT_DIE2 - {SPR_FATT,12,6,A_Fall,S_FATT_DIE4}, // S_FATT_DIE3 - {SPR_FATT,13,6,NULL,S_FATT_DIE5}, // S_FATT_DIE4 - {SPR_FATT,14,6,NULL,S_FATT_DIE6}, // S_FATT_DIE5 - {SPR_FATT,15,6,NULL,S_FATT_DIE7}, // S_FATT_DIE6 - {SPR_FATT,16,6,NULL,S_FATT_DIE8}, // S_FATT_DIE7 - {SPR_FATT,17,6,NULL,S_FATT_DIE9}, // S_FATT_DIE8 - {SPR_FATT,18,6,NULL,S_FATT_DIE10}, // S_FATT_DIE9 - {SPR_FATT,19,-1,A_BossDeath,S_NULL}, // S_FATT_DIE10 - {SPR_FATT,17,5,NULL,S_FATT_RAISE2}, // S_FATT_RAISE1 - {SPR_FATT,16,5,NULL,S_FATT_RAISE3}, // S_FATT_RAISE2 - {SPR_FATT,15,5,NULL,S_FATT_RAISE4}, // S_FATT_RAISE3 - {SPR_FATT,14,5,NULL,S_FATT_RAISE5}, // S_FATT_RAISE4 - {SPR_FATT,13,5,NULL,S_FATT_RAISE6}, // S_FATT_RAISE5 - {SPR_FATT,12,5,NULL,S_FATT_RAISE7}, // S_FATT_RAISE6 - {SPR_FATT,11,5,NULL,S_FATT_RAISE8}, // S_FATT_RAISE7 - {SPR_FATT,10,5,NULL,S_FATT_RUN1}, // S_FATT_RAISE8 - {SPR_CPOS,0,10,A_Look,S_CPOS_STND2}, // S_CPOS_STND - {SPR_CPOS,1,10,A_Look,S_CPOS_STND}, // S_CPOS_STND2 - {SPR_CPOS,0,3,A_Chase,S_CPOS_RUN2}, // S_CPOS_RUN1 - {SPR_CPOS,0,3,A_Chase,S_CPOS_RUN3}, // S_CPOS_RUN2 - {SPR_CPOS,1,3,A_Chase,S_CPOS_RUN4}, // S_CPOS_RUN3 - {SPR_CPOS,1,3,A_Chase,S_CPOS_RUN5}, // S_CPOS_RUN4 - {SPR_CPOS,2,3,A_Chase,S_CPOS_RUN6}, // S_CPOS_RUN5 - {SPR_CPOS,2,3,A_Chase,S_CPOS_RUN7}, // S_CPOS_RUN6 - {SPR_CPOS,3,3,A_Chase,S_CPOS_RUN8}, // S_CPOS_RUN7 - {SPR_CPOS,3,3,A_Chase,S_CPOS_RUN1}, // S_CPOS_RUN8 - {SPR_CPOS,4,10,A_FaceTarget,S_CPOS_ATK2}, // S_CPOS_ATK1 - {SPR_CPOS,32773,4,A_CPosAttack,S_CPOS_ATK3}, // S_CPOS_ATK2 - {SPR_CPOS,32772,4,A_CPosAttack,S_CPOS_ATK4}, // S_CPOS_ATK3 - {SPR_CPOS,5,1,A_CPosRefire,S_CPOS_ATK2}, // S_CPOS_ATK4 - {SPR_CPOS,6,3,NULL,S_CPOS_PAIN2}, // S_CPOS_PAIN - {SPR_CPOS,6,3,A_Pain,S_CPOS_RUN1}, // S_CPOS_PAIN2 - {SPR_CPOS,7,5,NULL,S_CPOS_DIE2}, // S_CPOS_DIE1 - {SPR_CPOS,8,5,A_Scream,S_CPOS_DIE3}, // S_CPOS_DIE2 - {SPR_CPOS,9,5,A_Fall,S_CPOS_DIE4}, // S_CPOS_DIE3 - {SPR_CPOS,10,5,NULL,S_CPOS_DIE5}, // S_CPOS_DIE4 - {SPR_CPOS,11,5,NULL,S_CPOS_DIE6}, // S_CPOS_DIE5 - {SPR_CPOS,12,5,NULL,S_CPOS_DIE7}, // S_CPOS_DIE6 - {SPR_CPOS,13,-1,NULL,S_NULL}, // S_CPOS_DIE7 - {SPR_CPOS,14,5,NULL,S_CPOS_XDIE2}, // S_CPOS_XDIE1 - {SPR_CPOS,15,5,A_XScream,S_CPOS_XDIE3}, // S_CPOS_XDIE2 - {SPR_CPOS,16,5,A_Fall,S_CPOS_XDIE4}, // S_CPOS_XDIE3 - {SPR_CPOS,17,5,NULL,S_CPOS_XDIE5}, // S_CPOS_XDIE4 - {SPR_CPOS,18,5,NULL,S_CPOS_XDIE6}, // S_CPOS_XDIE5 - {SPR_CPOS,19,-1,NULL,S_NULL}, // S_CPOS_XDIE6 - {SPR_CPOS,13,5,NULL,S_CPOS_RAISE2}, // S_CPOS_RAISE1 - {SPR_CPOS,12,5,NULL,S_CPOS_RAISE3}, // S_CPOS_RAISE2 - {SPR_CPOS,11,5,NULL,S_CPOS_RAISE4}, // S_CPOS_RAISE3 - {SPR_CPOS,10,5,NULL,S_CPOS_RAISE5}, // S_CPOS_RAISE4 - {SPR_CPOS,9,5,NULL,S_CPOS_RAISE6}, // S_CPOS_RAISE5 - {SPR_CPOS,8,5,NULL,S_CPOS_RAISE7}, // S_CPOS_RAISE6 - {SPR_CPOS,7,5,NULL,S_CPOS_RUN1}, // S_CPOS_RAISE7 - {SPR_TROO,0,10,A_Look,S_TROO_STND2}, // S_TROO_STND - {SPR_TROO,1,10,A_Look,S_TROO_STND}, // S_TROO_STND2 - {SPR_TROO,0,3,A_Chase,S_TROO_RUN2}, // S_TROO_RUN1 - {SPR_TROO,0,3,A_Chase,S_TROO_RUN3}, // S_TROO_RUN2 - {SPR_TROO,1,3,A_Chase,S_TROO_RUN4}, // S_TROO_RUN3 - {SPR_TROO,1,3,A_Chase,S_TROO_RUN5}, // S_TROO_RUN4 - {SPR_TROO,2,3,A_Chase,S_TROO_RUN6}, // S_TROO_RUN5 - {SPR_TROO,2,3,A_Chase,S_TROO_RUN7}, // S_TROO_RUN6 - {SPR_TROO,3,3,A_Chase,S_TROO_RUN8}, // S_TROO_RUN7 - {SPR_TROO,3,3,A_Chase,S_TROO_RUN1}, // S_TROO_RUN8 - {SPR_TROO,4,8,A_FaceTarget,S_TROO_ATK2}, // S_TROO_ATK1 - {SPR_TROO,5,8,A_FaceTarget,S_TROO_ATK3}, // S_TROO_ATK2 - {SPR_TROO,6,6,A_TroopAttack,S_TROO_RUN1}, // S_TROO_ATK3 - {SPR_TROO,7,2,NULL,S_TROO_PAIN2}, // S_TROO_PAIN - {SPR_TROO,7,2,A_Pain,S_TROO_RUN1}, // S_TROO_PAIN2 - {SPR_TROO,8,8,NULL,S_TROO_DIE2}, // S_TROO_DIE1 - {SPR_TROO,9,8,A_Scream,S_TROO_DIE3}, // S_TROO_DIE2 - {SPR_TROO,10,6,NULL,S_TROO_DIE4}, // S_TROO_DIE3 - {SPR_TROO,11,6,A_Fall,S_TROO_DIE5}, // S_TROO_DIE4 - {SPR_TROO,12,-1,NULL,S_NULL}, // S_TROO_DIE5 - {SPR_TROO,13,5,NULL,S_TROO_XDIE2}, // S_TROO_XDIE1 - {SPR_TROO,14,5,A_XScream,S_TROO_XDIE3}, // S_TROO_XDIE2 - {SPR_TROO,15,5,NULL,S_TROO_XDIE4}, // S_TROO_XDIE3 - {SPR_TROO,16,5,A_Fall,S_TROO_XDIE5}, // S_TROO_XDIE4 - {SPR_TROO,17,5,NULL,S_TROO_XDIE6}, // S_TROO_XDIE5 - {SPR_TROO,18,5,NULL,S_TROO_XDIE7}, // S_TROO_XDIE6 - {SPR_TROO,19,5,NULL,S_TROO_XDIE8}, // S_TROO_XDIE7 - {SPR_TROO,20,-1,NULL,S_NULL}, // S_TROO_XDIE8 - {SPR_TROO,12,8,NULL,S_TROO_RAISE2}, // S_TROO_RAISE1 - {SPR_TROO,11,8,NULL,S_TROO_RAISE3}, // S_TROO_RAISE2 - {SPR_TROO,10,6,NULL,S_TROO_RAISE4}, // S_TROO_RAISE3 - {SPR_TROO,9,6,NULL,S_TROO_RAISE5}, // S_TROO_RAISE4 - {SPR_TROO,8,6,NULL,S_TROO_RUN1}, // S_TROO_RAISE5 - {SPR_SARG,0,10,A_Look,S_SARG_STND2}, // S_SARG_STND - {SPR_SARG,1,10,A_Look,S_SARG_STND}, // S_SARG_STND2 - {SPR_SARG,0,2,A_Chase,S_SARG_RUN2}, // S_SARG_RUN1 - {SPR_SARG,0,2,A_Chase,S_SARG_RUN3}, // S_SARG_RUN2 - {SPR_SARG,1,2,A_Chase,S_SARG_RUN4}, // S_SARG_RUN3 - {SPR_SARG,1,2,A_Chase,S_SARG_RUN5}, // S_SARG_RUN4 - {SPR_SARG,2,2,A_Chase,S_SARG_RUN6}, // S_SARG_RUN5 - {SPR_SARG,2,2,A_Chase,S_SARG_RUN7}, // S_SARG_RUN6 - {SPR_SARG,3,2,A_Chase,S_SARG_RUN8}, // S_SARG_RUN7 - {SPR_SARG,3,2,A_Chase,S_SARG_RUN1}, // S_SARG_RUN8 - {SPR_SARG,4,8,A_FaceTarget,S_SARG_ATK2}, // S_SARG_ATK1 - {SPR_SARG,5,8,A_FaceTarget,S_SARG_ATK3}, // S_SARG_ATK2 - {SPR_SARG,6,8,A_SargAttack,S_SARG_RUN1}, // S_SARG_ATK3 - {SPR_SARG,7,2,NULL,S_SARG_PAIN2}, // S_SARG_PAIN - {SPR_SARG,7,2,A_Pain,S_SARG_RUN1}, // S_SARG_PAIN2 - {SPR_SARG,8,8,NULL,S_SARG_DIE2}, // S_SARG_DIE1 - {SPR_SARG,9,8,A_Scream,S_SARG_DIE3}, // S_SARG_DIE2 - {SPR_SARG,10,4,NULL,S_SARG_DIE4}, // S_SARG_DIE3 - {SPR_SARG,11,4,A_Fall,S_SARG_DIE5}, // S_SARG_DIE4 - {SPR_SARG,12,4,NULL,S_SARG_DIE6}, // S_SARG_DIE5 - {SPR_SARG,13,-1,NULL,S_NULL}, // S_SARG_DIE6 - {SPR_SARG,13,5,NULL,S_SARG_RAISE2}, // S_SARG_RAISE1 - {SPR_SARG,12,5,NULL,S_SARG_RAISE3}, // S_SARG_RAISE2 - {SPR_SARG,11,5,NULL,S_SARG_RAISE4}, // S_SARG_RAISE3 - {SPR_SARG,10,5,NULL,S_SARG_RAISE5}, // S_SARG_RAISE4 - {SPR_SARG,9,5,NULL,S_SARG_RAISE6}, // S_SARG_RAISE5 - {SPR_SARG,8,5,NULL,S_SARG_RUN1}, // S_SARG_RAISE6 - {SPR_HEAD,0,10,A_Look,S_HEAD_STND}, // S_HEAD_STND - {SPR_HEAD,0,3,A_Chase,S_HEAD_RUN1}, // S_HEAD_RUN1 - {SPR_HEAD,1,5,A_FaceTarget,S_HEAD_ATK2}, // S_HEAD_ATK1 - {SPR_HEAD,2,5,A_FaceTarget,S_HEAD_ATK3}, // S_HEAD_ATK2 - {SPR_HEAD,32771,5,A_HeadAttack,S_HEAD_RUN1}, // S_HEAD_ATK3 - {SPR_HEAD,4,3,NULL,S_HEAD_PAIN2}, // S_HEAD_PAIN - {SPR_HEAD,4,3,A_Pain,S_HEAD_PAIN3}, // S_HEAD_PAIN2 - {SPR_HEAD,5,6,NULL,S_HEAD_RUN1}, // S_HEAD_PAIN3 - {SPR_HEAD,6,8,NULL,S_HEAD_DIE2}, // S_HEAD_DIE1 - {SPR_HEAD,7,8,A_Scream,S_HEAD_DIE3}, // S_HEAD_DIE2 - {SPR_HEAD,8,8,NULL,S_HEAD_DIE4}, // S_HEAD_DIE3 - {SPR_HEAD,9,8,NULL,S_HEAD_DIE5}, // S_HEAD_DIE4 - {SPR_HEAD,10,8,A_Fall,S_HEAD_DIE6}, // S_HEAD_DIE5 - {SPR_HEAD,11,-1,NULL,S_NULL}, // S_HEAD_DIE6 - {SPR_HEAD,11,8,NULL,S_HEAD_RAISE2}, // S_HEAD_RAISE1 - {SPR_HEAD,10,8,NULL,S_HEAD_RAISE3}, // S_HEAD_RAISE2 - {SPR_HEAD,9,8,NULL,S_HEAD_RAISE4}, // S_HEAD_RAISE3 - {SPR_HEAD,8,8,NULL,S_HEAD_RAISE5}, // S_HEAD_RAISE4 - {SPR_HEAD,7,8,NULL,S_HEAD_RAISE6}, // S_HEAD_RAISE5 - {SPR_HEAD,6,8,NULL,S_HEAD_RUN1}, // S_HEAD_RAISE6 - {SPR_BAL7,32768,4,NULL,S_BRBALL2}, // S_BRBALL1 - {SPR_BAL7,32769,4,NULL,S_BRBALL1}, // S_BRBALL2 - {SPR_BAL7,32770,6,NULL,S_BRBALLX2}, // S_BRBALLX1 - {SPR_BAL7,32771,6,NULL,S_BRBALLX3}, // S_BRBALLX2 - {SPR_BAL7,32772,6,NULL,S_NULL}, // S_BRBALLX3 - {SPR_BOSS,0,10,A_Look,S_BOSS_STND2}, // S_BOSS_STND - {SPR_BOSS,1,10,A_Look,S_BOSS_STND}, // S_BOSS_STND2 - {SPR_BOSS,0,3,A_Chase,S_BOSS_RUN2}, // S_BOSS_RUN1 - {SPR_BOSS,0,3,A_Chase,S_BOSS_RUN3}, // S_BOSS_RUN2 - {SPR_BOSS,1,3,A_Chase,S_BOSS_RUN4}, // S_BOSS_RUN3 - {SPR_BOSS,1,3,A_Chase,S_BOSS_RUN5}, // S_BOSS_RUN4 - {SPR_BOSS,2,3,A_Chase,S_BOSS_RUN6}, // S_BOSS_RUN5 - {SPR_BOSS,2,3,A_Chase,S_BOSS_RUN7}, // S_BOSS_RUN6 - {SPR_BOSS,3,3,A_Chase,S_BOSS_RUN8}, // S_BOSS_RUN7 - {SPR_BOSS,3,3,A_Chase,S_BOSS_RUN1}, // S_BOSS_RUN8 - {SPR_BOSS,4,8,A_FaceTarget,S_BOSS_ATK2}, // S_BOSS_ATK1 - {SPR_BOSS,5,8,A_FaceTarget,S_BOSS_ATK3}, // S_BOSS_ATK2 - {SPR_BOSS,6,8,A_BruisAttack,S_BOSS_RUN1}, // S_BOSS_ATK3 - {SPR_BOSS,7,2,NULL,S_BOSS_PAIN2}, // S_BOSS_PAIN - {SPR_BOSS,7,2,A_Pain,S_BOSS_RUN1}, // S_BOSS_PAIN2 - {SPR_BOSS,8,8,NULL,S_BOSS_DIE2}, // S_BOSS_DIE1 - {SPR_BOSS,9,8,A_Scream,S_BOSS_DIE3}, // S_BOSS_DIE2 - {SPR_BOSS,10,8,NULL,S_BOSS_DIE4}, // S_BOSS_DIE3 - {SPR_BOSS,11,8,A_Fall,S_BOSS_DIE5}, // S_BOSS_DIE4 - {SPR_BOSS,12,8,NULL,S_BOSS_DIE6}, // S_BOSS_DIE5 - {SPR_BOSS,13,8,NULL,S_BOSS_DIE7}, // S_BOSS_DIE6 - {SPR_BOSS,14,-1,A_BossDeath,S_NULL}, // S_BOSS_DIE7 - {SPR_BOSS,14,8,NULL,S_BOSS_RAISE2}, // S_BOSS_RAISE1 - {SPR_BOSS,13,8,NULL,S_BOSS_RAISE3}, // S_BOSS_RAISE2 - {SPR_BOSS,12,8,NULL,S_BOSS_RAISE4}, // S_BOSS_RAISE3 - {SPR_BOSS,11,8,NULL,S_BOSS_RAISE5}, // S_BOSS_RAISE4 - {SPR_BOSS,10,8,NULL,S_BOSS_RAISE6}, // S_BOSS_RAISE5 - {SPR_BOSS,9,8,NULL,S_BOSS_RAISE7}, // S_BOSS_RAISE6 - {SPR_BOSS,8,8,NULL,S_BOSS_RUN1}, // S_BOSS_RAISE7 - {SPR_BOS2,0,10,A_Look,S_BOS2_STND2}, // S_BOS2_STND - {SPR_BOS2,1,10,A_Look,S_BOS2_STND}, // S_BOS2_STND2 - {SPR_BOS2,0,3,A_Chase,S_BOS2_RUN2}, // S_BOS2_RUN1 - {SPR_BOS2,0,3,A_Chase,S_BOS2_RUN3}, // S_BOS2_RUN2 - {SPR_BOS2,1,3,A_Chase,S_BOS2_RUN4}, // S_BOS2_RUN3 - {SPR_BOS2,1,3,A_Chase,S_BOS2_RUN5}, // S_BOS2_RUN4 - {SPR_BOS2,2,3,A_Chase,S_BOS2_RUN6}, // S_BOS2_RUN5 - {SPR_BOS2,2,3,A_Chase,S_BOS2_RUN7}, // S_BOS2_RUN6 - {SPR_BOS2,3,3,A_Chase,S_BOS2_RUN8}, // S_BOS2_RUN7 - {SPR_BOS2,3,3,A_Chase,S_BOS2_RUN1}, // S_BOS2_RUN8 - {SPR_BOS2,4,8,A_FaceTarget,S_BOS2_ATK2}, // S_BOS2_ATK1 - {SPR_BOS2,5,8,A_FaceTarget,S_BOS2_ATK3}, // S_BOS2_ATK2 - {SPR_BOS2,6,8,A_BruisAttack,S_BOS2_RUN1}, // S_BOS2_ATK3 - {SPR_BOS2,7,2,NULL,S_BOS2_PAIN2}, // S_BOS2_PAIN - {SPR_BOS2,7,2,A_Pain,S_BOS2_RUN1}, // S_BOS2_PAIN2 - {SPR_BOS2,8,8,NULL,S_BOS2_DIE2}, // S_BOS2_DIE1 - {SPR_BOS2,9,8,A_Scream,S_BOS2_DIE3}, // S_BOS2_DIE2 - {SPR_BOS2,10,8,NULL,S_BOS2_DIE4}, // S_BOS2_DIE3 - {SPR_BOS2,11,8,A_Fall,S_BOS2_DIE5}, // S_BOS2_DIE4 - {SPR_BOS2,12,8,NULL,S_BOS2_DIE6}, // S_BOS2_DIE5 - {SPR_BOS2,13,8,NULL,S_BOS2_DIE7}, // S_BOS2_DIE6 - {SPR_BOS2,14,-1,NULL,S_NULL}, // S_BOS2_DIE7 - {SPR_BOS2,14,8,NULL,S_BOS2_RAISE2}, // S_BOS2_RAISE1 - {SPR_BOS2,13,8,NULL,S_BOS2_RAISE3}, // S_BOS2_RAISE2 - {SPR_BOS2,12,8,NULL,S_BOS2_RAISE4}, // S_BOS2_RAISE3 - {SPR_BOS2,11,8,NULL,S_BOS2_RAISE5}, // S_BOS2_RAISE4 - {SPR_BOS2,10,8,NULL,S_BOS2_RAISE6}, // S_BOS2_RAISE5 - {SPR_BOS2,9,8,NULL,S_BOS2_RAISE7}, // S_BOS2_RAISE6 - {SPR_BOS2,8,8,NULL,S_BOS2_RUN1}, // S_BOS2_RAISE7 - {SPR_SKUL,32768,10,A_Look,S_SKULL_STND2}, // S_SKULL_STND - {SPR_SKUL,32769,10,A_Look,S_SKULL_STND}, // S_SKULL_STND2 - {SPR_SKUL,32768,6,A_Chase,S_SKULL_RUN2}, // S_SKULL_RUN1 - {SPR_SKUL,32769,6,A_Chase,S_SKULL_RUN1}, // S_SKULL_RUN2 - {SPR_SKUL,32770,10,A_FaceTarget,S_SKULL_ATK2}, // S_SKULL_ATK1 - {SPR_SKUL,32771,4,A_SkullAttack,S_SKULL_ATK3}, // S_SKULL_ATK2 - {SPR_SKUL,32770,4,NULL,S_SKULL_ATK4}, // S_SKULL_ATK3 - {SPR_SKUL,32771,4,NULL,S_SKULL_ATK3}, // S_SKULL_ATK4 - {SPR_SKUL,32772,3,NULL,S_SKULL_PAIN2}, // S_SKULL_PAIN - {SPR_SKUL,32772,3,A_Pain,S_SKULL_RUN1}, // S_SKULL_PAIN2 - {SPR_SKUL,32773,6,NULL,S_SKULL_DIE2}, // S_SKULL_DIE1 - {SPR_SKUL,32774,6,A_Scream,S_SKULL_DIE3}, // S_SKULL_DIE2 - {SPR_SKUL,32775,6,NULL,S_SKULL_DIE4}, // S_SKULL_DIE3 - {SPR_SKUL,32776,6,A_Fall,S_SKULL_DIE5}, // S_SKULL_DIE4 - {SPR_SKUL,9,6,NULL,S_SKULL_DIE6}, // S_SKULL_DIE5 - {SPR_SKUL,10,6,NULL,S_NULL}, // S_SKULL_DIE6 - {SPR_SPID,0,10,A_Look,S_SPID_STND2}, // S_SPID_STND - {SPR_SPID,1,10,A_Look,S_SPID_STND}, // S_SPID_STND2 - {SPR_SPID,0,3,A_Metal,S_SPID_RUN2}, // S_SPID_RUN1 - {SPR_SPID,0,3,A_Chase,S_SPID_RUN3}, // S_SPID_RUN2 - {SPR_SPID,1,3,A_Chase,S_SPID_RUN4}, // S_SPID_RUN3 - {SPR_SPID,1,3,A_Chase,S_SPID_RUN5}, // S_SPID_RUN4 - {SPR_SPID,2,3,A_Metal,S_SPID_RUN6}, // S_SPID_RUN5 - {SPR_SPID,2,3,A_Chase,S_SPID_RUN7}, // S_SPID_RUN6 - {SPR_SPID,3,3,A_Chase,S_SPID_RUN8}, // S_SPID_RUN7 - {SPR_SPID,3,3,A_Chase,S_SPID_RUN9}, // S_SPID_RUN8 - {SPR_SPID,4,3,A_Metal,S_SPID_RUN10}, // S_SPID_RUN9 - {SPR_SPID,4,3,A_Chase,S_SPID_RUN11}, // S_SPID_RUN10 - {SPR_SPID,5,3,A_Chase,S_SPID_RUN12}, // S_SPID_RUN11 - {SPR_SPID,5,3,A_Chase,S_SPID_RUN1}, // S_SPID_RUN12 - {SPR_SPID,32768,20,A_FaceTarget,S_SPID_ATK2}, // S_SPID_ATK1 - {SPR_SPID,32774,4,A_SPosAttack,S_SPID_ATK3}, // S_SPID_ATK2 - {SPR_SPID,32775,4,A_SPosAttack,S_SPID_ATK4}, // S_SPID_ATK3 - {SPR_SPID,32775,1,A_SpidRefire,S_SPID_ATK2}, // S_SPID_ATK4 - {SPR_SPID,8,3,NULL,S_SPID_PAIN2}, // S_SPID_PAIN - {SPR_SPID,8,3,A_Pain,S_SPID_RUN1}, // S_SPID_PAIN2 - {SPR_SPID,9,20,A_Scream,S_SPID_DIE2}, // S_SPID_DIE1 - {SPR_SPID,10,10,A_Fall,S_SPID_DIE3}, // S_SPID_DIE2 - {SPR_SPID,11,10,NULL,S_SPID_DIE4}, // S_SPID_DIE3 - {SPR_SPID,12,10,NULL,S_SPID_DIE5}, // S_SPID_DIE4 - {SPR_SPID,13,10,NULL,S_SPID_DIE6}, // S_SPID_DIE5 - {SPR_SPID,14,10,NULL,S_SPID_DIE7}, // S_SPID_DIE6 - {SPR_SPID,15,10,NULL,S_SPID_DIE8}, // S_SPID_DIE7 - {SPR_SPID,16,10,NULL,S_SPID_DIE9}, // S_SPID_DIE8 - {SPR_SPID,17,10,NULL,S_SPID_DIE10}, // S_SPID_DIE9 - {SPR_SPID,18,30,NULL,S_SPID_DIE11}, // S_SPID_DIE10 - {SPR_SPID,18,-1,A_BossDeath,S_NULL}, // S_SPID_DIE11 - {SPR_BSPI,0,10,A_Look,S_BSPI_STND2}, // S_BSPI_STND - {SPR_BSPI,1,10,A_Look,S_BSPI_STND}, // S_BSPI_STND2 - {SPR_BSPI,0,20,NULL,S_BSPI_RUN1}, // S_BSPI_SIGHT - {SPR_BSPI,0,3,A_BabyMetal,S_BSPI_RUN2}, // S_BSPI_RUN1 - {SPR_BSPI,0,3,A_Chase,S_BSPI_RUN3}, // S_BSPI_RUN2 - {SPR_BSPI,1,3,A_Chase,S_BSPI_RUN4}, // S_BSPI_RUN3 - {SPR_BSPI,1,3,A_Chase,S_BSPI_RUN5}, // S_BSPI_RUN4 - {SPR_BSPI,2,3,A_Chase,S_BSPI_RUN6}, // S_BSPI_RUN5 - {SPR_BSPI,2,3,A_Chase,S_BSPI_RUN7}, // S_BSPI_RUN6 - {SPR_BSPI,3,3,A_BabyMetal,S_BSPI_RUN8}, // S_BSPI_RUN7 - {SPR_BSPI,3,3,A_Chase,S_BSPI_RUN9}, // S_BSPI_RUN8 - {SPR_BSPI,4,3,A_Chase,S_BSPI_RUN10}, // S_BSPI_RUN9 - {SPR_BSPI,4,3,A_Chase,S_BSPI_RUN11}, // S_BSPI_RUN10 - {SPR_BSPI,5,3,A_Chase,S_BSPI_RUN12}, // S_BSPI_RUN11 - {SPR_BSPI,5,3,A_Chase,S_BSPI_RUN1}, // S_BSPI_RUN12 - {SPR_BSPI,32768,20,A_FaceTarget,S_BSPI_ATK2}, // S_BSPI_ATK1 - {SPR_BSPI,32774,4,A_BspiAttack,S_BSPI_ATK3}, // S_BSPI_ATK2 - {SPR_BSPI,32775,4,NULL,S_BSPI_ATK4}, // S_BSPI_ATK3 - {SPR_BSPI,32775,1,A_SpidRefire,S_BSPI_ATK2}, // S_BSPI_ATK4 - {SPR_BSPI,8,3,NULL,S_BSPI_PAIN2}, // S_BSPI_PAIN - {SPR_BSPI,8,3,A_Pain,S_BSPI_RUN1}, // S_BSPI_PAIN2 - {SPR_BSPI,9,20,A_Scream,S_BSPI_DIE2}, // S_BSPI_DIE1 - {SPR_BSPI,10,7,A_Fall,S_BSPI_DIE3}, // S_BSPI_DIE2 - {SPR_BSPI,11,7,NULL,S_BSPI_DIE4}, // S_BSPI_DIE3 - {SPR_BSPI,12,7,NULL,S_BSPI_DIE5}, // S_BSPI_DIE4 - {SPR_BSPI,13,7,NULL,S_BSPI_DIE6}, // S_BSPI_DIE5 - {SPR_BSPI,14,7,NULL,S_BSPI_DIE7}, // S_BSPI_DIE6 - {SPR_BSPI,15,-1,A_BossDeath,S_NULL}, // S_BSPI_DIE7 - {SPR_BSPI,15,5,NULL,S_BSPI_RAISE2}, // S_BSPI_RAISE1 - {SPR_BSPI,14,5,NULL,S_BSPI_RAISE3}, // S_BSPI_RAISE2 - {SPR_BSPI,13,5,NULL,S_BSPI_RAISE4}, // S_BSPI_RAISE3 - {SPR_BSPI,12,5,NULL,S_BSPI_RAISE5}, // S_BSPI_RAISE4 - {SPR_BSPI,11,5,NULL,S_BSPI_RAISE6}, // S_BSPI_RAISE5 - {SPR_BSPI,10,5,NULL,S_BSPI_RAISE7}, // S_BSPI_RAISE6 - {SPR_BSPI,9,5,NULL,S_BSPI_RUN1}, // S_BSPI_RAISE7 - {SPR_APLS,32768,5,NULL,S_ARACH_PLAZ2}, // S_ARACH_PLAZ - {SPR_APLS,32769,5,NULL,S_ARACH_PLAZ}, // S_ARACH_PLAZ2 - {SPR_APBX,32768,5,NULL,S_ARACH_PLEX2}, // S_ARACH_PLEX - {SPR_APBX,32769,5,NULL,S_ARACH_PLEX3}, // S_ARACH_PLEX2 - {SPR_APBX,32770,5,NULL,S_ARACH_PLEX4}, // S_ARACH_PLEX3 - {SPR_APBX,32771,5,NULL,S_ARACH_PLEX5}, // S_ARACH_PLEX4 - {SPR_APBX,32772,5,NULL,S_NULL}, // S_ARACH_PLEX5 - {SPR_CYBR,0,10,A_Look,S_CYBER_STND2}, // S_CYBER_STND - {SPR_CYBR,1,10,A_Look,S_CYBER_STND}, // S_CYBER_STND2 - {SPR_CYBR,0,3,A_Hoof,S_CYBER_RUN2}, // S_CYBER_RUN1 - {SPR_CYBR,0,3,A_Chase,S_CYBER_RUN3}, // S_CYBER_RUN2 - {SPR_CYBR,1,3,A_Chase,S_CYBER_RUN4}, // S_CYBER_RUN3 - {SPR_CYBR,1,3,A_Chase,S_CYBER_RUN5}, // S_CYBER_RUN4 - {SPR_CYBR,2,3,A_Chase,S_CYBER_RUN6}, // S_CYBER_RUN5 - {SPR_CYBR,2,3,A_Chase,S_CYBER_RUN7}, // S_CYBER_RUN6 - {SPR_CYBR,3,3,A_Metal,S_CYBER_RUN8}, // S_CYBER_RUN7 - {SPR_CYBR,3,3,A_Chase,S_CYBER_RUN1}, // S_CYBER_RUN8 - {SPR_CYBR,4,6,A_FaceTarget,S_CYBER_ATK2}, // S_CYBER_ATK1 - {SPR_CYBR,5,12,A_CyberAttack,S_CYBER_ATK3}, // S_CYBER_ATK2 - {SPR_CYBR,4,12,A_FaceTarget,S_CYBER_ATK4}, // S_CYBER_ATK3 - {SPR_CYBR,5,12,A_CyberAttack,S_CYBER_ATK5}, // S_CYBER_ATK4 - {SPR_CYBR,4,12,A_FaceTarget,S_CYBER_ATK6}, // S_CYBER_ATK5 - {SPR_CYBR,5,12,A_CyberAttack,S_CYBER_RUN1}, // S_CYBER_ATK6 - {SPR_CYBR,6,10,A_Pain,S_CYBER_RUN1}, // S_CYBER_PAIN - {SPR_CYBR,7,10,NULL,S_CYBER_DIE2}, // S_CYBER_DIE1 - {SPR_CYBR,8,10,A_Scream,S_CYBER_DIE3}, // S_CYBER_DIE2 - {SPR_CYBR,9,10,NULL,S_CYBER_DIE4}, // S_CYBER_DIE3 - {SPR_CYBR,10,10,NULL,S_CYBER_DIE5}, // S_CYBER_DIE4 - {SPR_CYBR,11,10,NULL,S_CYBER_DIE6}, // S_CYBER_DIE5 - {SPR_CYBR,12,10,A_Fall,S_CYBER_DIE7}, // S_CYBER_DIE6 - {SPR_CYBR,13,10,NULL,S_CYBER_DIE8}, // S_CYBER_DIE7 - {SPR_CYBR,14,10,NULL,S_CYBER_DIE9}, // S_CYBER_DIE8 - {SPR_CYBR,15,30,NULL,S_CYBER_DIE10}, // S_CYBER_DIE9 - {SPR_CYBR,15,-1,A_BossDeath,S_NULL}, // S_CYBER_DIE10 - {SPR_PAIN,0,10,A_Look,S_PAIN_STND}, // S_PAIN_STND - {SPR_PAIN,0,3,A_Chase,S_PAIN_RUN2}, // S_PAIN_RUN1 - {SPR_PAIN,0,3,A_Chase,S_PAIN_RUN3}, // S_PAIN_RUN2 - {SPR_PAIN,1,3,A_Chase,S_PAIN_RUN4}, // S_PAIN_RUN3 - {SPR_PAIN,1,3,A_Chase,S_PAIN_RUN5}, // S_PAIN_RUN4 - {SPR_PAIN,2,3,A_Chase,S_PAIN_RUN6}, // S_PAIN_RUN5 - {SPR_PAIN,2,3,A_Chase,S_PAIN_RUN1}, // S_PAIN_RUN6 - {SPR_PAIN,3,5,A_FaceTarget,S_PAIN_ATK2}, // S_PAIN_ATK1 - {SPR_PAIN,4,5,A_FaceTarget,S_PAIN_ATK3}, // S_PAIN_ATK2 - {SPR_PAIN,32773,5,A_FaceTarget,S_PAIN_ATK4}, // S_PAIN_ATK3 - {SPR_PAIN,32773,0,A_PainAttack,S_PAIN_RUN1}, // S_PAIN_ATK4 - {SPR_PAIN,6,6,NULL,S_PAIN_PAIN2}, // S_PAIN_PAIN - {SPR_PAIN,6,6,A_Pain,S_PAIN_RUN1}, // S_PAIN_PAIN2 - {SPR_PAIN,32775,8,NULL,S_PAIN_DIE2}, // S_PAIN_DIE1 - {SPR_PAIN,32776,8,A_Scream,S_PAIN_DIE3}, // S_PAIN_DIE2 - {SPR_PAIN,32777,8,NULL,S_PAIN_DIE4}, // S_PAIN_DIE3 - {SPR_PAIN,32778,8,NULL,S_PAIN_DIE5}, // S_PAIN_DIE4 - {SPR_PAIN,32779,8,A_PainDie,S_PAIN_DIE6}, // S_PAIN_DIE5 - {SPR_PAIN,32780,8,NULL,S_NULL}, // S_PAIN_DIE6 - {SPR_PAIN,12,8,NULL,S_PAIN_RAISE2}, // S_PAIN_RAISE1 - {SPR_PAIN,11,8,NULL,S_PAIN_RAISE3}, // S_PAIN_RAISE2 - {SPR_PAIN,10,8,NULL,S_PAIN_RAISE4}, // S_PAIN_RAISE3 - {SPR_PAIN,9,8,NULL,S_PAIN_RAISE5}, // S_PAIN_RAISE4 - {SPR_PAIN,8,8,NULL,S_PAIN_RAISE6}, // S_PAIN_RAISE5 - {SPR_PAIN,7,8,NULL,S_PAIN_RUN1}, // S_PAIN_RAISE6 - {SPR_SSWV,0,10,A_Look,S_SSWV_STND2}, // S_SSWV_STND - {SPR_SSWV,1,10,A_Look,S_SSWV_STND}, // S_SSWV_STND2 - {SPR_SSWV,0,3,A_Chase,S_SSWV_RUN2}, // S_SSWV_RUN1 - {SPR_SSWV,0,3,A_Chase,S_SSWV_RUN3}, // S_SSWV_RUN2 - {SPR_SSWV,1,3,A_Chase,S_SSWV_RUN4}, // S_SSWV_RUN3 - {SPR_SSWV,1,3,A_Chase,S_SSWV_RUN5}, // S_SSWV_RUN4 - {SPR_SSWV,2,3,A_Chase,S_SSWV_RUN6}, // S_SSWV_RUN5 - {SPR_SSWV,2,3,A_Chase,S_SSWV_RUN7}, // S_SSWV_RUN6 - {SPR_SSWV,3,3,A_Chase,S_SSWV_RUN8}, // S_SSWV_RUN7 - {SPR_SSWV,3,3,A_Chase,S_SSWV_RUN1}, // S_SSWV_RUN8 - {SPR_SSWV,4,10,A_FaceTarget,S_SSWV_ATK2}, // S_SSWV_ATK1 - {SPR_SSWV,5,10,A_FaceTarget,S_SSWV_ATK3}, // S_SSWV_ATK2 - {SPR_SSWV,32774,4,A_CPosAttack,S_SSWV_ATK4}, // S_SSWV_ATK3 - {SPR_SSWV,5,6,A_FaceTarget,S_SSWV_ATK5}, // S_SSWV_ATK4 - {SPR_SSWV,32774,4,A_CPosAttack,S_SSWV_ATK6}, // S_SSWV_ATK5 - {SPR_SSWV,5,1,A_CPosRefire,S_SSWV_ATK2}, // S_SSWV_ATK6 - {SPR_SSWV,7,3,NULL,S_SSWV_PAIN2}, // S_SSWV_PAIN - {SPR_SSWV,7,3,A_Pain,S_SSWV_RUN1}, // S_SSWV_PAIN2 - {SPR_SSWV,8,5,NULL,S_SSWV_DIE2}, // S_SSWV_DIE1 - {SPR_SSWV,9,5,A_Scream,S_SSWV_DIE3}, // S_SSWV_DIE2 - {SPR_SSWV,10,5,A_Fall,S_SSWV_DIE4}, // S_SSWV_DIE3 - {SPR_SSWV,11,5,NULL,S_SSWV_DIE5}, // S_SSWV_DIE4 - {SPR_SSWV,12,-1,NULL,S_NULL}, // S_SSWV_DIE5 - {SPR_SSWV,13,5,NULL,S_SSWV_XDIE2}, // S_SSWV_XDIE1 - {SPR_SSWV,14,5,A_XScream,S_SSWV_XDIE3}, // S_SSWV_XDIE2 - {SPR_SSWV,15,5,A_Fall,S_SSWV_XDIE4}, // S_SSWV_XDIE3 - {SPR_SSWV,16,5,NULL,S_SSWV_XDIE5}, // S_SSWV_XDIE4 - {SPR_SSWV,17,5,NULL,S_SSWV_XDIE6}, // S_SSWV_XDIE5 - {SPR_SSWV,18,5,NULL,S_SSWV_XDIE7}, // S_SSWV_XDIE6 - {SPR_SSWV,19,5,NULL,S_SSWV_XDIE8}, // S_SSWV_XDIE7 - {SPR_SSWV,20,5,NULL,S_SSWV_XDIE9}, // S_SSWV_XDIE8 - {SPR_SSWV,21,-1,NULL,S_NULL}, // S_SSWV_XDIE9 - {SPR_SSWV,12,5,NULL,S_SSWV_RAISE2}, // S_SSWV_RAISE1 - {SPR_SSWV,11,5,NULL,S_SSWV_RAISE3}, // S_SSWV_RAISE2 - {SPR_SSWV,10,5,NULL,S_SSWV_RAISE4}, // S_SSWV_RAISE3 - {SPR_SSWV,9,5,NULL,S_SSWV_RAISE5}, // S_SSWV_RAISE4 - {SPR_SSWV,8,5,NULL,S_SSWV_RUN1}, // S_SSWV_RAISE5 - {SPR_KEEN,0,-1,NULL,S_KEENSTND}, // S_KEENSTND - {SPR_KEEN,0,6,NULL,S_COMMKEEN2}, // S_COMMKEEN - {SPR_KEEN,1,6,NULL,S_COMMKEEN3}, // S_COMMKEEN2 - {SPR_KEEN,2,6,A_Scream,S_COMMKEEN4}, // S_COMMKEEN3 - {SPR_KEEN,3,6,NULL,S_COMMKEEN5}, // S_COMMKEEN4 - {SPR_KEEN,4,6,NULL,S_COMMKEEN6}, // S_COMMKEEN5 - {SPR_KEEN,5,6,NULL,S_COMMKEEN7}, // S_COMMKEEN6 - {SPR_KEEN,6,6,NULL,S_COMMKEEN8}, // S_COMMKEEN7 - {SPR_KEEN,7,6,NULL,S_COMMKEEN9}, // S_COMMKEEN8 - {SPR_KEEN,8,6,NULL,S_COMMKEEN10}, // S_COMMKEEN9 - {SPR_KEEN,9,6,NULL,S_COMMKEEN11}, // S_COMMKEEN10 - {SPR_KEEN,10,6,A_KeenDie,S_COMMKEEN12},// S_COMMKEEN11 - {SPR_KEEN,11,-1,NULL,S_NULL}, // S_COMMKEEN12 - {SPR_KEEN,12,4,NULL,S_KEENPAIN2}, // S_KEENPAIN - {SPR_KEEN,12,8,A_Pain,S_KEENSTND}, // S_KEENPAIN2 - {SPR_BBRN,0,-1,NULL,S_NULL}, // S_BRAIN - {SPR_BBRN,1,36,A_BrainPain,S_BRAIN}, // S_BRAIN_PAIN - {SPR_BBRN,0,100,A_BrainScream,S_BRAIN_DIE2}, // S_BRAIN_DIE1 - {SPR_BBRN,0,10,NULL,S_BRAIN_DIE3}, // S_BRAIN_DIE2 - {SPR_BBRN,0,10,NULL,S_BRAIN_DIE4}, // S_BRAIN_DIE3 - {SPR_BBRN,0,-1,A_BrainDie,S_NULL}, // S_BRAIN_DIE4 - {SPR_SSWV,0,10,A_Look,S_BRAINEYE}, // S_BRAINEYE - {SPR_SSWV,0,181,A_BrainAwake,S_BRAINEYE1}, // S_BRAINEYESEE - {SPR_SSWV,0,150,A_BrainSpit,S_BRAINEYE1}, // S_BRAINEYE1 - {SPR_BOSF,32768,3,A_SpawnSound,S_SPAWN2}, // S_SPAWN1 - {SPR_BOSF,32769,3,A_SpawnFly,S_SPAWN3}, // S_SPAWN2 - {SPR_BOSF,32770,3,A_SpawnFly,S_SPAWN4}, // S_SPAWN3 - {SPR_BOSF,32771,3,A_SpawnFly,S_SPAWN1}, // S_SPAWN4 - {SPR_FIRE,32768,4,A_Fire,S_SPAWNFIRE2}, // S_SPAWNFIRE1 - {SPR_FIRE,32769,4,A_Fire,S_SPAWNFIRE3}, // S_SPAWNFIRE2 - {SPR_FIRE,32770,4,A_Fire,S_SPAWNFIRE4}, // S_SPAWNFIRE3 - {SPR_FIRE,32771,4,A_Fire,S_SPAWNFIRE5}, // S_SPAWNFIRE4 - {SPR_FIRE,32772,4,A_Fire,S_SPAWNFIRE6}, // S_SPAWNFIRE5 - {SPR_FIRE,32773,4,A_Fire,S_SPAWNFIRE7}, // S_SPAWNFIRE6 - {SPR_FIRE,32774,4,A_Fire,S_SPAWNFIRE8}, // S_SPAWNFIRE7 - {SPR_FIRE,32775,4,A_Fire,S_NULL}, // S_SPAWNFIRE8 - {SPR_MISL,32769,10,NULL,S_BRAINEXPLODE2}, // S_BRAINEXPLODE1 - {SPR_MISL,32770,10,NULL,S_BRAINEXPLODE3}, // S_BRAINEXPLODE2 - {SPR_MISL,32771,10,A_BrainExplode,S_NULL}, // S_BRAINEXPLODE3 - {SPR_ARM1,0,6,NULL,S_ARM1A}, // S_ARM1 - {SPR_ARM1,32769,7,NULL,S_ARM1}, // S_ARM1A - {SPR_ARM2,0,6,NULL,S_ARM2A}, // S_ARM2 - {SPR_ARM2,32769,6,NULL,S_ARM2}, // S_ARM2A - {SPR_BAR1,0,6,NULL,S_BAR2}, // S_BAR1 - {SPR_BAR1,1,6,NULL,S_BAR1}, // S_BAR2 - {SPR_BEXP,32768,5,NULL,S_BEXP2}, // S_BEXP - {SPR_BEXP,32769,5,A_Scream,S_BEXP3}, // S_BEXP2 - {SPR_BEXP,32770,5,NULL,S_BEXP4}, // S_BEXP3 - {SPR_BEXP,32771,10,A_Explode,S_BEXP5}, // S_BEXP4 - {SPR_BEXP,32772,10,NULL,S_NULL}, // S_BEXP5 - {SPR_FCAN,32768,4,NULL,S_BBAR2}, // S_BBAR1 - {SPR_FCAN,32769,4,NULL,S_BBAR3}, // S_BBAR2 - {SPR_FCAN,32770,4,NULL,S_BBAR1}, // S_BBAR3 - {SPR_BON1,0,6,NULL,S_BON1A}, // S_BON1 - {SPR_BON1,1,6,NULL,S_BON1B}, // S_BON1A - {SPR_BON1,2,6,NULL,S_BON1C}, // S_BON1B - {SPR_BON1,3,6,NULL,S_BON1D}, // S_BON1C - {SPR_BON1,2,6,NULL,S_BON1E}, // S_BON1D - {SPR_BON1,1,6,NULL,S_BON1}, // S_BON1E - {SPR_BON2,0,6,NULL,S_BON2A}, // S_BON2 - {SPR_BON2,1,6,NULL,S_BON2B}, // S_BON2A - {SPR_BON2,2,6,NULL,S_BON2C}, // S_BON2B - {SPR_BON2,3,6,NULL,S_BON2D}, // S_BON2C - {SPR_BON2,2,6,NULL,S_BON2E}, // S_BON2D - {SPR_BON2,1,6,NULL,S_BON2}, // S_BON2E - {SPR_BKEY,0,10,NULL,S_BKEY2}, // S_BKEY - {SPR_BKEY,32769,10,NULL,S_BKEY}, // S_BKEY2 - {SPR_RKEY,0,10,NULL,S_RKEY2}, // S_RKEY - {SPR_RKEY,32769,10,NULL,S_RKEY}, // S_RKEY2 - {SPR_YKEY,0,10,NULL,S_YKEY2}, // S_YKEY - {SPR_YKEY,32769,10,NULL,S_YKEY}, // S_YKEY2 - {SPR_BSKU,0,10,NULL,S_BSKULL2}, // S_BSKULL - {SPR_BSKU,32769,10,NULL,S_BSKULL}, // S_BSKULL2 - {SPR_RSKU,0,10,NULL,S_RSKULL2}, // S_RSKULL - {SPR_RSKU,32769,10,NULL,S_RSKULL}, // S_RSKULL2 - {SPR_YSKU,0,10,NULL,S_YSKULL2}, // S_YSKULL - {SPR_YSKU,32769,10,NULL,S_YSKULL}, // S_YSKULL2 - {SPR_STIM,0,-1,NULL,S_NULL}, // S_STIM - {SPR_MEDI,0,-1,NULL,S_NULL}, // S_MEDI - {SPR_SOUL,32768,6,NULL,S_SOUL2}, // S_SOUL - {SPR_SOUL,32769,6,NULL,S_SOUL3}, // S_SOUL2 - {SPR_SOUL,32770,6,NULL,S_SOUL4}, // S_SOUL3 - {SPR_SOUL,32771,6,NULL,S_SOUL5}, // S_SOUL4 - {SPR_SOUL,32770,6,NULL,S_SOUL6}, // S_SOUL5 - {SPR_SOUL,32769,6,NULL,S_SOUL}, // S_SOUL6 - {SPR_PINV,32768,6,NULL,S_PINV2}, // S_PINV - {SPR_PINV,32769,6,NULL,S_PINV3}, // S_PINV2 - {SPR_PINV,32770,6,NULL,S_PINV4}, // S_PINV3 - {SPR_PINV,32771,6,NULL,S_PINV}, // S_PINV4 - {SPR_PSTR,32768,-1,NULL,S_NULL}, // S_PSTR - {SPR_PINS,32768,6,NULL,S_PINS2}, // S_PINS - {SPR_PINS,32769,6,NULL,S_PINS3}, // S_PINS2 - {SPR_PINS,32770,6,NULL,S_PINS4}, // S_PINS3 - {SPR_PINS,32771,6,NULL,S_PINS}, // S_PINS4 - {SPR_MEGA,32768,6,NULL,S_MEGA2}, // S_MEGA - {SPR_MEGA,32769,6,NULL,S_MEGA3}, // S_MEGA2 - {SPR_MEGA,32770,6,NULL,S_MEGA4}, // S_MEGA3 - {SPR_MEGA,32771,6,NULL,S_MEGA}, // S_MEGA4 - {SPR_SUIT,32768,-1,NULL,S_NULL}, // S_SUIT - {SPR_PMAP,32768,6,NULL,S_PMAP2}, // S_PMAP - {SPR_PMAP,32769,6,NULL,S_PMAP3}, // S_PMAP2 - {SPR_PMAP,32770,6,NULL,S_PMAP4}, // S_PMAP3 - {SPR_PMAP,32771,6,NULL,S_PMAP5}, // S_PMAP4 - {SPR_PMAP,32770,6,NULL,S_PMAP6}, // S_PMAP5 - {SPR_PMAP,32769,6,NULL,S_PMAP}, // S_PMAP6 - {SPR_PVIS,32768,6,NULL,S_PVIS2}, // S_PVIS - {SPR_PVIS,1,6,NULL,S_PVIS}, // S_PVIS2 - {SPR_CLIP,0,-1,NULL,S_NULL}, // S_CLIP - {SPR_AMMO,0,-1,NULL,S_NULL}, // S_AMMO - {SPR_ROCK,0,-1,NULL,S_NULL}, // S_ROCK - {SPR_BROK,0,-1,NULL,S_NULL}, // S_BROK - {SPR_CELL,0,-1,NULL,S_NULL}, // S_CELL - {SPR_CELP,0,-1,NULL,S_NULL}, // S_CELP - {SPR_SHEL,0,-1,NULL,S_NULL}, // S_SHEL - {SPR_SBOX,0,-1,NULL,S_NULL}, // S_SBOX - {SPR_BPAK,0,-1,NULL,S_NULL}, // S_BPAK - {SPR_BFUG,0,-1,NULL,S_NULL}, // S_BFUG - {SPR_MGUN,0,-1,NULL,S_NULL}, // S_MGUN - {SPR_CSAW,0,-1,NULL,S_NULL}, // S_CSAW - {SPR_LAUN,0,-1,NULL,S_NULL}, // S_LAUN - {SPR_PLAS,0,-1,NULL,S_NULL}, // S_PLAS - {SPR_SHOT,0,-1,NULL,S_NULL}, // S_SHOT - {SPR_SGN2,0,-1,NULL,S_NULL}, // S_SHOT2 - {SPR_COLU,32768,-1,NULL,S_NULL}, // S_COLU - {SPR_SMT2,0,-1,NULL,S_NULL}, // S_STALAG - {SPR_GOR1,0,10,NULL,S_BLOODYTWITCH2}, // S_BLOODYTWITCH - {SPR_GOR1,1,15,NULL,S_BLOODYTWITCH3}, // S_BLOODYTWITCH2 - {SPR_GOR1,2,8,NULL,S_BLOODYTWITCH4}, // S_BLOODYTWITCH3 - {SPR_GOR1,1,6,NULL,S_BLOODYTWITCH}, // S_BLOODYTWITCH4 - {SPR_PLAY,13,-1,NULL,S_NULL}, // S_DEADTORSO - {SPR_PLAY,18,-1,NULL,S_NULL}, // S_DEADBOTTOM - {SPR_POL2,0,-1,NULL,S_NULL}, // S_HEADSONSTICK - {SPR_POL5,0,-1,NULL,S_NULL}, // S_GIBS - {SPR_POL4,0,-1,NULL,S_NULL}, // S_HEADONASTICK - {SPR_POL3,32768,6,NULL,S_HEADCANDLES2}, // S_HEADCANDLES - {SPR_POL3,32769,6,NULL,S_HEADCANDLES}, // S_HEADCANDLES2 - {SPR_POL1,0,-1,NULL,S_NULL}, // S_DEADSTICK - {SPR_POL6,0,6,NULL,S_LIVESTICK2}, // S_LIVESTICK - {SPR_POL6,1,8,NULL,S_LIVESTICK}, // S_LIVESTICK2 - {SPR_GOR2,0,-1,NULL,S_NULL}, // S_MEAT2 - {SPR_GOR3,0,-1,NULL,S_NULL}, // S_MEAT3 - {SPR_GOR4,0,-1,NULL,S_NULL}, // S_MEAT4 - {SPR_GOR5,0,-1,NULL,S_NULL}, // S_MEAT5 - {SPR_SMIT,0,-1,NULL,S_NULL}, // S_STALAGTITE - {SPR_COL1,0,-1,NULL,S_NULL}, // S_TALLGRNCOL - {SPR_COL2,0,-1,NULL,S_NULL}, // S_SHRTGRNCOL - {SPR_COL3,0,-1,NULL,S_NULL}, // S_TALLREDCOL - {SPR_COL4,0,-1,NULL,S_NULL}, // S_SHRTREDCOL - {SPR_CAND,32768,-1,NULL,S_NULL}, // S_CANDLESTIK - {SPR_CBRA,32768,-1,NULL,S_NULL}, // S_CANDELABRA - {SPR_COL6,0,-1,NULL,S_NULL}, // S_SKULLCOL - {SPR_TRE1,0,-1,NULL,S_NULL}, // S_TORCHTREE - {SPR_TRE2,0,-1,NULL,S_NULL}, // S_BIGTREE - {SPR_ELEC,0,-1,NULL,S_NULL}, // S_TECHPILLAR - {SPR_CEYE,32768,6,NULL,S_EVILEYE2}, // S_EVILEYE - {SPR_CEYE,32769,6,NULL,S_EVILEYE3}, // S_EVILEYE2 - {SPR_CEYE,32770,6,NULL,S_EVILEYE4}, // S_EVILEYE3 - {SPR_CEYE,32769,6,NULL,S_EVILEYE}, // S_EVILEYE4 - {SPR_FSKU,32768,6,NULL,S_FLOATSKULL2}, // S_FLOATSKULL - {SPR_FSKU,32769,6,NULL,S_FLOATSKULL3}, // S_FLOATSKULL2 - {SPR_FSKU,32770,6,NULL,S_FLOATSKULL}, // S_FLOATSKULL3 - {SPR_COL5,0,14,NULL,S_HEARTCOL2}, // S_HEARTCOL - {SPR_COL5,1,14,NULL,S_HEARTCOL}, // S_HEARTCOL2 - {SPR_TBLU,32768,4,NULL,S_BLUETORCH2}, // S_BLUETORCH - {SPR_TBLU,32769,4,NULL,S_BLUETORCH3}, // S_BLUETORCH2 - {SPR_TBLU,32770,4,NULL,S_BLUETORCH4}, // S_BLUETORCH3 - {SPR_TBLU,32771,4,NULL,S_BLUETORCH}, // S_BLUETORCH4 - {SPR_TGRN,32768,4,NULL,S_GREENTORCH2}, // S_GREENTORCH - {SPR_TGRN,32769,4,NULL,S_GREENTORCH3}, // S_GREENTORCH2 - {SPR_TGRN,32770,4,NULL,S_GREENTORCH4}, // S_GREENTORCH3 - {SPR_TGRN,32771,4,NULL,S_GREENTORCH}, // S_GREENTORCH4 - {SPR_TRED,32768,4,NULL,S_REDTORCH2}, // S_REDTORCH - {SPR_TRED,32769,4,NULL,S_REDTORCH3}, // S_REDTORCH2 - {SPR_TRED,32770,4,NULL,S_REDTORCH4}, // S_REDTORCH3 - {SPR_TRED,32771,4,NULL,S_REDTORCH}, // S_REDTORCH4 - {SPR_SMBT,32768,4,NULL,S_BTORCHSHRT2}, // S_BTORCHSHRT - {SPR_SMBT,32769,4,NULL,S_BTORCHSHRT3}, // S_BTORCHSHRT2 - {SPR_SMBT,32770,4,NULL,S_BTORCHSHRT4}, // S_BTORCHSHRT3 - {SPR_SMBT,32771,4,NULL,S_BTORCHSHRT}, // S_BTORCHSHRT4 - {SPR_SMGT,32768,4,NULL,S_GTORCHSHRT2}, // S_GTORCHSHRT - {SPR_SMGT,32769,4,NULL,S_GTORCHSHRT3}, // S_GTORCHSHRT2 - {SPR_SMGT,32770,4,NULL,S_GTORCHSHRT4}, // S_GTORCHSHRT3 - {SPR_SMGT,32771,4,NULL,S_GTORCHSHRT}, // S_GTORCHSHRT4 - {SPR_SMRT,32768,4,NULL,S_RTORCHSHRT2}, // S_RTORCHSHRT - {SPR_SMRT,32769,4,NULL,S_RTORCHSHRT3}, // S_RTORCHSHRT2 - {SPR_SMRT,32770,4,NULL,S_RTORCHSHRT4}, // S_RTORCHSHRT3 - {SPR_SMRT,32771,4,NULL,S_RTORCHSHRT}, // S_RTORCHSHRT4 - {SPR_HDB1,0,-1,NULL,S_NULL}, // S_HANGNOGUTS - {SPR_HDB2,0,-1,NULL,S_NULL}, // S_HANGBNOBRAIN - {SPR_HDB3,0,-1,NULL,S_NULL}, // S_HANGTLOOKDN - {SPR_HDB4,0,-1,NULL,S_NULL}, // S_HANGTSKULL - {SPR_HDB5,0,-1,NULL,S_NULL}, // S_HANGTLOOKUP - {SPR_HDB6,0,-1,NULL,S_NULL}, // S_HANGTNOBRAIN - {SPR_POB1,0,-1,NULL,S_NULL}, // S_COLONGIBS - {SPR_POB2,0,-1,NULL,S_NULL}, // S_SMALLPOOL - {SPR_BRS1,0,-1,NULL,S_NULL}, // S_BRAINSTEM - {SPR_TLMP,32768,4,NULL,S_TECHLAMP2}, // S_TECHLAMP - {SPR_TLMP,32769,4,NULL,S_TECHLAMP3}, // S_TECHLAMP2 - {SPR_TLMP,32770,4,NULL,S_TECHLAMP4}, // S_TECHLAMP3 - {SPR_TLMP,32771,4,NULL,S_TECHLAMP}, // S_TECHLAMP4 - {SPR_TLP2,32768,4,NULL,S_TECH2LAMP2}, // S_TECH2LAMP - {SPR_TLP2,32769,4,NULL,S_TECH2LAMP3}, // S_TECH2LAMP2 - {SPR_TLP2,32770,4,NULL,S_TECH2LAMP4}, // S_TECH2LAMP3 - {SPR_TLP2,32771,4,NULL,S_TECH2LAMP}, // S_TECH2LAMP4 + {SPR_SHT2,32776,4/*killough*/,{A_Light1},S_DSGUNFLASH2}, // S_DSGUNFLASH1 + {SPR_SHT2,32777,4,{A_Light2},S_LIGHTDONE}, // S_DSGUNFLASH2 + {SPR_CHGG,0,1,{A_WeaponReady},S_CHAIN}, // S_CHAIN + {SPR_CHGG,0,1,{A_Lower},S_CHAINDOWN}, // S_CHAINDOWN + {SPR_CHGG,0,1,{A_Raise},S_CHAINUP}, // S_CHAINUP + {SPR_CHGG,0,4,{A_FireCGun},S_CHAIN2}, // S_CHAIN1 + {SPR_CHGG,1,4,{A_FireCGun},S_CHAIN3}, // S_CHAIN2 + {SPR_CHGG,1,0,{A_ReFire},S_CHAIN}, // S_CHAIN3 + {SPR_CHGF,32768,5,{A_Light1},S_LIGHTDONE}, // S_CHAINFLASH1 + {SPR_CHGF,32769,5,{A_Light2},S_LIGHTDONE}, // S_CHAINFLASH2 + {SPR_MISG,0,1,{A_WeaponReady},S_MISSILE}, // S_MISSILE + {SPR_MISG,0,1,{A_Lower},S_MISSILEDOWN}, // S_MISSILEDOWN + {SPR_MISG,0,1,{A_Raise},S_MISSILEUP}, // S_MISSILEUP + {SPR_MISG,1,8,{A_GunFlash},S_MISSILE2}, // S_MISSILE1 + {SPR_MISG,1,12,{A_FireMissile},S_MISSILE3}, // S_MISSILE2 + {SPR_MISG,1,0,{A_ReFire},S_MISSILE}, // S_MISSILE3 + {SPR_MISF,32768,3,{A_Light1},S_MISSILEFLASH2}, // S_MISSILEFLASH1 + {SPR_MISF,32769,4,{NULL},S_MISSILEFLASH3}, // S_MISSILEFLASH2 + {SPR_MISF,32770,4,{A_Light2},S_MISSILEFLASH4}, // S_MISSILEFLASH3 + {SPR_MISF,32771,4,{A_Light2},S_LIGHTDONE}, // S_MISSILEFLASH4 + {SPR_SAWG,2,4,{A_WeaponReady},S_SAWB}, // S_SAW + {SPR_SAWG,3,4,{A_WeaponReady},S_SAW}, // S_SAWB + {SPR_SAWG,2,1,{A_Lower},S_SAWDOWN}, // S_SAWDOWN + {SPR_SAWG,2,1,{A_Raise},S_SAWUP}, // S_SAWUP + {SPR_SAWG,0,4,{A_Saw},S_SAW2}, // S_SAW1 + {SPR_SAWG,1,4,{A_Saw},S_SAW3}, // S_SAW2 + {SPR_SAWG,1,0,{A_ReFire},S_SAW}, // S_SAW3 + {SPR_PLSG,0,1,{A_WeaponReady},S_PLASMA}, // S_PLASMA + {SPR_PLSG,0,1,{A_Lower},S_PLASMADOWN}, // S_PLASMADOWN + {SPR_PLSG,0,1,{A_Raise},S_PLASMAUP}, // S_PLASMAUP + {SPR_PLSG,0,3,{A_FirePlasma},S_PLASMA2}, // S_PLASMA1 + {SPR_PLSG,1,20,{A_ReFire},S_PLASMA}, // S_PLASMA2 + {SPR_PLSF,32768,4,{A_Light1},S_LIGHTDONE}, // S_PLASMAFLASH1 + {SPR_PLSF,32769,4,{A_Light1},S_LIGHTDONE}, // S_PLASMAFLASH2 + {SPR_BFGG,0,1,{A_WeaponReady},S_BFG}, // S_BFG + {SPR_BFGG,0,1,{A_Lower},S_BFGDOWN}, // S_BFGDOWN + {SPR_BFGG,0,1,{A_Raise},S_BFGUP}, // S_BFGUP + {SPR_BFGG,0,20,{A_BFGsound},S_BFG2}, // S_BFG1 + {SPR_BFGG,1,10,{A_GunFlash},S_BFG3}, // S_BFG2 + {SPR_BFGG,1,10,{A_FireBFG},S_BFG4}, // S_BFG3 + {SPR_BFGG,1,20,{A_ReFire},S_BFG}, // S_BFG4 + {SPR_BFGF,32768,11,{A_Light1},S_BFGFLASH2}, // S_BFGFLASH1 + {SPR_BFGF,32769,6,{A_Light2},S_LIGHTDONE}, // S_BFGFLASH2 + {SPR_BLUD,2,8,{NULL},S_BLOOD2}, // S_BLOOD1 + {SPR_BLUD,1,8,{NULL},S_BLOOD3}, // S_BLOOD2 + {SPR_BLUD,0,8,{NULL},S_NULL}, // S_BLOOD3 + {SPR_PUFF,32768,4,{NULL},S_PUFF2}, // S_PUFF1 + {SPR_PUFF,1,4,{NULL},S_PUFF3}, // S_PUFF2 + {SPR_PUFF,2,4,{NULL},S_PUFF4}, // S_PUFF3 + {SPR_PUFF,3,4,{NULL},S_NULL}, // S_PUFF4 + {SPR_BAL1,32768,4,{NULL},S_TBALL2}, // S_TBALL1 + {SPR_BAL1,32769,4,{NULL},S_TBALL1}, // S_TBALL2 + {SPR_BAL1,32770,6,{NULL},S_TBALLX2}, // S_TBALLX1 + {SPR_BAL1,32771,6,{NULL},S_TBALLX3}, // S_TBALLX2 + {SPR_BAL1,32772,6,{NULL},S_NULL}, // S_TBALLX3 + {SPR_BAL2,32768,4,{NULL},S_RBALL2}, // S_RBALL1 + {SPR_BAL2,32769,4,{NULL},S_RBALL1}, // S_RBALL2 + {SPR_BAL2,32770,6,{NULL},S_RBALLX2}, // S_RBALLX1 + {SPR_BAL2,32771,6,{NULL},S_RBALLX3}, // S_RBALLX2 + {SPR_BAL2,32772,6,{NULL},S_NULL}, // S_RBALLX3 + {SPR_PLSS,32768,6,{NULL},S_PLASBALL2}, // S_PLASBALL + {SPR_PLSS,32769,6,{NULL},S_PLASBALL}, // S_PLASBALL2 + {SPR_PLSE,32768,4,{NULL},S_PLASEXP2}, // S_PLASEXP + {SPR_PLSE,32769,4,{NULL},S_PLASEXP3}, // S_PLASEXP2 + {SPR_PLSE,32770,4,{NULL},S_PLASEXP4}, // S_PLASEXP3 + {SPR_PLSE,32771,4,{NULL},S_PLASEXP5}, // S_PLASEXP4 + {SPR_PLSE,32772,4,{NULL},S_NULL}, // S_PLASEXP5 + {SPR_MISL,32768,1,{NULL},S_ROCKET}, // S_ROCKET + {SPR_BFS1,32768,4,{NULL},S_BFGSHOT2}, // S_BFGSHOT + {SPR_BFS1,32769,4,{NULL},S_BFGSHOT}, // S_BFGSHOT2 + {SPR_BFE1,32768,8,{NULL},S_BFGLAND2}, // S_BFGLAND + {SPR_BFE1,32769,8,{NULL},S_BFGLAND3}, // S_BFGLAND2 + {SPR_BFE1,32770,8,{A_BFGSpray},S_BFGLAND4}, // S_BFGLAND3 + {SPR_BFE1,32771,8,{NULL},S_BFGLAND5}, // S_BFGLAND4 + {SPR_BFE1,32772,8,{NULL},S_BFGLAND6}, // S_BFGLAND5 + {SPR_BFE1,32773,8,{NULL},S_NULL}, // S_BFGLAND6 + {SPR_BFE2,32768,8,{NULL},S_BFGEXP2}, // S_BFGEXP + {SPR_BFE2,32769,8,{NULL},S_BFGEXP3}, // S_BFGEXP2 + {SPR_BFE2,32770,8,{NULL},S_BFGEXP4}, // S_BFGEXP3 + {SPR_BFE2,32771,8,{NULL},S_NULL}, // S_BFGEXP4 + {SPR_MISL,32769,8,{A_Explode},S_EXPLODE2}, // S_EXPLODE1 + {SPR_MISL,32770,6,{NULL},S_EXPLODE3}, // S_EXPLODE2 + {SPR_MISL,32771,4,{NULL},S_NULL}, // S_EXPLODE3 + {SPR_TFOG,32768,6,{NULL},S_TFOG01}, // S_TFOG + {SPR_TFOG,32769,6,{NULL},S_TFOG02}, // S_TFOG01 + {SPR_TFOG,32768,6,{NULL},S_TFOG2}, // S_TFOG02 + {SPR_TFOG,32769,6,{NULL},S_TFOG3}, // S_TFOG2 + {SPR_TFOG,32770,6,{NULL},S_TFOG4}, // S_TFOG3 + {SPR_TFOG,32771,6,{NULL},S_TFOG5}, // S_TFOG4 + {SPR_TFOG,32772,6,{NULL},S_TFOG6}, // S_TFOG5 + {SPR_TFOG,32773,6,{NULL},S_TFOG7}, // S_TFOG6 + {SPR_TFOG,32774,6,{NULL},S_TFOG8}, // S_TFOG7 + {SPR_TFOG,32775,6,{NULL},S_TFOG9}, // S_TFOG8 + {SPR_TFOG,32776,6,{NULL},S_TFOG10}, // S_TFOG9 + {SPR_TFOG,32777,6,{NULL},S_NULL}, // S_TFOG10 + {SPR_IFOG,32768,6,{NULL},S_IFOG01}, // S_IFOG + {SPR_IFOG,32769,6,{NULL},S_IFOG02}, // S_IFOG01 + {SPR_IFOG,32768,6,{NULL},S_IFOG2}, // S_IFOG02 + {SPR_IFOG,32769,6,{NULL},S_IFOG3}, // S_IFOG2 + {SPR_IFOG,32770,6,{NULL},S_IFOG4}, // S_IFOG3 + {SPR_IFOG,32771,6,{NULL},S_IFOG5}, // S_IFOG4 + {SPR_IFOG,32772,6,{NULL},S_NULL}, // S_IFOG5 + {SPR_PLAY,0,-1,{NULL},S_NULL}, // S_PLAY + {SPR_PLAY,0,4,{NULL},S_PLAY_RUN2}, // S_PLAY_RUN1 + {SPR_PLAY,1,4,{NULL},S_PLAY_RUN3}, // S_PLAY_RUN2 + {SPR_PLAY,2,4,{NULL},S_PLAY_RUN4}, // S_PLAY_RUN3 + {SPR_PLAY,3,4,{NULL},S_PLAY_RUN1}, // S_PLAY_RUN4 + {SPR_PLAY,4,12,{NULL},S_PLAY}, // S_PLAY_ATK1 + {SPR_PLAY,32773,6,{NULL},S_PLAY_ATK1}, // S_PLAY_ATK2 + {SPR_PLAY,6,4,{NULL},S_PLAY_PAIN2}, // S_PLAY_PAIN + {SPR_PLAY,6,4,{A_Pain},S_PLAY}, // S_PLAY_PAIN2 + {SPR_PLAY,7,10,{NULL},S_PLAY_DIE2}, // S_PLAY_DIE1 + {SPR_PLAY,8,10,{A_PlayerScream},S_PLAY_DIE3}, // S_PLAY_DIE2 + {SPR_PLAY,9,10,{A_Fall},S_PLAY_DIE4}, // S_PLAY_DIE3 + {SPR_PLAY,10,10,{NULL},S_PLAY_DIE5}, // S_PLAY_DIE4 + {SPR_PLAY,11,10,{NULL},S_PLAY_DIE6}, // S_PLAY_DIE5 + {SPR_PLAY,12,10,{NULL},S_PLAY_DIE7}, // S_PLAY_DIE6 + {SPR_PLAY,13,-1,{NULL},S_NULL}, // S_PLAY_DIE7 + {SPR_PLAY,14,5,{NULL},S_PLAY_XDIE2}, // S_PLAY_XDIE1 + {SPR_PLAY,15,5,{A_XScream},S_PLAY_XDIE3}, // S_PLAY_XDIE2 + {SPR_PLAY,16,5,{A_Fall},S_PLAY_XDIE4}, // S_PLAY_XDIE3 + {SPR_PLAY,17,5,{NULL},S_PLAY_XDIE5}, // S_PLAY_XDIE4 + {SPR_PLAY,18,5,{NULL},S_PLAY_XDIE6}, // S_PLAY_XDIE5 + {SPR_PLAY,19,5,{NULL},S_PLAY_XDIE7}, // S_PLAY_XDIE6 + {SPR_PLAY,20,5,{NULL},S_PLAY_XDIE8}, // S_PLAY_XDIE7 + {SPR_PLAY,21,5,{NULL},S_PLAY_XDIE9}, // S_PLAY_XDIE8 + {SPR_PLAY,22,-1,{NULL},S_NULL}, // S_PLAY_XDIE9 + {SPR_POSS,0,10,{A_Look},S_POSS_STND2}, // S_POSS_STND + {SPR_POSS,1,10,{A_Look},S_POSS_STND}, // S_POSS_STND2 + {SPR_POSS,0,4,{A_Chase},S_POSS_RUN2}, // S_POSS_RUN1 + {SPR_POSS,0,4,{A_Chase},S_POSS_RUN3}, // S_POSS_RUN2 + {SPR_POSS,1,4,{A_Chase},S_POSS_RUN4}, // S_POSS_RUN3 + {SPR_POSS,1,4,{A_Chase},S_POSS_RUN5}, // S_POSS_RUN4 + {SPR_POSS,2,4,{A_Chase},S_POSS_RUN6}, // S_POSS_RUN5 + {SPR_POSS,2,4,{A_Chase},S_POSS_RUN7}, // S_POSS_RUN6 + {SPR_POSS,3,4,{A_Chase},S_POSS_RUN8}, // S_POSS_RUN7 + {SPR_POSS,3,4,{A_Chase},S_POSS_RUN1}, // S_POSS_RUN8 + {SPR_POSS,4,10,{A_FaceTarget},S_POSS_ATK2}, // S_POSS_ATK1 + {SPR_POSS,5,8,{A_PosAttack},S_POSS_ATK3}, // S_POSS_ATK2 + {SPR_POSS,4,8,{NULL},S_POSS_RUN1}, // S_POSS_ATK3 + {SPR_POSS,6,3,{NULL},S_POSS_PAIN2}, // S_POSS_PAIN + {SPR_POSS,6,3,{A_Pain},S_POSS_RUN1}, // S_POSS_PAIN2 + {SPR_POSS,7,5,{NULL},S_POSS_DIE2}, // S_POSS_DIE1 + {SPR_POSS,8,5,{A_Scream},S_POSS_DIE3}, // S_POSS_DIE2 + {SPR_POSS,9,5,{A_Fall},S_POSS_DIE4}, // S_POSS_DIE3 + {SPR_POSS,10,5,{NULL},S_POSS_DIE5}, // S_POSS_DIE4 + {SPR_POSS,11,-1,{NULL},S_NULL}, // S_POSS_DIE5 + {SPR_POSS,12,5,{NULL},S_POSS_XDIE2}, // S_POSS_XDIE1 + {SPR_POSS,13,5,{A_XScream},S_POSS_XDIE3}, // S_POSS_XDIE2 + {SPR_POSS,14,5,{A_Fall},S_POSS_XDIE4}, // S_POSS_XDIE3 + {SPR_POSS,15,5,{NULL},S_POSS_XDIE5}, // S_POSS_XDIE4 + {SPR_POSS,16,5,{NULL},S_POSS_XDIE6}, // S_POSS_XDIE5 + {SPR_POSS,17,5,{NULL},S_POSS_XDIE7}, // S_POSS_XDIE6 + {SPR_POSS,18,5,{NULL},S_POSS_XDIE8}, // S_POSS_XDIE7 + {SPR_POSS,19,5,{NULL},S_POSS_XDIE9}, // S_POSS_XDIE8 + {SPR_POSS,20,-1,{NULL},S_NULL}, // S_POSS_XDIE9 + {SPR_POSS,10,5,{NULL},S_POSS_RAISE2}, // S_POSS_RAISE1 + {SPR_POSS,9,5,{NULL},S_POSS_RAISE3}, // S_POSS_RAISE2 + {SPR_POSS,8,5,{NULL},S_POSS_RAISE4}, // S_POSS_RAISE3 + {SPR_POSS,7,5,{NULL},S_POSS_RUN1}, // S_POSS_RAISE4 + {SPR_SPOS,0,10,{A_Look},S_SPOS_STND2}, // S_SPOS_STND + {SPR_SPOS,1,10,{A_Look},S_SPOS_STND}, // S_SPOS_STND2 + {SPR_SPOS,0,3,{A_Chase},S_SPOS_RUN2}, // S_SPOS_RUN1 + {SPR_SPOS,0,3,{A_Chase},S_SPOS_RUN3}, // S_SPOS_RUN2 + {SPR_SPOS,1,3,{A_Chase},S_SPOS_RUN4}, // S_SPOS_RUN3 + {SPR_SPOS,1,3,{A_Chase},S_SPOS_RUN5}, // S_SPOS_RUN4 + {SPR_SPOS,2,3,{A_Chase},S_SPOS_RUN6}, // S_SPOS_RUN5 + {SPR_SPOS,2,3,{A_Chase},S_SPOS_RUN7}, // S_SPOS_RUN6 + {SPR_SPOS,3,3,{A_Chase},S_SPOS_RUN8}, // S_SPOS_RUN7 + {SPR_SPOS,3,3,{A_Chase},S_SPOS_RUN1}, // S_SPOS_RUN8 + {SPR_SPOS,4,10,{A_FaceTarget},S_SPOS_ATK2}, // S_SPOS_ATK1 + {SPR_SPOS,32773,10,{A_SPosAttack},S_SPOS_ATK3}, // S_SPOS_ATK2 + {SPR_SPOS,4,10,{NULL},S_SPOS_RUN1}, // S_SPOS_ATK3 + {SPR_SPOS,6,3,{NULL},S_SPOS_PAIN2}, // S_SPOS_PAIN + {SPR_SPOS,6,3,{A_Pain},S_SPOS_RUN1}, // S_SPOS_PAIN2 + {SPR_SPOS,7,5,{NULL},S_SPOS_DIE2}, // S_SPOS_DIE1 + {SPR_SPOS,8,5,{A_Scream},S_SPOS_DIE3}, // S_SPOS_DIE2 + {SPR_SPOS,9,5,{A_Fall},S_SPOS_DIE4}, // S_SPOS_DIE3 + {SPR_SPOS,10,5,{NULL},S_SPOS_DIE5}, // S_SPOS_DIE4 + {SPR_SPOS,11,-1,{NULL},S_NULL}, // S_SPOS_DIE5 + {SPR_SPOS,12,5,{NULL},S_SPOS_XDIE2}, // S_SPOS_XDIE1 + {SPR_SPOS,13,5,{A_XScream},S_SPOS_XDIE3}, // S_SPOS_XDIE2 + {SPR_SPOS,14,5,{A_Fall},S_SPOS_XDIE4}, // S_SPOS_XDIE3 + {SPR_SPOS,15,5,{NULL},S_SPOS_XDIE5}, // S_SPOS_XDIE4 + {SPR_SPOS,16,5,{NULL},S_SPOS_XDIE6}, // S_SPOS_XDIE5 + {SPR_SPOS,17,5,{NULL},S_SPOS_XDIE7}, // S_SPOS_XDIE6 + {SPR_SPOS,18,5,{NULL},S_SPOS_XDIE8}, // S_SPOS_XDIE7 + {SPR_SPOS,19,5,{NULL},S_SPOS_XDIE9}, // S_SPOS_XDIE8 + {SPR_SPOS,20,-1,{NULL},S_NULL}, // S_SPOS_XDIE9 + {SPR_SPOS,11,5,{NULL},S_SPOS_RAISE2}, // S_SPOS_RAISE1 + {SPR_SPOS,10,5,{NULL},S_SPOS_RAISE3}, // S_SPOS_RAISE2 + {SPR_SPOS,9,5,{NULL},S_SPOS_RAISE4}, // S_SPOS_RAISE3 + {SPR_SPOS,8,5,{NULL},S_SPOS_RAISE5}, // S_SPOS_RAISE4 + {SPR_SPOS,7,5,{NULL},S_SPOS_RUN1}, // S_SPOS_RAISE5 + {SPR_VILE,0,10,{A_Look},S_VILE_STND2}, // S_VILE_STND + {SPR_VILE,1,10,{A_Look},S_VILE_STND}, // S_VILE_STND2 + {SPR_VILE,0,2,{A_VileChase},S_VILE_RUN2}, // S_VILE_RUN1 + {SPR_VILE,0,2,{A_VileChase},S_VILE_RUN3}, // S_VILE_RUN2 + {SPR_VILE,1,2,{A_VileChase},S_VILE_RUN4}, // S_VILE_RUN3 + {SPR_VILE,1,2,{A_VileChase},S_VILE_RUN5}, // S_VILE_RUN4 + {SPR_VILE,2,2,{A_VileChase},S_VILE_RUN6}, // S_VILE_RUN5 + {SPR_VILE,2,2,{A_VileChase},S_VILE_RUN7}, // S_VILE_RUN6 + {SPR_VILE,3,2,{A_VileChase},S_VILE_RUN8}, // S_VILE_RUN7 + {SPR_VILE,3,2,{A_VileChase},S_VILE_RUN9}, // S_VILE_RUN8 + {SPR_VILE,4,2,{A_VileChase},S_VILE_RUN10}, // S_VILE_RUN9 + {SPR_VILE,4,2,{A_VileChase},S_VILE_RUN11}, // S_VILE_RUN10 + {SPR_VILE,5,2,{A_VileChase},S_VILE_RUN12}, // S_VILE_RUN11 + {SPR_VILE,5,2,{A_VileChase},S_VILE_RUN1}, // S_VILE_RUN12 + {SPR_VILE,32774,0,{A_VileStart},S_VILE_ATK2}, // S_VILE_ATK1 + {SPR_VILE,32774,10,{A_FaceTarget},S_VILE_ATK3}, // S_VILE_ATK2 + {SPR_VILE,32775,8,{A_VileTarget},S_VILE_ATK4}, // S_VILE_ATK3 + {SPR_VILE,32776,8,{A_FaceTarget},S_VILE_ATK5}, // S_VILE_ATK4 + {SPR_VILE,32777,8,{A_FaceTarget},S_VILE_ATK6}, // S_VILE_ATK5 + {SPR_VILE,32778,8,{A_FaceTarget},S_VILE_ATK7}, // S_VILE_ATK6 + {SPR_VILE,32779,8,{A_FaceTarget},S_VILE_ATK8}, // S_VILE_ATK7 + {SPR_VILE,32780,8,{A_FaceTarget},S_VILE_ATK9}, // S_VILE_ATK8 + {SPR_VILE,32781,8,{A_FaceTarget},S_VILE_ATK10}, // S_VILE_ATK9 + {SPR_VILE,32782,8,{A_VileAttack},S_VILE_ATK11}, // S_VILE_ATK10 + {SPR_VILE,32783,20,{NULL},S_VILE_RUN1}, // S_VILE_ATK11 + {SPR_VILE,32794,10,{NULL},S_VILE_HEAL2}, // S_VILE_HEAL1 + {SPR_VILE,32795,10,{NULL},S_VILE_HEAL3}, // S_VILE_HEAL2 + {SPR_VILE,32796,10,{NULL},S_VILE_RUN1}, // S_VILE_HEAL3 + {SPR_VILE,16,5,{NULL},S_VILE_PAIN2}, // S_VILE_PAIN + {SPR_VILE,16,5,{A_Pain},S_VILE_RUN1}, // S_VILE_PAIN2 + {SPR_VILE,16,7,{NULL},S_VILE_DIE2}, // S_VILE_DIE1 + {SPR_VILE,17,7,{A_Scream},S_VILE_DIE3}, // S_VILE_DIE2 + {SPR_VILE,18,7,{A_Fall},S_VILE_DIE4}, // S_VILE_DIE3 + {SPR_VILE,19,7,{NULL},S_VILE_DIE5}, // S_VILE_DIE4 + {SPR_VILE,20,7,{NULL},S_VILE_DIE6}, // S_VILE_DIE5 + {SPR_VILE,21,7,{NULL},S_VILE_DIE7}, // S_VILE_DIE6 + {SPR_VILE,22,7,{NULL},S_VILE_DIE8}, // S_VILE_DIE7 + {SPR_VILE,23,5,{NULL},S_VILE_DIE9}, // S_VILE_DIE8 + {SPR_VILE,24,5,{NULL},S_VILE_DIE10}, // S_VILE_DIE9 + {SPR_VILE,25,-1,{NULL},S_NULL}, // S_VILE_DIE10 + {SPR_FIRE,32768,2,{A_StartFire},S_FIRE2}, // S_FIRE1 + {SPR_FIRE,32769,2,{A_Fire},S_FIRE3}, // S_FIRE2 + {SPR_FIRE,32768,2,{A_Fire},S_FIRE4}, // S_FIRE3 + {SPR_FIRE,32769,2,{A_Fire},S_FIRE5}, // S_FIRE4 + {SPR_FIRE,32770,2,{A_FireCrackle},S_FIRE6}, // S_FIRE5 + {SPR_FIRE,32769,2,{A_Fire},S_FIRE7}, // S_FIRE6 + {SPR_FIRE,32770,2,{A_Fire},S_FIRE8}, // S_FIRE7 + {SPR_FIRE,32769,2,{A_Fire},S_FIRE9}, // S_FIRE8 + {SPR_FIRE,32770,2,{A_Fire},S_FIRE10}, // S_FIRE9 + {SPR_FIRE,32771,2,{A_Fire},S_FIRE11}, // S_FIRE10 + {SPR_FIRE,32770,2,{A_Fire},S_FIRE12}, // S_FIRE11 + {SPR_FIRE,32771,2,{A_Fire},S_FIRE13}, // S_FIRE12 + {SPR_FIRE,32770,2,{A_Fire},S_FIRE14}, // S_FIRE13 + {SPR_FIRE,32771,2,{A_Fire},S_FIRE15}, // S_FIRE14 + {SPR_FIRE,32772,2,{A_Fire},S_FIRE16}, // S_FIRE15 + {SPR_FIRE,32771,2,{A_Fire},S_FIRE17}, // S_FIRE16 + {SPR_FIRE,32772,2,{A_Fire},S_FIRE18}, // S_FIRE17 + {SPR_FIRE,32771,2,{A_Fire},S_FIRE19}, // S_FIRE18 + {SPR_FIRE,32772,2,{A_FireCrackle},S_FIRE20}, // S_FIRE19 + {SPR_FIRE,32773,2,{A_Fire},S_FIRE21}, // S_FIRE20 + {SPR_FIRE,32772,2,{A_Fire},S_FIRE22}, // S_FIRE21 + {SPR_FIRE,32773,2,{A_Fire},S_FIRE23}, // S_FIRE22 + {SPR_FIRE,32772,2,{A_Fire},S_FIRE24}, // S_FIRE23 + {SPR_FIRE,32773,2,{A_Fire},S_FIRE25}, // S_FIRE24 + {SPR_FIRE,32774,2,{A_Fire},S_FIRE26}, // S_FIRE25 + {SPR_FIRE,32775,2,{A_Fire},S_FIRE27}, // S_FIRE26 + {SPR_FIRE,32774,2,{A_Fire},S_FIRE28}, // S_FIRE27 + {SPR_FIRE,32775,2,{A_Fire},S_FIRE29}, // S_FIRE28 + {SPR_FIRE,32774,2,{A_Fire},S_FIRE30}, // S_FIRE29 + {SPR_FIRE,32775,2,{A_Fire},S_NULL}, // S_FIRE30 + {SPR_PUFF,1,4,{NULL},S_SMOKE2}, // S_SMOKE1 + {SPR_PUFF,2,4,{NULL},S_SMOKE3}, // S_SMOKE2 + {SPR_PUFF,1,4,{NULL},S_SMOKE4}, // S_SMOKE3 + {SPR_PUFF,2,4,{NULL},S_SMOKE5}, // S_SMOKE4 + {SPR_PUFF,3,4,{NULL},S_NULL}, // S_SMOKE5 + {SPR_FATB,32768,2,{A_Tracer},S_TRACER2}, // S_TRACER + {SPR_FATB,32769,2,{A_Tracer},S_TRACER}, // S_TRACER2 + {SPR_FBXP,32768,8,{NULL},S_TRACEEXP2}, // S_TRACEEXP1 + {SPR_FBXP,32769,6,{NULL},S_TRACEEXP3}, // S_TRACEEXP2 + {SPR_FBXP,32770,4,{NULL},S_NULL}, // S_TRACEEXP3 + {SPR_SKEL,0,10,{A_Look},S_SKEL_STND2}, // S_SKEL_STND + {SPR_SKEL,1,10,{A_Look},S_SKEL_STND}, // S_SKEL_STND2 + {SPR_SKEL,0,2,{A_Chase},S_SKEL_RUN2}, // S_SKEL_RUN1 + {SPR_SKEL,0,2,{A_Chase},S_SKEL_RUN3}, // S_SKEL_RUN2 + {SPR_SKEL,1,2,{A_Chase},S_SKEL_RUN4}, // S_SKEL_RUN3 + {SPR_SKEL,1,2,{A_Chase},S_SKEL_RUN5}, // S_SKEL_RUN4 + {SPR_SKEL,2,2,{A_Chase},S_SKEL_RUN6}, // S_SKEL_RUN5 + {SPR_SKEL,2,2,{A_Chase},S_SKEL_RUN7}, // S_SKEL_RUN6 + {SPR_SKEL,3,2,{A_Chase},S_SKEL_RUN8}, // S_SKEL_RUN7 + {SPR_SKEL,3,2,{A_Chase},S_SKEL_RUN9}, // S_SKEL_RUN8 + {SPR_SKEL,4,2,{A_Chase},S_SKEL_RUN10}, // S_SKEL_RUN9 + {SPR_SKEL,4,2,{A_Chase},S_SKEL_RUN11}, // S_SKEL_RUN10 + {SPR_SKEL,5,2,{A_Chase},S_SKEL_RUN12}, // S_SKEL_RUN11 + {SPR_SKEL,5,2,{A_Chase},S_SKEL_RUN1}, // S_SKEL_RUN12 + {SPR_SKEL,6,0,{A_FaceTarget},S_SKEL_FIST2}, // S_SKEL_FIST1 + {SPR_SKEL,6,6,{A_SkelWhoosh},S_SKEL_FIST3}, // S_SKEL_FIST2 + {SPR_SKEL,7,6,{A_FaceTarget},S_SKEL_FIST4}, // S_SKEL_FIST3 + {SPR_SKEL,8,6,{A_SkelFist},S_SKEL_RUN1}, // S_SKEL_FIST4 + {SPR_SKEL,32777,0,{A_FaceTarget},S_SKEL_MISS2}, // S_SKEL_MISS1 + {SPR_SKEL,32777,10,{A_FaceTarget},S_SKEL_MISS3}, // S_SKEL_MISS2 + {SPR_SKEL,10,10,{A_SkelMissile},S_SKEL_MISS4}, // S_SKEL_MISS3 + {SPR_SKEL,10,10,{A_FaceTarget},S_SKEL_RUN1}, // S_SKEL_MISS4 + {SPR_SKEL,11,5,{NULL},S_SKEL_PAIN2}, // S_SKEL_PAIN + {SPR_SKEL,11,5,{A_Pain},S_SKEL_RUN1}, // S_SKEL_PAIN2 + {SPR_SKEL,11,7,{NULL},S_SKEL_DIE2}, // S_SKEL_DIE1 + {SPR_SKEL,12,7,{NULL},S_SKEL_DIE3}, // S_SKEL_DIE2 + {SPR_SKEL,13,7,{A_Scream},S_SKEL_DIE4}, // S_SKEL_DIE3 + {SPR_SKEL,14,7,{A_Fall},S_SKEL_DIE5}, // S_SKEL_DIE4 + {SPR_SKEL,15,7,{NULL},S_SKEL_DIE6}, // S_SKEL_DIE5 + {SPR_SKEL,16,-1,{NULL},S_NULL}, // S_SKEL_DIE6 + {SPR_SKEL,16,5,{NULL},S_SKEL_RAISE2}, // S_SKEL_RAISE1 + {SPR_SKEL,15,5,{NULL},S_SKEL_RAISE3}, // S_SKEL_RAISE2 + {SPR_SKEL,14,5,{NULL},S_SKEL_RAISE4}, // S_SKEL_RAISE3 + {SPR_SKEL,13,5,{NULL},S_SKEL_RAISE5}, // S_SKEL_RAISE4 + {SPR_SKEL,12,5,{NULL},S_SKEL_RAISE6}, // S_SKEL_RAISE5 + {SPR_SKEL,11,5,{NULL},S_SKEL_RUN1}, // S_SKEL_RAISE6 + {SPR_MANF,32768,4,{NULL},S_FATSHOT2}, // S_FATSHOT1 + {SPR_MANF,32769,4,{NULL},S_FATSHOT1}, // S_FATSHOT2 + {SPR_MISL,32769,8,{NULL},S_FATSHOTX2}, // S_FATSHOTX1 + {SPR_MISL,32770,6,{NULL},S_FATSHOTX3}, // S_FATSHOTX2 + {SPR_MISL,32771,4,{NULL},S_NULL}, // S_FATSHOTX3 + {SPR_FATT,0,15,{A_Look},S_FATT_STND2}, // S_FATT_STND + {SPR_FATT,1,15,{A_Look},S_FATT_STND}, // S_FATT_STND2 + {SPR_FATT,0,4,{A_Chase},S_FATT_RUN2}, // S_FATT_RUN1 + {SPR_FATT,0,4,{A_Chase},S_FATT_RUN3}, // S_FATT_RUN2 + {SPR_FATT,1,4,{A_Chase},S_FATT_RUN4}, // S_FATT_RUN3 + {SPR_FATT,1,4,{A_Chase},S_FATT_RUN5}, // S_FATT_RUN4 + {SPR_FATT,2,4,{A_Chase},S_FATT_RUN6}, // S_FATT_RUN5 + {SPR_FATT,2,4,{A_Chase},S_FATT_RUN7}, // S_FATT_RUN6 + {SPR_FATT,3,4,{A_Chase},S_FATT_RUN8}, // S_FATT_RUN7 + {SPR_FATT,3,4,{A_Chase},S_FATT_RUN9}, // S_FATT_RUN8 + {SPR_FATT,4,4,{A_Chase},S_FATT_RUN10}, // S_FATT_RUN9 + {SPR_FATT,4,4,{A_Chase},S_FATT_RUN11}, // S_FATT_RUN10 + {SPR_FATT,5,4,{A_Chase},S_FATT_RUN12}, // S_FATT_RUN11 + {SPR_FATT,5,4,{A_Chase},S_FATT_RUN1}, // S_FATT_RUN12 + {SPR_FATT,6,20,{A_FatRaise},S_FATT_ATK2}, // S_FATT_ATK1 + {SPR_FATT,32775,10,{A_FatAttack1},S_FATT_ATK3}, // S_FATT_ATK2 + {SPR_FATT,8,5,{A_FaceTarget},S_FATT_ATK4}, // S_FATT_ATK3 + {SPR_FATT,6,5,{A_FaceTarget},S_FATT_ATK5}, // S_FATT_ATK4 + {SPR_FATT,32775,10,{A_FatAttack2},S_FATT_ATK6}, // S_FATT_ATK5 + {SPR_FATT,8,5,{A_FaceTarget},S_FATT_ATK7}, // S_FATT_ATK6 + {SPR_FATT,6,5,{A_FaceTarget},S_FATT_ATK8}, // S_FATT_ATK7 + {SPR_FATT,32775,10,{A_FatAttack3},S_FATT_ATK9}, // S_FATT_ATK8 + {SPR_FATT,8,5,{A_FaceTarget},S_FATT_ATK10}, // S_FATT_ATK9 + {SPR_FATT,6,5,{A_FaceTarget},S_FATT_RUN1}, // S_FATT_ATK10 + {SPR_FATT,9,3,{NULL},S_FATT_PAIN2}, // S_FATT_PAIN + {SPR_FATT,9,3,{A_Pain},S_FATT_RUN1}, // S_FATT_PAIN2 + {SPR_FATT,10,6,{NULL},S_FATT_DIE2}, // S_FATT_DIE1 + {SPR_FATT,11,6,{A_Scream},S_FATT_DIE3}, // S_FATT_DIE2 + {SPR_FATT,12,6,{A_Fall},S_FATT_DIE4}, // S_FATT_DIE3 + {SPR_FATT,13,6,{NULL},S_FATT_DIE5}, // S_FATT_DIE4 + {SPR_FATT,14,6,{NULL},S_FATT_DIE6}, // S_FATT_DIE5 + {SPR_FATT,15,6,{NULL},S_FATT_DIE7}, // S_FATT_DIE6 + {SPR_FATT,16,6,{NULL},S_FATT_DIE8}, // S_FATT_DIE7 + {SPR_FATT,17,6,{NULL},S_FATT_DIE9}, // S_FATT_DIE8 + {SPR_FATT,18,6,{NULL},S_FATT_DIE10}, // S_FATT_DIE9 + {SPR_FATT,19,-1,{A_BossDeath},S_NULL}, // S_FATT_DIE10 + {SPR_FATT,17,5,{NULL},S_FATT_RAISE2}, // S_FATT_RAISE1 + {SPR_FATT,16,5,{NULL},S_FATT_RAISE3}, // S_FATT_RAISE2 + {SPR_FATT,15,5,{NULL},S_FATT_RAISE4}, // S_FATT_RAISE3 + {SPR_FATT,14,5,{NULL},S_FATT_RAISE5}, // S_FATT_RAISE4 + {SPR_FATT,13,5,{NULL},S_FATT_RAISE6}, // S_FATT_RAISE5 + {SPR_FATT,12,5,{NULL},S_FATT_RAISE7}, // S_FATT_RAISE6 + {SPR_FATT,11,5,{NULL},S_FATT_RAISE8}, // S_FATT_RAISE7 + {SPR_FATT,10,5,{NULL},S_FATT_RUN1}, // S_FATT_RAISE8 + {SPR_CPOS,0,10,{A_Look},S_CPOS_STND2}, // S_CPOS_STND + {SPR_CPOS,1,10,{A_Look},S_CPOS_STND}, // S_CPOS_STND2 + {SPR_CPOS,0,3,{A_Chase},S_CPOS_RUN2}, // S_CPOS_RUN1 + {SPR_CPOS,0,3,{A_Chase},S_CPOS_RUN3}, // S_CPOS_RUN2 + {SPR_CPOS,1,3,{A_Chase},S_CPOS_RUN4}, // S_CPOS_RUN3 + {SPR_CPOS,1,3,{A_Chase},S_CPOS_RUN5}, // S_CPOS_RUN4 + {SPR_CPOS,2,3,{A_Chase},S_CPOS_RUN6}, // S_CPOS_RUN5 + {SPR_CPOS,2,3,{A_Chase},S_CPOS_RUN7}, // S_CPOS_RUN6 + {SPR_CPOS,3,3,{A_Chase},S_CPOS_RUN8}, // S_CPOS_RUN7 + {SPR_CPOS,3,3,{A_Chase},S_CPOS_RUN1}, // S_CPOS_RUN8 + {SPR_CPOS,4,10,{A_FaceTarget},S_CPOS_ATK2}, // S_CPOS_ATK1 + {SPR_CPOS,32773,4,{A_CPosAttack},S_CPOS_ATK3}, // S_CPOS_ATK2 + {SPR_CPOS,32772,4,{A_CPosAttack},S_CPOS_ATK4}, // S_CPOS_ATK3 + {SPR_CPOS,5,1,{A_CPosRefire},S_CPOS_ATK2}, // S_CPOS_ATK4 + {SPR_CPOS,6,3,{NULL},S_CPOS_PAIN2}, // S_CPOS_PAIN + {SPR_CPOS,6,3,{A_Pain},S_CPOS_RUN1}, // S_CPOS_PAIN2 + {SPR_CPOS,7,5,{NULL},S_CPOS_DIE2}, // S_CPOS_DIE1 + {SPR_CPOS,8,5,{A_Scream},S_CPOS_DIE3}, // S_CPOS_DIE2 + {SPR_CPOS,9,5,{A_Fall},S_CPOS_DIE4}, // S_CPOS_DIE3 + {SPR_CPOS,10,5,{NULL},S_CPOS_DIE5}, // S_CPOS_DIE4 + {SPR_CPOS,11,5,{NULL},S_CPOS_DIE6}, // S_CPOS_DIE5 + {SPR_CPOS,12,5,{NULL},S_CPOS_DIE7}, // S_CPOS_DIE6 + {SPR_CPOS,13,-1,{NULL},S_NULL}, // S_CPOS_DIE7 + {SPR_CPOS,14,5,{NULL},S_CPOS_XDIE2}, // S_CPOS_XDIE1 + {SPR_CPOS,15,5,{A_XScream},S_CPOS_XDIE3}, // S_CPOS_XDIE2 + {SPR_CPOS,16,5,{A_Fall},S_CPOS_XDIE4}, // S_CPOS_XDIE3 + {SPR_CPOS,17,5,{NULL},S_CPOS_XDIE5}, // S_CPOS_XDIE4 + {SPR_CPOS,18,5,{NULL},S_CPOS_XDIE6}, // S_CPOS_XDIE5 + {SPR_CPOS,19,-1,{NULL},S_NULL}, // S_CPOS_XDIE6 + {SPR_CPOS,13,5,{NULL},S_CPOS_RAISE2}, // S_CPOS_RAISE1 + {SPR_CPOS,12,5,{NULL},S_CPOS_RAISE3}, // S_CPOS_RAISE2 + {SPR_CPOS,11,5,{NULL},S_CPOS_RAISE4}, // S_CPOS_RAISE3 + {SPR_CPOS,10,5,{NULL},S_CPOS_RAISE5}, // S_CPOS_RAISE4 + {SPR_CPOS,9,5,{NULL},S_CPOS_RAISE6}, // S_CPOS_RAISE5 + {SPR_CPOS,8,5,{NULL},S_CPOS_RAISE7}, // S_CPOS_RAISE6 + {SPR_CPOS,7,5,{NULL},S_CPOS_RUN1}, // S_CPOS_RAISE7 + {SPR_TROO,0,10,{A_Look},S_TROO_STND2}, // S_TROO_STND + {SPR_TROO,1,10,{A_Look},S_TROO_STND}, // S_TROO_STND2 + {SPR_TROO,0,3,{A_Chase},S_TROO_RUN2}, // S_TROO_RUN1 + {SPR_TROO,0,3,{A_Chase},S_TROO_RUN3}, // S_TROO_RUN2 + {SPR_TROO,1,3,{A_Chase},S_TROO_RUN4}, // S_TROO_RUN3 + {SPR_TROO,1,3,{A_Chase},S_TROO_RUN5}, // S_TROO_RUN4 + {SPR_TROO,2,3,{A_Chase},S_TROO_RUN6}, // S_TROO_RUN5 + {SPR_TROO,2,3,{A_Chase},S_TROO_RUN7}, // S_TROO_RUN6 + {SPR_TROO,3,3,{A_Chase},S_TROO_RUN8}, // S_TROO_RUN7 + {SPR_TROO,3,3,{A_Chase},S_TROO_RUN1}, // S_TROO_RUN8 + {SPR_TROO,4,8,{A_FaceTarget},S_TROO_ATK2}, // S_TROO_ATK1 + {SPR_TROO,5,8,{A_FaceTarget},S_TROO_ATK3}, // S_TROO_ATK2 + {SPR_TROO,6,6,{A_TroopAttack},S_TROO_RUN1}, // S_TROO_ATK3 + {SPR_TROO,7,2,{NULL},S_TROO_PAIN2}, // S_TROO_PAIN + {SPR_TROO,7,2,{A_Pain},S_TROO_RUN1}, // S_TROO_PAIN2 + {SPR_TROO,8,8,{NULL},S_TROO_DIE2}, // S_TROO_DIE1 + {SPR_TROO,9,8,{A_Scream},S_TROO_DIE3}, // S_TROO_DIE2 + {SPR_TROO,10,6,{NULL},S_TROO_DIE4}, // S_TROO_DIE3 + {SPR_TROO,11,6,{A_Fall},S_TROO_DIE5}, // S_TROO_DIE4 + {SPR_TROO,12,-1,{NULL},S_NULL}, // S_TROO_DIE5 + {SPR_TROO,13,5,{NULL},S_TROO_XDIE2}, // S_TROO_XDIE1 + {SPR_TROO,14,5,{A_XScream},S_TROO_XDIE3}, // S_TROO_XDIE2 + {SPR_TROO,15,5,{NULL},S_TROO_XDIE4}, // S_TROO_XDIE3 + {SPR_TROO,16,5,{A_Fall},S_TROO_XDIE5}, // S_TROO_XDIE4 + {SPR_TROO,17,5,{NULL},S_TROO_XDIE6}, // S_TROO_XDIE5 + {SPR_TROO,18,5,{NULL},S_TROO_XDIE7}, // S_TROO_XDIE6 + {SPR_TROO,19,5,{NULL},S_TROO_XDIE8}, // S_TROO_XDIE7 + {SPR_TROO,20,-1,{NULL},S_NULL}, // S_TROO_XDIE8 + {SPR_TROO,12,8,{NULL},S_TROO_RAISE2}, // S_TROO_RAISE1 + {SPR_TROO,11,8,{NULL},S_TROO_RAISE3}, // S_TROO_RAISE2 + {SPR_TROO,10,6,{NULL},S_TROO_RAISE4}, // S_TROO_RAISE3 + {SPR_TROO,9,6,{NULL},S_TROO_RAISE5}, // S_TROO_RAISE4 + {SPR_TROO,8,6,{NULL},S_TROO_RUN1}, // S_TROO_RAISE5 + {SPR_SARG,0,10,{A_Look},S_SARG_STND2}, // S_SARG_STND + {SPR_SARG,1,10,{A_Look},S_SARG_STND}, // S_SARG_STND2 + {SPR_SARG,0,2,{A_Chase},S_SARG_RUN2}, // S_SARG_RUN1 + {SPR_SARG,0,2,{A_Chase},S_SARG_RUN3}, // S_SARG_RUN2 + {SPR_SARG,1,2,{A_Chase},S_SARG_RUN4}, // S_SARG_RUN3 + {SPR_SARG,1,2,{A_Chase},S_SARG_RUN5}, // S_SARG_RUN4 + {SPR_SARG,2,2,{A_Chase},S_SARG_RUN6}, // S_SARG_RUN5 + {SPR_SARG,2,2,{A_Chase},S_SARG_RUN7}, // S_SARG_RUN6 + {SPR_SARG,3,2,{A_Chase},S_SARG_RUN8}, // S_SARG_RUN7 + {SPR_SARG,3,2,{A_Chase},S_SARG_RUN1}, // S_SARG_RUN8 + {SPR_SARG,4,8,{A_FaceTarget},S_SARG_ATK2}, // S_SARG_ATK1 + {SPR_SARG,5,8,{A_FaceTarget},S_SARG_ATK3}, // S_SARG_ATK2 + {SPR_SARG,6,8,{A_SargAttack},S_SARG_RUN1}, // S_SARG_ATK3 + {SPR_SARG,7,2,{NULL},S_SARG_PAIN2}, // S_SARG_PAIN + {SPR_SARG,7,2,{A_Pain},S_SARG_RUN1}, // S_SARG_PAIN2 + {SPR_SARG,8,8,{NULL},S_SARG_DIE2}, // S_SARG_DIE1 + {SPR_SARG,9,8,{A_Scream},S_SARG_DIE3}, // S_SARG_DIE2 + {SPR_SARG,10,4,{NULL},S_SARG_DIE4}, // S_SARG_DIE3 + {SPR_SARG,11,4,{A_Fall},S_SARG_DIE5}, // S_SARG_DIE4 + {SPR_SARG,12,4,{NULL},S_SARG_DIE6}, // S_SARG_DIE5 + {SPR_SARG,13,-1,{NULL},S_NULL}, // S_SARG_DIE6 + {SPR_SARG,13,5,{NULL},S_SARG_RAISE2}, // S_SARG_RAISE1 + {SPR_SARG,12,5,{NULL},S_SARG_RAISE3}, // S_SARG_RAISE2 + {SPR_SARG,11,5,{NULL},S_SARG_RAISE4}, // S_SARG_RAISE3 + {SPR_SARG,10,5,{NULL},S_SARG_RAISE5}, // S_SARG_RAISE4 + {SPR_SARG,9,5,{NULL},S_SARG_RAISE6}, // S_SARG_RAISE5 + {SPR_SARG,8,5,{NULL},S_SARG_RUN1}, // S_SARG_RAISE6 + {SPR_HEAD,0,10,{A_Look},S_HEAD_STND}, // S_HEAD_STND + {SPR_HEAD,0,3,{A_Chase},S_HEAD_RUN1}, // S_HEAD_RUN1 + {SPR_HEAD,1,5,{A_FaceTarget},S_HEAD_ATK2}, // S_HEAD_ATK1 + {SPR_HEAD,2,5,{A_FaceTarget},S_HEAD_ATK3}, // S_HEAD_ATK2 + {SPR_HEAD,32771,5,{A_HeadAttack},S_HEAD_RUN1}, // S_HEAD_ATK3 + {SPR_HEAD,4,3,{NULL},S_HEAD_PAIN2}, // S_HEAD_PAIN + {SPR_HEAD,4,3,{A_Pain},S_HEAD_PAIN3}, // S_HEAD_PAIN2 + {SPR_HEAD,5,6,{NULL},S_HEAD_RUN1}, // S_HEAD_PAIN3 + {SPR_HEAD,6,8,{NULL},S_HEAD_DIE2}, // S_HEAD_DIE1 + {SPR_HEAD,7,8,{A_Scream},S_HEAD_DIE3}, // S_HEAD_DIE2 + {SPR_HEAD,8,8,{NULL},S_HEAD_DIE4}, // S_HEAD_DIE3 + {SPR_HEAD,9,8,{NULL},S_HEAD_DIE5}, // S_HEAD_DIE4 + {SPR_HEAD,10,8,{A_Fall},S_HEAD_DIE6}, // S_HEAD_DIE5 + {SPR_HEAD,11,-1,{NULL},S_NULL}, // S_HEAD_DIE6 + {SPR_HEAD,11,8,{NULL},S_HEAD_RAISE2}, // S_HEAD_RAISE1 + {SPR_HEAD,10,8,{NULL},S_HEAD_RAISE3}, // S_HEAD_RAISE2 + {SPR_HEAD,9,8,{NULL},S_HEAD_RAISE4}, // S_HEAD_RAISE3 + {SPR_HEAD,8,8,{NULL},S_HEAD_RAISE5}, // S_HEAD_RAISE4 + {SPR_HEAD,7,8,{NULL},S_HEAD_RAISE6}, // S_HEAD_RAISE5 + {SPR_HEAD,6,8,{NULL},S_HEAD_RUN1}, // S_HEAD_RAISE6 + {SPR_BAL7,32768,4,{NULL},S_BRBALL2}, // S_BRBALL1 + {SPR_BAL7,32769,4,{NULL},S_BRBALL1}, // S_BRBALL2 + {SPR_BAL7,32770,6,{NULL},S_BRBALLX2}, // S_BRBALLX1 + {SPR_BAL7,32771,6,{NULL},S_BRBALLX3}, // S_BRBALLX2 + {SPR_BAL7,32772,6,{NULL},S_NULL}, // S_BRBALLX3 + {SPR_BOSS,0,10,{A_Look},S_BOSS_STND2}, // S_BOSS_STND + {SPR_BOSS,1,10,{A_Look},S_BOSS_STND}, // S_BOSS_STND2 + {SPR_BOSS,0,3,{A_Chase},S_BOSS_RUN2}, // S_BOSS_RUN1 + {SPR_BOSS,0,3,{A_Chase},S_BOSS_RUN3}, // S_BOSS_RUN2 + {SPR_BOSS,1,3,{A_Chase},S_BOSS_RUN4}, // S_BOSS_RUN3 + {SPR_BOSS,1,3,{A_Chase},S_BOSS_RUN5}, // S_BOSS_RUN4 + {SPR_BOSS,2,3,{A_Chase},S_BOSS_RUN6}, // S_BOSS_RUN5 + {SPR_BOSS,2,3,{A_Chase},S_BOSS_RUN7}, // S_BOSS_RUN6 + {SPR_BOSS,3,3,{A_Chase},S_BOSS_RUN8}, // S_BOSS_RUN7 + {SPR_BOSS,3,3,{A_Chase},S_BOSS_RUN1}, // S_BOSS_RUN8 + {SPR_BOSS,4,8,{A_FaceTarget},S_BOSS_ATK2}, // S_BOSS_ATK1 + {SPR_BOSS,5,8,{A_FaceTarget},S_BOSS_ATK3}, // S_BOSS_ATK2 + {SPR_BOSS,6,8,{A_BruisAttack},S_BOSS_RUN1}, // S_BOSS_ATK3 + {SPR_BOSS,7,2,{NULL},S_BOSS_PAIN2}, // S_BOSS_PAIN + {SPR_BOSS,7,2,{A_Pain},S_BOSS_RUN1}, // S_BOSS_PAIN2 + {SPR_BOSS,8,8,{NULL},S_BOSS_DIE2}, // S_BOSS_DIE1 + {SPR_BOSS,9,8,{A_Scream},S_BOSS_DIE3}, // S_BOSS_DIE2 + {SPR_BOSS,10,8,{NULL},S_BOSS_DIE4}, // S_BOSS_DIE3 + {SPR_BOSS,11,8,{A_Fall},S_BOSS_DIE5}, // S_BOSS_DIE4 + {SPR_BOSS,12,8,{NULL},S_BOSS_DIE6}, // S_BOSS_DIE5 + {SPR_BOSS,13,8,{NULL},S_BOSS_DIE7}, // S_BOSS_DIE6 + {SPR_BOSS,14,-1,{A_BossDeath},S_NULL}, // S_BOSS_DIE7 + {SPR_BOSS,14,8,{NULL},S_BOSS_RAISE2}, // S_BOSS_RAISE1 + {SPR_BOSS,13,8,{NULL},S_BOSS_RAISE3}, // S_BOSS_RAISE2 + {SPR_BOSS,12,8,{NULL},S_BOSS_RAISE4}, // S_BOSS_RAISE3 + {SPR_BOSS,11,8,{NULL},S_BOSS_RAISE5}, // S_BOSS_RAISE4 + {SPR_BOSS,10,8,{NULL},S_BOSS_RAISE6}, // S_BOSS_RAISE5 + {SPR_BOSS,9,8,{NULL},S_BOSS_RAISE7}, // S_BOSS_RAISE6 + {SPR_BOSS,8,8,{NULL},S_BOSS_RUN1}, // S_BOSS_RAISE7 + {SPR_BOS2,0,10,{A_Look},S_BOS2_STND2}, // S_BOS2_STND + {SPR_BOS2,1,10,{A_Look},S_BOS2_STND}, // S_BOS2_STND2 + {SPR_BOS2,0,3,{A_Chase},S_BOS2_RUN2}, // S_BOS2_RUN1 + {SPR_BOS2,0,3,{A_Chase},S_BOS2_RUN3}, // S_BOS2_RUN2 + {SPR_BOS2,1,3,{A_Chase},S_BOS2_RUN4}, // S_BOS2_RUN3 + {SPR_BOS2,1,3,{A_Chase},S_BOS2_RUN5}, // S_BOS2_RUN4 + {SPR_BOS2,2,3,{A_Chase},S_BOS2_RUN6}, // S_BOS2_RUN5 + {SPR_BOS2,2,3,{A_Chase},S_BOS2_RUN7}, // S_BOS2_RUN6 + {SPR_BOS2,3,3,{A_Chase},S_BOS2_RUN8}, // S_BOS2_RUN7 + {SPR_BOS2,3,3,{A_Chase},S_BOS2_RUN1}, // S_BOS2_RUN8 + {SPR_BOS2,4,8,{A_FaceTarget},S_BOS2_ATK2}, // S_BOS2_ATK1 + {SPR_BOS2,5,8,{A_FaceTarget},S_BOS2_ATK3}, // S_BOS2_ATK2 + {SPR_BOS2,6,8,{A_BruisAttack},S_BOS2_RUN1}, // S_BOS2_ATK3 + {SPR_BOS2,7,2,{NULL},S_BOS2_PAIN2}, // S_BOS2_PAIN + {SPR_BOS2,7,2,{A_Pain},S_BOS2_RUN1}, // S_BOS2_PAIN2 + {SPR_BOS2,8,8,{NULL},S_BOS2_DIE2}, // S_BOS2_DIE1 + {SPR_BOS2,9,8,{A_Scream},S_BOS2_DIE3}, // S_BOS2_DIE2 + {SPR_BOS2,10,8,{NULL},S_BOS2_DIE4}, // S_BOS2_DIE3 + {SPR_BOS2,11,8,{A_Fall},S_BOS2_DIE5}, // S_BOS2_DIE4 + {SPR_BOS2,12,8,{NULL},S_BOS2_DIE6}, // S_BOS2_DIE5 + {SPR_BOS2,13,8,{NULL},S_BOS2_DIE7}, // S_BOS2_DIE6 + {SPR_BOS2,14,-1,{NULL},S_NULL}, // S_BOS2_DIE7 + {SPR_BOS2,14,8,{NULL},S_BOS2_RAISE2}, // S_BOS2_RAISE1 + {SPR_BOS2,13,8,{NULL},S_BOS2_RAISE3}, // S_BOS2_RAISE2 + {SPR_BOS2,12,8,{NULL},S_BOS2_RAISE4}, // S_BOS2_RAISE3 + {SPR_BOS2,11,8,{NULL},S_BOS2_RAISE5}, // S_BOS2_RAISE4 + {SPR_BOS2,10,8,{NULL},S_BOS2_RAISE6}, // S_BOS2_RAISE5 + {SPR_BOS2,9,8,{NULL},S_BOS2_RAISE7}, // S_BOS2_RAISE6 + {SPR_BOS2,8,8,{NULL},S_BOS2_RUN1}, // S_BOS2_RAISE7 + {SPR_SKUL,32768,10,{A_Look},S_SKULL_STND2}, // S_SKULL_STND + {SPR_SKUL,32769,10,{A_Look},S_SKULL_STND}, // S_SKULL_STND2 + {SPR_SKUL,32768,6,{A_Chase},S_SKULL_RUN2}, // S_SKULL_RUN1 + {SPR_SKUL,32769,6,{A_Chase},S_SKULL_RUN1}, // S_SKULL_RUN2 + {SPR_SKUL,32770,10,{A_FaceTarget},S_SKULL_ATK2}, // S_SKULL_ATK1 + {SPR_SKUL,32771,4,{A_SkullAttack},S_SKULL_ATK3}, // S_SKULL_ATK2 + {SPR_SKUL,32770,4,{NULL},S_SKULL_ATK4}, // S_SKULL_ATK3 + {SPR_SKUL,32771,4,{NULL},S_SKULL_ATK3}, // S_SKULL_ATK4 + {SPR_SKUL,32772,3,{NULL},S_SKULL_PAIN2}, // S_SKULL_PAIN + {SPR_SKUL,32772,3,{A_Pain},S_SKULL_RUN1}, // S_SKULL_PAIN2 + {SPR_SKUL,32773,6,{NULL},S_SKULL_DIE2}, // S_SKULL_DIE1 + {SPR_SKUL,32774,6,{A_Scream},S_SKULL_DIE3}, // S_SKULL_DIE2 + {SPR_SKUL,32775,6,{NULL},S_SKULL_DIE4}, // S_SKULL_DIE3 + {SPR_SKUL,32776,6,{A_Fall},S_SKULL_DIE5}, // S_SKULL_DIE4 + {SPR_SKUL,9,6,{NULL},S_SKULL_DIE6}, // S_SKULL_DIE5 + {SPR_SKUL,10,6,{NULL},S_NULL}, // S_SKULL_DIE6 + {SPR_SPID,0,10,{A_Look},S_SPID_STND2}, // S_SPID_STND + {SPR_SPID,1,10,{A_Look},S_SPID_STND}, // S_SPID_STND2 + {SPR_SPID,0,3,{A_Metal},S_SPID_RUN2}, // S_SPID_RUN1 + {SPR_SPID,0,3,{A_Chase},S_SPID_RUN3}, // S_SPID_RUN2 + {SPR_SPID,1,3,{A_Chase},S_SPID_RUN4}, // S_SPID_RUN3 + {SPR_SPID,1,3,{A_Chase},S_SPID_RUN5}, // S_SPID_RUN4 + {SPR_SPID,2,3,{A_Metal},S_SPID_RUN6}, // S_SPID_RUN5 + {SPR_SPID,2,3,{A_Chase},S_SPID_RUN7}, // S_SPID_RUN6 + {SPR_SPID,3,3,{A_Chase},S_SPID_RUN8}, // S_SPID_RUN7 + {SPR_SPID,3,3,{A_Chase},S_SPID_RUN9}, // S_SPID_RUN8 + {SPR_SPID,4,3,{A_Metal},S_SPID_RUN10}, // S_SPID_RUN9 + {SPR_SPID,4,3,{A_Chase},S_SPID_RUN11}, // S_SPID_RUN10 + {SPR_SPID,5,3,{A_Chase},S_SPID_RUN12}, // S_SPID_RUN11 + {SPR_SPID,5,3,{A_Chase},S_SPID_RUN1}, // S_SPID_RUN12 + {SPR_SPID,32768,20,{A_FaceTarget},S_SPID_ATK2}, // S_SPID_ATK1 + {SPR_SPID,32774,4,{A_SPosAttack},S_SPID_ATK3}, // S_SPID_ATK2 + {SPR_SPID,32775,4,{A_SPosAttack},S_SPID_ATK4}, // S_SPID_ATK3 + {SPR_SPID,32775,1,{A_SpidRefire},S_SPID_ATK2}, // S_SPID_ATK4 + {SPR_SPID,8,3,{NULL},S_SPID_PAIN2}, // S_SPID_PAIN + {SPR_SPID,8,3,{A_Pain},S_SPID_RUN1}, // S_SPID_PAIN2 + {SPR_SPID,9,20,{A_Scream},S_SPID_DIE2}, // S_SPID_DIE1 + {SPR_SPID,10,10,{A_Fall},S_SPID_DIE3}, // S_SPID_DIE2 + {SPR_SPID,11,10,{NULL},S_SPID_DIE4}, // S_SPID_DIE3 + {SPR_SPID,12,10,{NULL},S_SPID_DIE5}, // S_SPID_DIE4 + {SPR_SPID,13,10,{NULL},S_SPID_DIE6}, // S_SPID_DIE5 + {SPR_SPID,14,10,{NULL},S_SPID_DIE7}, // S_SPID_DIE6 + {SPR_SPID,15,10,{NULL},S_SPID_DIE8}, // S_SPID_DIE7 + {SPR_SPID,16,10,{NULL},S_SPID_DIE9}, // S_SPID_DIE8 + {SPR_SPID,17,10,{NULL},S_SPID_DIE10}, // S_SPID_DIE9 + {SPR_SPID,18,30,{NULL},S_SPID_DIE11}, // S_SPID_DIE10 + {SPR_SPID,18,-1,{A_BossDeath},S_NULL}, // S_SPID_DIE11 + {SPR_BSPI,0,10,{A_Look},S_BSPI_STND2}, // S_BSPI_STND + {SPR_BSPI,1,10,{A_Look},S_BSPI_STND}, // S_BSPI_STND2 + {SPR_BSPI,0,20,{NULL},S_BSPI_RUN1}, // S_BSPI_SIGHT + {SPR_BSPI,0,3,{A_BabyMetal},S_BSPI_RUN2}, // S_BSPI_RUN1 + {SPR_BSPI,0,3,{A_Chase},S_BSPI_RUN3}, // S_BSPI_RUN2 + {SPR_BSPI,1,3,{A_Chase},S_BSPI_RUN4}, // S_BSPI_RUN3 + {SPR_BSPI,1,3,{A_Chase},S_BSPI_RUN5}, // S_BSPI_RUN4 + {SPR_BSPI,2,3,{A_Chase},S_BSPI_RUN6}, // S_BSPI_RUN5 + {SPR_BSPI,2,3,{A_Chase},S_BSPI_RUN7}, // S_BSPI_RUN6 + {SPR_BSPI,3,3,{A_BabyMetal},S_BSPI_RUN8}, // S_BSPI_RUN7 + {SPR_BSPI,3,3,{A_Chase},S_BSPI_RUN9}, // S_BSPI_RUN8 + {SPR_BSPI,4,3,{A_Chase},S_BSPI_RUN10}, // S_BSPI_RUN9 + {SPR_BSPI,4,3,{A_Chase},S_BSPI_RUN11}, // S_BSPI_RUN10 + {SPR_BSPI,5,3,{A_Chase},S_BSPI_RUN12}, // S_BSPI_RUN11 + {SPR_BSPI,5,3,{A_Chase},S_BSPI_RUN1}, // S_BSPI_RUN12 + {SPR_BSPI,32768,20,{A_FaceTarget},S_BSPI_ATK2}, // S_BSPI_ATK1 + {SPR_BSPI,32774,4,{A_BspiAttack},S_BSPI_ATK3}, // S_BSPI_ATK2 + {SPR_BSPI,32775,4,{NULL},S_BSPI_ATK4}, // S_BSPI_ATK3 + {SPR_BSPI,32775,1,{A_SpidRefire},S_BSPI_ATK2}, // S_BSPI_ATK4 + {SPR_BSPI,8,3,{NULL},S_BSPI_PAIN2}, // S_BSPI_PAIN + {SPR_BSPI,8,3,{A_Pain},S_BSPI_RUN1}, // S_BSPI_PAIN2 + {SPR_BSPI,9,20,{A_Scream},S_BSPI_DIE2}, // S_BSPI_DIE1 + {SPR_BSPI,10,7,{A_Fall},S_BSPI_DIE3}, // S_BSPI_DIE2 + {SPR_BSPI,11,7,{NULL},S_BSPI_DIE4}, // S_BSPI_DIE3 + {SPR_BSPI,12,7,{NULL},S_BSPI_DIE5}, // S_BSPI_DIE4 + {SPR_BSPI,13,7,{NULL},S_BSPI_DIE6}, // S_BSPI_DIE5 + {SPR_BSPI,14,7,{NULL},S_BSPI_DIE7}, // S_BSPI_DIE6 + {SPR_BSPI,15,-1,{A_BossDeath},S_NULL}, // S_BSPI_DIE7 + {SPR_BSPI,15,5,{NULL},S_BSPI_RAISE2}, // S_BSPI_RAISE1 + {SPR_BSPI,14,5,{NULL},S_BSPI_RAISE3}, // S_BSPI_RAISE2 + {SPR_BSPI,13,5,{NULL},S_BSPI_RAISE4}, // S_BSPI_RAISE3 + {SPR_BSPI,12,5,{NULL},S_BSPI_RAISE5}, // S_BSPI_RAISE4 + {SPR_BSPI,11,5,{NULL},S_BSPI_RAISE6}, // S_BSPI_RAISE5 + {SPR_BSPI,10,5,{NULL},S_BSPI_RAISE7}, // S_BSPI_RAISE6 + {SPR_BSPI,9,5,{NULL},S_BSPI_RUN1}, // S_BSPI_RAISE7 + {SPR_APLS,32768,5,{NULL},S_ARACH_PLAZ2}, // S_ARACH_PLAZ + {SPR_APLS,32769,5,{NULL},S_ARACH_PLAZ}, // S_ARACH_PLAZ2 + {SPR_APBX,32768,5,{NULL},S_ARACH_PLEX2}, // S_ARACH_PLEX + {SPR_APBX,32769,5,{NULL},S_ARACH_PLEX3}, // S_ARACH_PLEX2 + {SPR_APBX,32770,5,{NULL},S_ARACH_PLEX4}, // S_ARACH_PLEX3 + {SPR_APBX,32771,5,{NULL},S_ARACH_PLEX5}, // S_ARACH_PLEX4 + {SPR_APBX,32772,5,{NULL},S_NULL}, // S_ARACH_PLEX5 + {SPR_CYBR,0,10,{A_Look},S_CYBER_STND2}, // S_CYBER_STND + {SPR_CYBR,1,10,{A_Look},S_CYBER_STND}, // S_CYBER_STND2 + {SPR_CYBR,0,3,{A_Hoof},S_CYBER_RUN2}, // S_CYBER_RUN1 + {SPR_CYBR,0,3,{A_Chase},S_CYBER_RUN3}, // S_CYBER_RUN2 + {SPR_CYBR,1,3,{A_Chase},S_CYBER_RUN4}, // S_CYBER_RUN3 + {SPR_CYBR,1,3,{A_Chase},S_CYBER_RUN5}, // S_CYBER_RUN4 + {SPR_CYBR,2,3,{A_Chase},S_CYBER_RUN6}, // S_CYBER_RUN5 + {SPR_CYBR,2,3,{A_Chase},S_CYBER_RUN7}, // S_CYBER_RUN6 + {SPR_CYBR,3,3,{A_Metal},S_CYBER_RUN8}, // S_CYBER_RUN7 + {SPR_CYBR,3,3,{A_Chase},S_CYBER_RUN1}, // S_CYBER_RUN8 + {SPR_CYBR,4,6,{A_FaceTarget},S_CYBER_ATK2}, // S_CYBER_ATK1 + {SPR_CYBR,5,12,{A_CyberAttack},S_CYBER_ATK3}, // S_CYBER_ATK2 + {SPR_CYBR,4,12,{A_FaceTarget},S_CYBER_ATK4}, // S_CYBER_ATK3 + {SPR_CYBR,5,12,{A_CyberAttack},S_CYBER_ATK5}, // S_CYBER_ATK4 + {SPR_CYBR,4,12,{A_FaceTarget},S_CYBER_ATK6}, // S_CYBER_ATK5 + {SPR_CYBR,5,12,{A_CyberAttack},S_CYBER_RUN1}, // S_CYBER_ATK6 + {SPR_CYBR,6,10,{A_Pain},S_CYBER_RUN1}, // S_CYBER_PAIN + {SPR_CYBR,7,10,{NULL},S_CYBER_DIE2}, // S_CYBER_DIE1 + {SPR_CYBR,8,10,{A_Scream},S_CYBER_DIE3}, // S_CYBER_DIE2 + {SPR_CYBR,9,10,{NULL},S_CYBER_DIE4}, // S_CYBER_DIE3 + {SPR_CYBR,10,10,{NULL},S_CYBER_DIE5}, // S_CYBER_DIE4 + {SPR_CYBR,11,10,{NULL},S_CYBER_DIE6}, // S_CYBER_DIE5 + {SPR_CYBR,12,10,{A_Fall},S_CYBER_DIE7}, // S_CYBER_DIE6 + {SPR_CYBR,13,10,{NULL},S_CYBER_DIE8}, // S_CYBER_DIE7 + {SPR_CYBR,14,10,{NULL},S_CYBER_DIE9}, // S_CYBER_DIE8 + {SPR_CYBR,15,30,{NULL},S_CYBER_DIE10}, // S_CYBER_DIE9 + {SPR_CYBR,15,-1,{A_BossDeath},S_NULL}, // S_CYBER_DIE10 + {SPR_PAIN,0,10,{A_Look},S_PAIN_STND}, // S_PAIN_STND + {SPR_PAIN,0,3,{A_Chase},S_PAIN_RUN2}, // S_PAIN_RUN1 + {SPR_PAIN,0,3,{A_Chase},S_PAIN_RUN3}, // S_PAIN_RUN2 + {SPR_PAIN,1,3,{A_Chase},S_PAIN_RUN4}, // S_PAIN_RUN3 + {SPR_PAIN,1,3,{A_Chase},S_PAIN_RUN5}, // S_PAIN_RUN4 + {SPR_PAIN,2,3,{A_Chase},S_PAIN_RUN6}, // S_PAIN_RUN5 + {SPR_PAIN,2,3,{A_Chase},S_PAIN_RUN1}, // S_PAIN_RUN6 + {SPR_PAIN,3,5,{A_FaceTarget},S_PAIN_ATK2}, // S_PAIN_ATK1 + {SPR_PAIN,4,5,{A_FaceTarget},S_PAIN_ATK3}, // S_PAIN_ATK2 + {SPR_PAIN,32773,5,{A_FaceTarget},S_PAIN_ATK4}, // S_PAIN_ATK3 + {SPR_PAIN,32773,0,{A_PainAttack},S_PAIN_RUN1}, // S_PAIN_ATK4 + {SPR_PAIN,6,6,{NULL},S_PAIN_PAIN2}, // S_PAIN_PAIN + {SPR_PAIN,6,6,{A_Pain},S_PAIN_RUN1}, // S_PAIN_PAIN2 + {SPR_PAIN,32775,8,{NULL},S_PAIN_DIE2}, // S_PAIN_DIE1 + {SPR_PAIN,32776,8,{A_Scream},S_PAIN_DIE3}, // S_PAIN_DIE2 + {SPR_PAIN,32777,8,{NULL},S_PAIN_DIE4}, // S_PAIN_DIE3 + {SPR_PAIN,32778,8,{NULL},S_PAIN_DIE5}, // S_PAIN_DIE4 + {SPR_PAIN,32779,8,{A_PainDie},S_PAIN_DIE6}, // S_PAIN_DIE5 + {SPR_PAIN,32780,8,{NULL},S_NULL}, // S_PAIN_DIE6 + {SPR_PAIN,12,8,{NULL},S_PAIN_RAISE2}, // S_PAIN_RAISE1 + {SPR_PAIN,11,8,{NULL},S_PAIN_RAISE3}, // S_PAIN_RAISE2 + {SPR_PAIN,10,8,{NULL},S_PAIN_RAISE4}, // S_PAIN_RAISE3 + {SPR_PAIN,9,8,{NULL},S_PAIN_RAISE5}, // S_PAIN_RAISE4 + {SPR_PAIN,8,8,{NULL},S_PAIN_RAISE6}, // S_PAIN_RAISE5 + {SPR_PAIN,7,8,{NULL},S_PAIN_RUN1}, // S_PAIN_RAISE6 + {SPR_SSWV,0,10,{A_Look},S_SSWV_STND2}, // S_SSWV_STND + {SPR_SSWV,1,10,{A_Look},S_SSWV_STND}, // S_SSWV_STND2 + {SPR_SSWV,0,3,{A_Chase},S_SSWV_RUN2}, // S_SSWV_RUN1 + {SPR_SSWV,0,3,{A_Chase},S_SSWV_RUN3}, // S_SSWV_RUN2 + {SPR_SSWV,1,3,{A_Chase},S_SSWV_RUN4}, // S_SSWV_RUN3 + {SPR_SSWV,1,3,{A_Chase},S_SSWV_RUN5}, // S_SSWV_RUN4 + {SPR_SSWV,2,3,{A_Chase},S_SSWV_RUN6}, // S_SSWV_RUN5 + {SPR_SSWV,2,3,{A_Chase},S_SSWV_RUN7}, // S_SSWV_RUN6 + {SPR_SSWV,3,3,{A_Chase},S_SSWV_RUN8}, // S_SSWV_RUN7 + {SPR_SSWV,3,3,{A_Chase},S_SSWV_RUN1}, // S_SSWV_RUN8 + {SPR_SSWV,4,10,{A_FaceTarget},S_SSWV_ATK2}, // S_SSWV_ATK1 + {SPR_SSWV,5,10,{A_FaceTarget},S_SSWV_ATK3}, // S_SSWV_ATK2 + {SPR_SSWV,32774,4,{A_CPosAttack},S_SSWV_ATK4}, // S_SSWV_ATK3 + {SPR_SSWV,5,6,{A_FaceTarget},S_SSWV_ATK5}, // S_SSWV_ATK4 + {SPR_SSWV,32774,4,{A_CPosAttack},S_SSWV_ATK6}, // S_SSWV_ATK5 + {SPR_SSWV,5,1,{A_CPosRefire},S_SSWV_ATK2}, // S_SSWV_ATK6 + {SPR_SSWV,7,3,{NULL},S_SSWV_PAIN2}, // S_SSWV_PAIN + {SPR_SSWV,7,3,{A_Pain},S_SSWV_RUN1}, // S_SSWV_PAIN2 + {SPR_SSWV,8,5,{NULL},S_SSWV_DIE2}, // S_SSWV_DIE1 + {SPR_SSWV,9,5,{A_Scream},S_SSWV_DIE3}, // S_SSWV_DIE2 + {SPR_SSWV,10,5,{A_Fall},S_SSWV_DIE4}, // S_SSWV_DIE3 + {SPR_SSWV,11,5,{NULL},S_SSWV_DIE5}, // S_SSWV_DIE4 + {SPR_SSWV,12,-1,{NULL},S_NULL}, // S_SSWV_DIE5 + {SPR_SSWV,13,5,{NULL},S_SSWV_XDIE2}, // S_SSWV_XDIE1 + {SPR_SSWV,14,5,{A_XScream},S_SSWV_XDIE3}, // S_SSWV_XDIE2 + {SPR_SSWV,15,5,{A_Fall},S_SSWV_XDIE4}, // S_SSWV_XDIE3 + {SPR_SSWV,16,5,{NULL},S_SSWV_XDIE5}, // S_SSWV_XDIE4 + {SPR_SSWV,17,5,{NULL},S_SSWV_XDIE6}, // S_SSWV_XDIE5 + {SPR_SSWV,18,5,{NULL},S_SSWV_XDIE7}, // S_SSWV_XDIE6 + {SPR_SSWV,19,5,{NULL},S_SSWV_XDIE8}, // S_SSWV_XDIE7 + {SPR_SSWV,20,5,{NULL},S_SSWV_XDIE9}, // S_SSWV_XDIE8 + {SPR_SSWV,21,-1,{NULL},S_NULL}, // S_SSWV_XDIE9 + {SPR_SSWV,12,5,{NULL},S_SSWV_RAISE2}, // S_SSWV_RAISE1 + {SPR_SSWV,11,5,{NULL},S_SSWV_RAISE3}, // S_SSWV_RAISE2 + {SPR_SSWV,10,5,{NULL},S_SSWV_RAISE4}, // S_SSWV_RAISE3 + {SPR_SSWV,9,5,{NULL},S_SSWV_RAISE5}, // S_SSWV_RAISE4 + {SPR_SSWV,8,5,{NULL},S_SSWV_RUN1}, // S_SSWV_RAISE5 + {SPR_KEEN,0,-1,{NULL},S_KEENSTND}, // S_KEENSTND + {SPR_KEEN,0,6,{NULL},S_COMMKEEN2}, // S_COMMKEEN + {SPR_KEEN,1,6,{NULL},S_COMMKEEN3}, // S_COMMKEEN2 + {SPR_KEEN,2,6,{A_Scream},S_COMMKEEN4}, // S_COMMKEEN3 + {SPR_KEEN,3,6,{NULL},S_COMMKEEN5}, // S_COMMKEEN4 + {SPR_KEEN,4,6,{NULL},S_COMMKEEN6}, // S_COMMKEEN5 + {SPR_KEEN,5,6,{NULL},S_COMMKEEN7}, // S_COMMKEEN6 + {SPR_KEEN,6,6,{NULL},S_COMMKEEN8}, // S_COMMKEEN7 + {SPR_KEEN,7,6,{NULL},S_COMMKEEN9}, // S_COMMKEEN8 + {SPR_KEEN,8,6,{NULL},S_COMMKEEN10}, // S_COMMKEEN9 + {SPR_KEEN,9,6,{NULL},S_COMMKEEN11}, // S_COMMKEEN10 + {SPR_KEEN,10,6,{A_KeenDie},S_COMMKEEN12},// S_COMMKEEN11 + {SPR_KEEN,11,-1,{NULL},S_NULL}, // S_COMMKEEN12 + {SPR_KEEN,12,4,{NULL},S_KEENPAIN2}, // S_KEENPAIN + {SPR_KEEN,12,8,{A_Pain},S_KEENSTND}, // S_KEENPAIN2 + {SPR_BBRN,0,-1,{NULL},S_NULL}, // S_BRAIN + {SPR_BBRN,1,36,{A_BrainPain},S_BRAIN}, // S_BRAIN_PAIN + {SPR_BBRN,0,100,{A_BrainScream},S_BRAIN_DIE2}, // S_BRAIN_DIE1 + {SPR_BBRN,0,10,{NULL},S_BRAIN_DIE3}, // S_BRAIN_DIE2 + {SPR_BBRN,0,10,{NULL},S_BRAIN_DIE4}, // S_BRAIN_DIE3 + {SPR_BBRN,0,-1,{A_BrainDie},S_NULL}, // S_BRAIN_DIE4 + {SPR_SSWV,0,10,{A_Look},S_BRAINEYE}, // S_BRAINEYE + {SPR_SSWV,0,181,{A_BrainAwake},S_BRAINEYE1}, // S_BRAINEYESEE + {SPR_SSWV,0,150,{A_BrainSpit},S_BRAINEYE1}, // S_BRAINEYE1 + {SPR_BOSF,32768,3,{A_SpawnSound},S_SPAWN2}, // S_SPAWN1 + {SPR_BOSF,32769,3,{A_SpawnFly},S_SPAWN3}, // S_SPAWN2 + {SPR_BOSF,32770,3,{A_SpawnFly},S_SPAWN4}, // S_SPAWN3 + {SPR_BOSF,32771,3,{A_SpawnFly},S_SPAWN1}, // S_SPAWN4 + {SPR_FIRE,32768,4,{A_Fire},S_SPAWNFIRE2}, // S_SPAWNFIRE1 + {SPR_FIRE,32769,4,{A_Fire},S_SPAWNFIRE3}, // S_SPAWNFIRE2 + {SPR_FIRE,32770,4,{A_Fire},S_SPAWNFIRE4}, // S_SPAWNFIRE3 + {SPR_FIRE,32771,4,{A_Fire},S_SPAWNFIRE5}, // S_SPAWNFIRE4 + {SPR_FIRE,32772,4,{A_Fire},S_SPAWNFIRE6}, // S_SPAWNFIRE5 + {SPR_FIRE,32773,4,{A_Fire},S_SPAWNFIRE7}, // S_SPAWNFIRE6 + {SPR_FIRE,32774,4,{A_Fire},S_SPAWNFIRE8}, // S_SPAWNFIRE7 + {SPR_FIRE,32775,4,{A_Fire},S_NULL}, // S_SPAWNFIRE8 + {SPR_MISL,32769,10,{NULL},S_BRAINEXPLODE2}, // S_BRAINEXPLODE1 + {SPR_MISL,32770,10,{NULL},S_BRAINEXPLODE3}, // S_BRAINEXPLODE2 + {SPR_MISL,32771,10,{A_BrainExplode},S_NULL}, // S_BRAINEXPLODE3 + {SPR_ARM1,0,6,{NULL},S_ARM1A}, // S_ARM1 + {SPR_ARM1,32769,7,{NULL},S_ARM1}, // S_ARM1A + {SPR_ARM2,0,6,{NULL},S_ARM2A}, // S_ARM2 + {SPR_ARM2,32769,6,{NULL},S_ARM2}, // S_ARM2A + {SPR_BAR1,0,6,{NULL},S_BAR2}, // S_BAR1 + {SPR_BAR1,1,6,{NULL},S_BAR1}, // S_BAR2 + {SPR_BEXP,32768,5,{NULL},S_BEXP2}, // S_BEXP + {SPR_BEXP,32769,5,{A_Scream},S_BEXP3}, // S_BEXP2 + {SPR_BEXP,32770,5,{NULL},S_BEXP4}, // S_BEXP3 + {SPR_BEXP,32771,10,{A_Explode},S_BEXP5}, // S_BEXP4 + {SPR_BEXP,32772,10,{NULL},S_NULL}, // S_BEXP5 + {SPR_FCAN,32768,4,{NULL},S_BBAR2}, // S_BBAR1 + {SPR_FCAN,32769,4,{NULL},S_BBAR3}, // S_BBAR2 + {SPR_FCAN,32770,4,{NULL},S_BBAR1}, // S_BBAR3 + {SPR_BON1,0,6,{NULL},S_BON1A}, // S_BON1 + {SPR_BON1,1,6,{NULL},S_BON1B}, // S_BON1A + {SPR_BON1,2,6,{NULL},S_BON1C}, // S_BON1B + {SPR_BON1,3,6,{NULL},S_BON1D}, // S_BON1C + {SPR_BON1,2,6,{NULL},S_BON1E}, // S_BON1D + {SPR_BON1,1,6,{NULL},S_BON1}, // S_BON1E + {SPR_BON2,0,6,{NULL},S_BON2A}, // S_BON2 + {SPR_BON2,1,6,{NULL},S_BON2B}, // S_BON2A + {SPR_BON2,2,6,{NULL},S_BON2C}, // S_BON2B + {SPR_BON2,3,6,{NULL},S_BON2D}, // S_BON2C + {SPR_BON2,2,6,{NULL},S_BON2E}, // S_BON2D + {SPR_BON2,1,6,{NULL},S_BON2}, // S_BON2E + {SPR_BKEY,0,10,{NULL},S_BKEY2}, // S_BKEY + {SPR_BKEY,32769,10,{NULL},S_BKEY}, // S_BKEY2 + {SPR_RKEY,0,10,{NULL},S_RKEY2}, // S_RKEY + {SPR_RKEY,32769,10,{NULL},S_RKEY}, // S_RKEY2 + {SPR_YKEY,0,10,{NULL},S_YKEY2}, // S_YKEY + {SPR_YKEY,32769,10,{NULL},S_YKEY}, // S_YKEY2 + {SPR_BSKU,0,10,{NULL},S_BSKULL2}, // S_BSKULL + {SPR_BSKU,32769,10,{NULL},S_BSKULL}, // S_BSKULL2 + {SPR_RSKU,0,10,{NULL},S_RSKULL2}, // S_RSKULL + {SPR_RSKU,32769,10,{NULL},S_RSKULL}, // S_RSKULL2 + {SPR_YSKU,0,10,{NULL},S_YSKULL2}, // S_YSKULL + {SPR_YSKU,32769,10,{NULL},S_YSKULL}, // S_YSKULL2 + {SPR_STIM,0,-1,{NULL},S_NULL}, // S_STIM + {SPR_MEDI,0,-1,{NULL},S_NULL}, // S_MEDI + {SPR_SOUL,32768,6,{NULL},S_SOUL2}, // S_SOUL + {SPR_SOUL,32769,6,{NULL},S_SOUL3}, // S_SOUL2 + {SPR_SOUL,32770,6,{NULL},S_SOUL4}, // S_SOUL3 + {SPR_SOUL,32771,6,{NULL},S_SOUL5}, // S_SOUL4 + {SPR_SOUL,32770,6,{NULL},S_SOUL6}, // S_SOUL5 + {SPR_SOUL,32769,6,{NULL},S_SOUL}, // S_SOUL6 + {SPR_PINV,32768,6,{NULL},S_PINV2}, // S_PINV + {SPR_PINV,32769,6,{NULL},S_PINV3}, // S_PINV2 + {SPR_PINV,32770,6,{NULL},S_PINV4}, // S_PINV3 + {SPR_PINV,32771,6,{NULL},S_PINV}, // S_PINV4 + {SPR_PSTR,32768,-1,{NULL},S_NULL}, // S_PSTR + {SPR_PINS,32768,6,{NULL},S_PINS2}, // S_PINS + {SPR_PINS,32769,6,{NULL},S_PINS3}, // S_PINS2 + {SPR_PINS,32770,6,{NULL},S_PINS4}, // S_PINS3 + {SPR_PINS,32771,6,{NULL},S_PINS}, // S_PINS4 + {SPR_MEGA,32768,6,{NULL},S_MEGA2}, // S_MEGA + {SPR_MEGA,32769,6,{NULL},S_MEGA3}, // S_MEGA2 + {SPR_MEGA,32770,6,{NULL},S_MEGA4}, // S_MEGA3 + {SPR_MEGA,32771,6,{NULL},S_MEGA}, // S_MEGA4 + {SPR_SUIT,32768,-1,{NULL},S_NULL}, // S_SUIT + {SPR_PMAP,32768,6,{NULL},S_PMAP2}, // S_PMAP + {SPR_PMAP,32769,6,{NULL},S_PMAP3}, // S_PMAP2 + {SPR_PMAP,32770,6,{NULL},S_PMAP4}, // S_PMAP3 + {SPR_PMAP,32771,6,{NULL},S_PMAP5}, // S_PMAP4 + {SPR_PMAP,32770,6,{NULL},S_PMAP6}, // S_PMAP5 + {SPR_PMAP,32769,6,{NULL},S_PMAP}, // S_PMAP6 + {SPR_PVIS,32768,6,{NULL},S_PVIS2}, // S_PVIS + {SPR_PVIS,1,6,{NULL},S_PVIS}, // S_PVIS2 + {SPR_CLIP,0,-1,{NULL},S_NULL}, // S_CLIP + {SPR_AMMO,0,-1,{NULL},S_NULL}, // S_AMMO + {SPR_ROCK,0,-1,{NULL},S_NULL}, // S_ROCK + {SPR_BROK,0,-1,{NULL},S_NULL}, // S_BROK + {SPR_CELL,0,-1,{NULL},S_NULL}, // S_CELL + {SPR_CELP,0,-1,{NULL},S_NULL}, // S_CELP + {SPR_SHEL,0,-1,{NULL},S_NULL}, // S_SHEL + {SPR_SBOX,0,-1,{NULL},S_NULL}, // S_SBOX + {SPR_BPAK,0,-1,{NULL},S_NULL}, // S_BPAK + {SPR_BFUG,0,-1,{NULL},S_NULL}, // S_BFUG + {SPR_MGUN,0,-1,{NULL},S_NULL}, // S_MGUN + {SPR_CSAW,0,-1,{NULL},S_NULL}, // S_CSAW + {SPR_LAUN,0,-1,{NULL},S_NULL}, // S_LAUN + {SPR_PLAS,0,-1,{NULL},S_NULL}, // S_PLAS + {SPR_SHOT,0,-1,{NULL},S_NULL}, // S_SHOT + {SPR_SGN2,0,-1,{NULL},S_NULL}, // S_SHOT2 + {SPR_COLU,32768,-1,{NULL},S_NULL}, // S_COLU + {SPR_SMT2,0,-1,{NULL},S_NULL}, // S_STALAG + {SPR_GOR1,0,10,{NULL},S_BLOODYTWITCH2}, // S_BLOODYTWITCH + {SPR_GOR1,1,15,{NULL},S_BLOODYTWITCH3}, // S_BLOODYTWITCH2 + {SPR_GOR1,2,8,{NULL},S_BLOODYTWITCH4}, // S_BLOODYTWITCH3 + {SPR_GOR1,1,6,{NULL},S_BLOODYTWITCH}, // S_BLOODYTWITCH4 + {SPR_PLAY,13,-1,{NULL},S_NULL}, // S_DEADTORSO + {SPR_PLAY,18,-1,{NULL},S_NULL}, // S_DEADBOTTOM + {SPR_POL2,0,-1,{NULL},S_NULL}, // S_HEADSONSTICK + {SPR_POL5,0,-1,{NULL},S_NULL}, // S_GIBS + {SPR_POL4,0,-1,{NULL},S_NULL}, // S_HEADONASTICK + {SPR_POL3,32768,6,{NULL},S_HEADCANDLES2}, // S_HEADCANDLES + {SPR_POL3,32769,6,{NULL},S_HEADCANDLES}, // S_HEADCANDLES2 + {SPR_POL1,0,-1,{NULL},S_NULL}, // S_DEADSTICK + {SPR_POL6,0,6,{NULL},S_LIVESTICK2}, // S_LIVESTICK + {SPR_POL6,1,8,{NULL},S_LIVESTICK}, // S_LIVESTICK2 + {SPR_GOR2,0,-1,{NULL},S_NULL}, // S_MEAT2 + {SPR_GOR3,0,-1,{NULL},S_NULL}, // S_MEAT3 + {SPR_GOR4,0,-1,{NULL},S_NULL}, // S_MEAT4 + {SPR_GOR5,0,-1,{NULL},S_NULL}, // S_MEAT5 + {SPR_SMIT,0,-1,{NULL},S_NULL}, // S_STALAGTITE + {SPR_COL1,0,-1,{NULL},S_NULL}, // S_TALLGRNCOL + {SPR_COL2,0,-1,{NULL},S_NULL}, // S_SHRTGRNCOL + {SPR_COL3,0,-1,{NULL},S_NULL}, // S_TALLREDCOL + {SPR_COL4,0,-1,{NULL},S_NULL}, // S_SHRTREDCOL + {SPR_CAND,32768,-1,{NULL},S_NULL}, // S_CANDLESTIK + {SPR_CBRA,32768,-1,{NULL},S_NULL}, // S_CANDELABRA + {SPR_COL6,0,-1,{NULL},S_NULL}, // S_SKULLCOL + {SPR_TRE1,0,-1,{NULL},S_NULL}, // S_TORCHTREE + {SPR_TRE2,0,-1,{NULL},S_NULL}, // S_BIGTREE + {SPR_ELEC,0,-1,{NULL},S_NULL}, // S_TECHPILLAR + {SPR_CEYE,32768,6,{NULL},S_EVILEYE2}, // S_EVILEYE + {SPR_CEYE,32769,6,{NULL},S_EVILEYE3}, // S_EVILEYE2 + {SPR_CEYE,32770,6,{NULL},S_EVILEYE4}, // S_EVILEYE3 + {SPR_CEYE,32769,6,{NULL},S_EVILEYE}, // S_EVILEYE4 + {SPR_FSKU,32768,6,{NULL},S_FLOATSKULL2}, // S_FLOATSKULL + {SPR_FSKU,32769,6,{NULL},S_FLOATSKULL3}, // S_FLOATSKULL2 + {SPR_FSKU,32770,6,{NULL},S_FLOATSKULL}, // S_FLOATSKULL3 + {SPR_COL5,0,14,{NULL},S_HEARTCOL2}, // S_HEARTCOL + {SPR_COL5,1,14,{NULL},S_HEARTCOL}, // S_HEARTCOL2 + {SPR_TBLU,32768,4,{NULL},S_BLUETORCH2}, // S_BLUETORCH + {SPR_TBLU,32769,4,{NULL},S_BLUETORCH3}, // S_BLUETORCH2 + {SPR_TBLU,32770,4,{NULL},S_BLUETORCH4}, // S_BLUETORCH3 + {SPR_TBLU,32771,4,{NULL},S_BLUETORCH}, // S_BLUETORCH4 + {SPR_TGRN,32768,4,{NULL},S_GREENTORCH2}, // S_GREENTORCH + {SPR_TGRN,32769,4,{NULL},S_GREENTORCH3}, // S_GREENTORCH2 + {SPR_TGRN,32770,4,{NULL},S_GREENTORCH4}, // S_GREENTORCH3 + {SPR_TGRN,32771,4,{NULL},S_GREENTORCH}, // S_GREENTORCH4 + {SPR_TRED,32768,4,{NULL},S_REDTORCH2}, // S_REDTORCH + {SPR_TRED,32769,4,{NULL},S_REDTORCH3}, // S_REDTORCH2 + {SPR_TRED,32770,4,{NULL},S_REDTORCH4}, // S_REDTORCH3 + {SPR_TRED,32771,4,{NULL},S_REDTORCH}, // S_REDTORCH4 + {SPR_SMBT,32768,4,{NULL},S_BTORCHSHRT2}, // S_BTORCHSHRT + {SPR_SMBT,32769,4,{NULL},S_BTORCHSHRT3}, // S_BTORCHSHRT2 + {SPR_SMBT,32770,4,{NULL},S_BTORCHSHRT4}, // S_BTORCHSHRT3 + {SPR_SMBT,32771,4,{NULL},S_BTORCHSHRT}, // S_BTORCHSHRT4 + {SPR_SMGT,32768,4,{NULL},S_GTORCHSHRT2}, // S_GTORCHSHRT + {SPR_SMGT,32769,4,{NULL},S_GTORCHSHRT3}, // S_GTORCHSHRT2 + {SPR_SMGT,32770,4,{NULL},S_GTORCHSHRT4}, // S_GTORCHSHRT3 + {SPR_SMGT,32771,4,{NULL},S_GTORCHSHRT}, // S_GTORCHSHRT4 + {SPR_SMRT,32768,4,{NULL},S_RTORCHSHRT2}, // S_RTORCHSHRT + {SPR_SMRT,32769,4,{NULL},S_RTORCHSHRT3}, // S_RTORCHSHRT2 + {SPR_SMRT,32770,4,{NULL},S_RTORCHSHRT4}, // S_RTORCHSHRT3 + {SPR_SMRT,32771,4,{NULL},S_RTORCHSHRT}, // S_RTORCHSHRT4 + {SPR_HDB1,0,-1,{NULL},S_NULL}, // S_HANGNOGUTS + {SPR_HDB2,0,-1,{NULL},S_NULL}, // S_HANGBNOBRAIN + {SPR_HDB3,0,-1,{NULL},S_NULL}, // S_HANGTLOOKDN + {SPR_HDB4,0,-1,{NULL},S_NULL}, // S_HANGTSKULL + {SPR_HDB5,0,-1,{NULL},S_NULL}, // S_HANGTLOOKUP + {SPR_HDB6,0,-1,{NULL},S_NULL}, // S_HANGTNOBRAIN + {SPR_POB1,0,-1,{NULL},S_NULL}, // S_COLONGIBS + {SPR_POB2,0,-1,{NULL},S_NULL}, // S_SMALLPOOL + {SPR_BRS1,0,-1,{NULL},S_NULL}, // S_BRAINSTEM + {SPR_TLMP,32768,4,{NULL},S_TECHLAMP2}, // S_TECHLAMP + {SPR_TLMP,32769,4,{NULL},S_TECHLAMP3}, // S_TECHLAMP2 + {SPR_TLMP,32770,4,{NULL},S_TECHLAMP4}, // S_TECHLAMP3 + {SPR_TLMP,32771,4,{NULL},S_TECHLAMP}, // S_TECHLAMP4 + {SPR_TLP2,32768,4,{NULL},S_TECH2LAMP2}, // S_TECH2LAMP + {SPR_TLP2,32769,4,{NULL},S_TECH2LAMP3}, // S_TECH2LAMP2 + {SPR_TLP2,32770,4,{NULL},S_TECH2LAMP4}, // S_TECH2LAMP3 + {SPR_TLP2,32771,4,{NULL},S_TECH2LAMP}, // S_TECH2LAMP4 - {SPR_TNT1,0,-1,NULL,S_TNT1}, // S_TNT1 // phares 3/8/98 + {SPR_TNT1,0,-1,{NULL},S_TNT1}, // S_TNT1 // phares 3/8/98 // killough 8/9/98: grenade - {SPR_MISL,32768,1000,A_Die,S_GRENADE}, // S_GRENADE + {SPR_MISL,32768,1000,{A_Die},S_GRENADE}, // S_GRENADE // killough 8/10/98: variable damage explosion - {SPR_MISL,32769,4,A_Scream,S_DETONATE2}, // S_DETONATE - {SPR_MISL,32770,6,A_Detonate,S_DETONATE3}, // S_DETONATE2 - {SPR_MISL,32771,10,NULL,S_NULL}, // S_DETONATE3 + {SPR_MISL,32769,4,{A_Scream},S_DETONATE2}, // S_DETONATE + {SPR_MISL,32770,6,{A_Detonate},S_DETONATE3}, // S_DETONATE2 + {SPR_MISL,32771,10,{NULL},S_NULL}, // S_DETONATE3 // killough 7/19/98: Marine's best friend :) - {SPR_DOGS,0,10,A_Look,S_DOGS_STND2}, // S_DOGS_STND - {SPR_DOGS,1,10,A_Look,S_DOGS_STND}, // S_DOGS_STND2 - {SPR_DOGS,0,2,A_Chase,S_DOGS_RUN2}, // S_DOGS_RUN1 - {SPR_DOGS,0,2,A_Chase,S_DOGS_RUN3}, // S_DOGS_RUN2 - {SPR_DOGS,1,2,A_Chase,S_DOGS_RUN4}, // S_DOGS_RUN3 - {SPR_DOGS,1,2,A_Chase,S_DOGS_RUN5}, // S_DOGS_RUN4 - {SPR_DOGS,2,2,A_Chase,S_DOGS_RUN6}, // S_DOGS_RUN5 - {SPR_DOGS,2,2,A_Chase,S_DOGS_RUN7}, // S_DOGS_RUN6 - {SPR_DOGS,3,2,A_Chase,S_DOGS_RUN8}, // S_DOGS_RUN7 - {SPR_DOGS,3,2,A_Chase,S_DOGS_RUN1}, // S_DOGS_RUN8 - {SPR_DOGS,4,8,A_FaceTarget,S_DOGS_ATK2}, // S_DOGS_ATK1 - {SPR_DOGS,5,8,A_FaceTarget,S_DOGS_ATK3}, // S_DOGS_ATK2 - {SPR_DOGS,6,8,A_SargAttack,S_DOGS_RUN1}, // S_DOGS_ATK3 - {SPR_DOGS,7,2,NULL,S_DOGS_PAIN2}, // S_DOGS_PAIN - {SPR_DOGS,7,2,A_Pain,S_DOGS_RUN1}, // S_DOGS_PAIN2 - {SPR_DOGS,8,8,NULL,S_DOGS_DIE2}, // S_DOGS_DIE1 - {SPR_DOGS,9,8,A_Scream,S_DOGS_DIE3}, // S_DOGS_DIE2 - {SPR_DOGS,10,4,NULL,S_DOGS_DIE4}, // S_DOGS_DIE3 - {SPR_DOGS,11,4,A_Fall,S_DOGS_DIE5}, // S_DOGS_DIE4 - {SPR_DOGS,12,4,NULL,S_DOGS_DIE6}, // S_DOGS_DIE5 - {SPR_DOGS,13,-1,NULL,S_NULL}, // S_DOGS_DIE6 - {SPR_DOGS,13,5,NULL,S_DOGS_RAISE2}, // S_DOGS_RAISE1 - {SPR_DOGS,12,5,NULL,S_DOGS_RAISE3}, // S_DOGS_RAISE2 - {SPR_DOGS,11,5,NULL,S_DOGS_RAISE4}, // S_DOGS_RAISE3 - {SPR_DOGS,10,5,NULL,S_DOGS_RAISE5}, // S_DOGS_RAISE4 - {SPR_DOGS,9,5,NULL,S_DOGS_RAISE6}, // S_DOGS_RAISE5 - {SPR_DOGS,8,5,NULL,S_DOGS_RUN1}, // S_DOGS_RAISE6 + {SPR_DOGS,0,10,{A_Look},S_DOGS_STND2}, // S_DOGS_STND + {SPR_DOGS,1,10,{A_Look},S_DOGS_STND}, // S_DOGS_STND2 + {SPR_DOGS,0,2,{A_Chase},S_DOGS_RUN2}, // S_DOGS_RUN1 + {SPR_DOGS,0,2,{A_Chase},S_DOGS_RUN3}, // S_DOGS_RUN2 + {SPR_DOGS,1,2,{A_Chase},S_DOGS_RUN4}, // S_DOGS_RUN3 + {SPR_DOGS,1,2,{A_Chase},S_DOGS_RUN5}, // S_DOGS_RUN4 + {SPR_DOGS,2,2,{A_Chase},S_DOGS_RUN6}, // S_DOGS_RUN5 + {SPR_DOGS,2,2,{A_Chase},S_DOGS_RUN7}, // S_DOGS_RUN6 + {SPR_DOGS,3,2,{A_Chase},S_DOGS_RUN8}, // S_DOGS_RUN7 + {SPR_DOGS,3,2,{A_Chase},S_DOGS_RUN1}, // S_DOGS_RUN8 + {SPR_DOGS,4,8,{A_FaceTarget},S_DOGS_ATK2}, // S_DOGS_ATK1 + {SPR_DOGS,5,8,{A_FaceTarget},S_DOGS_ATK3}, // S_DOGS_ATK2 + {SPR_DOGS,6,8,{A_SargAttack},S_DOGS_RUN1}, // S_DOGS_ATK3 + {SPR_DOGS,7,2,{NULL},S_DOGS_PAIN2}, // S_DOGS_PAIN + {SPR_DOGS,7,2,{A_Pain},S_DOGS_RUN1}, // S_DOGS_PAIN2 + {SPR_DOGS,8,8,{NULL},S_DOGS_DIE2}, // S_DOGS_DIE1 + {SPR_DOGS,9,8,{A_Scream},S_DOGS_DIE3}, // S_DOGS_DIE2 + {SPR_DOGS,10,4,{NULL},S_DOGS_DIE4}, // S_DOGS_DIE3 + {SPR_DOGS,11,4,{A_Fall},S_DOGS_DIE5}, // S_DOGS_DIE4 + {SPR_DOGS,12,4,{NULL},S_DOGS_DIE6}, // S_DOGS_DIE5 + {SPR_DOGS,13,-1,{NULL},S_NULL}, // S_DOGS_DIE6 + {SPR_DOGS,13,5,{NULL},S_DOGS_RAISE2}, // S_DOGS_RAISE1 + {SPR_DOGS,12,5,{NULL},S_DOGS_RAISE3}, // S_DOGS_RAISE2 + {SPR_DOGS,11,5,{NULL},S_DOGS_RAISE4}, // S_DOGS_RAISE3 + {SPR_DOGS,10,5,{NULL},S_DOGS_RAISE5}, // S_DOGS_RAISE4 + {SPR_DOGS,9,5,{NULL},S_DOGS_RAISE6}, // S_DOGS_RAISE5 + {SPR_DOGS,8,5,{NULL},S_DOGS_RUN1}, // S_DOGS_RAISE6 // killough 7/11/98: beta BFG begins here // S_OLDBFG1 #define BFGDELAY 1 -#define OLDBFG_1FRAMES(x) {SPR_BFGG,1,BFGDELAY,A_FireOldBFG,x+S_OLDBFG1+2}, +#define OLDBFG_1FRAMES(x) {SPR_BFGG,1,BFGDELAY,{A_FireOldBFG},x+S_OLDBFG1+2}, #define OLDBFG_2FRAMES(x) OLDBFG_1FRAMES(x) OLDBFG_1FRAMES(x+1) #define OLDBFG_4FRAMES(x) OLDBFG_2FRAMES(x) OLDBFG_2FRAMES(x+2) #define OLDBFG_8FRAMES(x) OLDBFG_4FRAMES(x) OLDBFG_4FRAMES(x+4) - {SPR_BFGG,0,10,A_BFGsound,S_OLDBFG1+1}, // S_OLDBFG1 + {SPR_BFGG,0,10,{A_BFGsound},S_OLDBFG1+1}, // S_OLDBFG1 OLDBFG_8FRAMES(0) OLDBFG_8FRAMES(8) @@ -1232,65 +1232,65 @@ state_t original_states[NUMSTATES] = { OLDBFG_8FRAMES(24) OLDBFG_8FRAMES(32) - {SPR_BFGG,1,0,A_Light0,S_OLDBFG43}, // S_OLDBFG42 - {SPR_BFGG,1,20,A_ReFire,S_BFG}, // S_OLDBFG43 + {SPR_BFGG,1,0,{A_Light0},S_OLDBFG43}, // S_OLDBFG42 + {SPR_BFGG,1,20,{A_ReFire},S_BFG}, // S_OLDBFG43 // killough 7/11/98: end of beta BFG // killough 7/19/98: First plasma fireball in the beta: - {SPR_PLS1,32768,6,NULL,S_PLS1BALL2}, // S_PLS1BALL - {SPR_PLS1,32769,6,NULL,S_PLS1BALL}, // S_PLS1BALL2 - {SPR_PLS1,32770,4,NULL,S_PLS1EXP2}, // S_PLS1EXP - {SPR_PLS1,32771,4,NULL,S_PLS1EXP3}, // S_PLS1EXP2 - {SPR_PLS1,32772,4,NULL,S_PLS1EXP4}, // S_PLS1EXP3 - {SPR_PLS1,32773,4,NULL,S_PLS1EXP5}, // S_PLS1EXP4 - {SPR_PLS1,32774,4,NULL,S_NULL}, // S_PLS1EXP5 + {SPR_PLS1,32768,6,{NULL},S_PLS1BALL2}, // S_PLS1BALL + {SPR_PLS1,32769,6,{NULL},S_PLS1BALL}, // S_PLS1BALL2 + {SPR_PLS1,32770,4,{NULL},S_PLS1EXP2}, // S_PLS1EXP + {SPR_PLS1,32771,4,{NULL},S_PLS1EXP3}, // S_PLS1EXP2 + {SPR_PLS1,32772,4,{NULL},S_PLS1EXP4}, // S_PLS1EXP3 + {SPR_PLS1,32773,4,{NULL},S_PLS1EXP5}, // S_PLS1EXP4 + {SPR_PLS1,32774,4,{NULL},S_NULL}, // S_PLS1EXP5 // killough 7/19/98: Second plasma fireball in the beta: - {SPR_PLS2,32768,4,NULL,S_PLS2BALL2}, // S_PLS2BALL - {SPR_PLS2,32769,4,NULL,S_PLS2BALL}, // S_PLS2BALL2 - {SPR_PLS2,32770,6,NULL,S_PLS2BALLX2}, // S_PLS2BALLX1 - {SPR_PLS2,32771,6,NULL,S_PLS2BALLX3}, // S_PLS2BALLX2 - {SPR_PLS2,32772,6,NULL,S_NULL}, // S_PLS2BALLX3 + {SPR_PLS2,32768,4,{NULL},S_PLS2BALL2}, // S_PLS2BALL + {SPR_PLS2,32769,4,{NULL},S_PLS2BALL}, // S_PLS2BALL2 + {SPR_PLS2,32770,6,{NULL},S_PLS2BALLX2}, // S_PLS2BALLX1 + {SPR_PLS2,32771,6,{NULL},S_PLS2BALLX3}, // S_PLS2BALLX2 + {SPR_PLS2,32772,6,{NULL},S_NULL}, // S_PLS2BALLX3 - {SPR_BON3,0,6,NULL,S_BON3}, // S_BON3 // killough 7/11/98: - {SPR_BON4,0,6,NULL,S_BON4}, // S_BON4 // beta bonus items + {SPR_BON3,0,6,{NULL},S_BON3}, // S_BON3 // killough 7/11/98: + {SPR_BON4,0,6,{NULL},S_BON4}, // S_BON4 // beta bonus items // killough 10/98: beta lost souls attacked from a distance, // animated with colors, and stayed in the air when killed. // This is an approximation, but I'm sure it can be improved. // spawnstate - {SPR_SKUL,0,10,A_Look,S_BSKUL_STND}, // S_BSKUL_STND + {SPR_SKUL,0,10,{A_Look},S_BSKUL_STND}, // S_BSKUL_STND // chasestate - {SPR_SKUL,1,5,A_Chase,S_BSKUL_RUN2}, // S_BSKUL_RUN1 - {SPR_SKUL,2,5,A_Chase,S_BSKUL_RUN3}, // S_BSKUL_RUN2 - {SPR_SKUL,3,5,A_Chase,S_BSKUL_RUN4}, // S_BSKUL_RUN3 - {SPR_SKUL,0,5,A_Chase,S_BSKUL_RUN1}, // S_BSKUL_RUN4 + {SPR_SKUL,1,5,{A_Chase},S_BSKUL_RUN2}, // S_BSKUL_RUN1 + {SPR_SKUL,2,5,{A_Chase},S_BSKUL_RUN3}, // S_BSKUL_RUN2 + {SPR_SKUL,3,5,{A_Chase},S_BSKUL_RUN4}, // S_BSKUL_RUN3 + {SPR_SKUL,0,5,{A_Chase},S_BSKUL_RUN1}, // S_BSKUL_RUN4 // missilestate - {SPR_SKUL,4,4,A_FaceTarget,S_BSKUL_ATK2}, // S_BSKUL_ATK1 - {SPR_SKUL,5,5,A_BetaSkullAttack,S_BSKUL_ATK3}, // S_BSKUL_ATK2 - {SPR_SKUL,5,4,NULL,S_BSKUL_RUN1}, // S_BSKUL_ATK3 + {SPR_SKUL,4,4,{A_FaceTarget},S_BSKUL_ATK2}, // S_BSKUL_ATK1 + {SPR_SKUL,5,5,{A_BetaSkullAttack},S_BSKUL_ATK3}, // S_BSKUL_ATK2 + {SPR_SKUL,5,4,{NULL},S_BSKUL_RUN1}, // S_BSKUL_ATK3 // painstate - {SPR_SKUL,6,4,NULL,S_BSKUL_PAIN2}, // S_BSKUL_PAIN1 - {SPR_SKUL,7,2,A_Pain,S_BSKUL_RUN1}, // S_BSKUL_PAIN2 - {SPR_SKUL,8,4,NULL,S_BSKUL_RUN1}, // S_BSKUL_PAIN3 + {SPR_SKUL,6,4,{NULL},S_BSKUL_PAIN2}, // S_BSKUL_PAIN1 + {SPR_SKUL,7,2,{A_Pain},S_BSKUL_RUN1}, // S_BSKUL_PAIN2 + {SPR_SKUL,8,4,{NULL},S_BSKUL_RUN1}, // S_BSKUL_PAIN3 // deathstate - {SPR_SKUL, 9,5,NULL,S_BSKUL_DIE2}, // S_BSKUL_DIE1 - {SPR_SKUL,10,5,NULL,S_BSKUL_DIE3}, // S_BSKUL_DIE2 - {SPR_SKUL,11,5,NULL,S_BSKUL_DIE4}, // S_BSKUL_DIE3 - {SPR_SKUL,12,5,NULL,S_BSKUL_DIE5}, // S_BSKUL_DIE4 - {SPR_SKUL,13,5,A_Scream,S_BSKUL_DIE6}, // S_BSKUL_DIE5 - {SPR_SKUL,14,5,NULL,S_BSKUL_DIE7}, // S_BSKUL_DIE6 - {SPR_SKUL,15,5,A_Fall,S_BSKUL_DIE8}, // S_BSKUL_DIE7 - {SPR_SKUL,16,5,A_Stop,S_BSKUL_DIE8}, // S_BSKUL_DIE8 + {SPR_SKUL, 9,5,{NULL},S_BSKUL_DIE2}, // S_BSKUL_DIE1 + {SPR_SKUL,10,5,{NULL},S_BSKUL_DIE3}, // S_BSKUL_DIE2 + {SPR_SKUL,11,5,{NULL},S_BSKUL_DIE4}, // S_BSKUL_DIE3 + {SPR_SKUL,12,5,{NULL},S_BSKUL_DIE5}, // S_BSKUL_DIE4 + {SPR_SKUL,13,5,{A_Scream},S_BSKUL_DIE6}, // S_BSKUL_DIE5 + {SPR_SKUL,14,5,{NULL},S_BSKUL_DIE7}, // S_BSKUL_DIE6 + {SPR_SKUL,15,5,{A_Fall},S_BSKUL_DIE8}, // S_BSKUL_DIE7 + {SPR_SKUL,16,5,{A_Stop},S_BSKUL_DIE8}, // S_BSKUL_DIE8 // killough 10/98: mushroom effect - {SPR_MISL,32769,8,A_Mushroom,S_EXPLODE2}, // S_MUSHROOM + {SPR_MISL,32769,8,{A_Mushroom},S_EXPLODE2}, // S_MUSHROOM }; // ******************************************************************** diff --git a/src/info.h b/src/info.h index 0e3af516..5e12b654 100644 --- a/src/info.h +++ b/src/info.h @@ -1268,7 +1268,7 @@ typedef struct spritenum_t sprite; // sprite number to show long frame; // which frame/subframe of the sprite is shown long tics; // number of gametics this frame should last - void (*action)(); // code pointer to function for action if any + actionf_t action; // code pointer to function for action if any statenum_t nextstate; // linked list pointer to next state or zero long misc1, misc2; // used for psprite positioning long args[MAXSTATEARGS]; // [XA] mbf21 args diff --git a/src/m_cheat.c b/src/m_cheat.c index 51cd89b6..a37a843a 100644 --- a/src/m_cheat.c +++ b/src/m_cheat.c @@ -639,7 +639,7 @@ static void cheat_massacre() // jff 2/01/98 kill all monsters P_MapStart(); do while ((currentthinker=currentthinker->next)!=&thinkercap) - if (currentthinker->function == P_MobjThinker && + if (currentthinker->function.p1 == (actionf_p1)P_MobjThinker && !(((mobj_t *) currentthinker)->flags & mask) && // killough 7/20/98 (((mobj_t *) currentthinker)->flags & MF_COUNTKILL || ((mobj_t *) currentthinker)->type == MT_SKULL)) @@ -728,7 +728,7 @@ static void cheat_spechits() for (th = thinkercap.next ; th != &thinkercap ; th = th->next) { - if (th->function == P_MobjThinker) + if (th->function.p1 == (actionf_p1)P_MobjThinker) { mobj_t *mo = (mobj_t *) th; diff --git a/src/p_ceilng.c b/src/p_ceilng.c index 2376451a..b8a975b1 100644 --- a/src/p_ceilng.c +++ b/src/p_ceilng.c @@ -277,7 +277,7 @@ int EV_DoCeiling ceiling = Z_Malloc (sizeof(*ceiling), PU_LEVSPEC, 0); P_AddThinker (&ceiling->thinker); sec->ceilingdata = ceiling; //jff 2/22/98 - ceiling->thinker.function = T_MoveCeiling; + ceiling->thinker.function.p1 = (actionf_p1)T_MoveCeiling; ceiling->sector = sec; ceiling->crush = false; @@ -371,7 +371,7 @@ int P_ActivateInStasisCeiling(line_t *line) if (ceiling->tag == line->tag && ceiling->direction == 0) { ceiling->direction = ceiling->olddirection; - ceiling->thinker.function = T_MoveCeiling; + ceiling->thinker.function.p1 = (actionf_p1)T_MoveCeiling; //jff 4/5/98 return if activated rtn=1; } @@ -399,7 +399,7 @@ int EV_CeilingCrushStop(line_t* line) { ceiling->olddirection = ceiling->direction; ceiling->direction = 0; - ceiling->thinker.function = NULL; + ceiling->thinker.function.v = NULL; rtn=1; } } diff --git a/src/p_doors.c b/src/p_doors.c index df422af4..6c5edb75 100644 --- a/src/p_doors.c +++ b/src/p_doors.c @@ -317,7 +317,7 @@ int EV_DoDoor(line_t *line, vldoor_e type) P_AddThinker(&door->thinker); sec->ceilingdata = door; //jff 2/22/98 - door->thinker.function = T_VerticalDoor; + door->thinker.function.p1 = (actionf_p1)T_VerticalDoor; door->sector = sec; door->type = type; door->topwait = VDOORWAIT; @@ -477,11 +477,11 @@ int EV_VerticalDoor(line_t *line, mobj_t *thing) // [FG] DR doors corrupt other actions // http://prboom.sourceforge.net/mbf-bugs.html - if (door->thinker.function == T_VerticalDoor || !demo_compatibility) + if (door->thinker.function.p1 == (actionf_p1)T_VerticalDoor || !demo_compatibility) { door->direction = -1; // start going down immediately } - else if (door->thinker.function == T_PlatRaise) + else if (door->thinker.function.p1 == (actionf_p1)T_PlatRaise) { plat_t *plat = (plat_t *) door; plat->wait = -1; @@ -517,7 +517,7 @@ int EV_VerticalDoor(line_t *line, mobj_t *thing) door = Z_Malloc (sizeof(*door), PU_LEVSPEC, 0); P_AddThinker (&door->thinker); sec->ceilingdata = door; //jff 2/22/98 - door->thinker.function = T_VerticalDoor; + door->thinker.function.p1 = (actionf_p1)T_VerticalDoor; door->sector = sec; door->direction = 1; door->speed = VDOORSPEED; @@ -591,7 +591,7 @@ void P_SpawnDoorCloseIn30 (sector_t* sec) sec->ceilingdata = door; //jff 2/22/98 sec->special = 0; - door->thinker.function = T_VerticalDoor; + door->thinker.function.p1 = (actionf_p1)T_VerticalDoor; door->sector = sec; door->direction = 0; door->type = doorNormal; @@ -621,7 +621,7 @@ void P_SpawnDoorRaiseIn5Mins(sector_t *sec, int secnum) sec->ceilingdata = door; //jff 2/22/98 sec->special = 0; - door->thinker.function = T_VerticalDoor; + door->thinker.function.p1 = (actionf_p1)T_VerticalDoor; door->sector = sec; door->direction = 2; door->type = raiseIn5Mins; diff --git a/src/p_enemy.c b/src/p_enemy.c index b687eea9..7fb640c6 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -268,7 +268,7 @@ static boolean P_IsOnLift(const mobj_t *actor) int l; // Short-circuit: it's on a lift which is active. - if (sec->floordata && ((thinker_t *) sec->floordata)->function==T_PlatRaise) + if (sec->floordata && ((thinker_t *) sec->floordata)->function.p1==(actionf_p1)T_PlatRaise) return true; // Check to see if it's in a sector which can be activated as a lift. @@ -305,7 +305,7 @@ static int P_IsUnderDamage(mobj_t *actor) int dir = 0; for (seclist=actor->touching_sectorlist; seclist; seclist=seclist->m_tnext) if ((cl = seclist->m_sector->ceilingdata) && - cl->thinker.function == T_MoveCeiling) + cl->thinker.function.p1 == (actionf_p1)T_MoveCeiling) dir |= cl->direction; return dir; } @@ -2026,7 +2026,7 @@ void A_PainShootSkull(mobj_t *actor, angle_t angle) for (currentthinker = thinkercap.next; currentthinker != &thinkercap; currentthinker = currentthinker->next) - if ((currentthinker->function == P_MobjThinker) + if ((currentthinker->function.p1 == (actionf_p1)P_MobjThinker) && ((mobj_t *)currentthinker)->type == MT_SKULL) if (--count < 0) // killough 8/29/98: early exit return; @@ -2258,7 +2258,7 @@ void A_BossDeath(mobj_t *mo) // scan the remaining thinkers to see // if all bosses are dead for (th = thinkercap.next ; th != &thinkercap ; th=th->next) - if (th->function == P_MobjThinker) + if (th->function.p1 == (actionf_p1)P_MobjThinker) { mobj_t *mo2 = (mobj_t *) th; if (mo2 != mo && mo2->type == mo->type && mo2->health > 0) @@ -2365,7 +2365,7 @@ void A_BossDeath(mobj_t *mo) // scan the remaining thinkers to see // if all bosses are dead for (th = thinkercap.next ; th != &thinkercap ; th=th->next) - if (th->function == P_MobjThinker) + if (th->function.p1 == (actionf_p1)P_MobjThinker) { mobj_t *mo2 = (mobj_t *) th; if (mo2 != mo && mo2->type == mo->type && mo2->health > 0) @@ -2478,7 +2478,7 @@ void P_SpawnBrainTargets(void) // killough 3/26/98: renamed old function brain.easy = 0; // killough 3/26/98: always init easy to 0 for (thinker=thinkercap.next; thinker != &thinkercap; thinker=thinker->next) - if (thinker->function == P_MobjThinker) + if (thinker->function.p1 == (actionf_p1)P_MobjThinker) { mobj_t *m = (mobj_t *) thinker; @@ -2669,7 +2669,7 @@ void A_KeenDie(mobj_t* mo) // scan the remaining thinkers to see if all Keens are dead for (th = thinkercap.next ; th != &thinkercap ; th=th->next) - if (th->function == P_MobjThinker) + if (th->function.p1 == (actionf_p1)P_MobjThinker) { mobj_t *mo2 = (mobj_t *) th; if (mo2 != mo && mo2->type == mo->type && mo2->health > 0) diff --git a/src/p_floor.c b/src/p_floor.c index 89618551..0f59dfa1 100644 --- a/src/p_floor.c +++ b/src/p_floor.c @@ -454,7 +454,7 @@ int EV_DoFloor floor = Z_Malloc (sizeof(*floor), PU_LEVSPEC, 0); P_AddThinker (&floor->thinker); sec->floordata = floor; //jff 2/22/98 - floor->thinker.function = T_MoveFloor; + floor->thinker.function.p1 = (actionf_p1)T_MoveFloor; floor->type = floortype; floor->crush = false; @@ -761,7 +761,7 @@ int EV_BuildStairs floor = Z_Malloc (sizeof(*floor), PU_LEVSPEC, 0); P_AddThinker (&floor->thinker); sec->floordata = floor; - floor->thinker.function = T_MoveFloor; + floor->thinker.function.p1 = (actionf_p1)T_MoveFloor; floor->direction = 1; floor->sector = sec; floor->type = buildStair; //jff 3/31/98 do not leave uninited @@ -844,7 +844,7 @@ int EV_BuildStairs P_AddThinker (&floor->thinker); sec->floordata = floor; //jff 2/22/98 - floor->thinker.function = T_MoveFloor; + floor->thinker.function.p1 = (actionf_p1)T_MoveFloor; floor->direction = 1; floor->sector = sec; floor->speed = speed; @@ -941,7 +941,7 @@ int EV_DoDonut(line_t* line) floor = Z_Malloc (sizeof(*floor), PU_LEVSPEC, 0); P_AddThinker (&floor->thinker); s2->floordata = floor; //jff 2/22/98 - floor->thinker.function = T_MoveFloor; + floor->thinker.function.p1 = (actionf_p1)T_MoveFloor; floor->type = donutRaise; floor->crush = false; floor->direction = 1; @@ -955,7 +955,7 @@ int EV_DoDonut(line_t* line) floor = Z_Malloc (sizeof(*floor), PU_LEVSPEC, 0); P_AddThinker (&floor->thinker); s1->floordata = floor; //jff 2/22/98 - floor->thinker.function = T_MoveFloor; + floor->thinker.function.p1 = (actionf_p1)T_MoveFloor; floor->type = lowerFloor; floor->crush = false; floor->direction = -1; @@ -1003,7 +1003,7 @@ int EV_DoElevator P_AddThinker (&elevator->thinker); sec->floordata = elevator; //jff 2/22/98 sec->ceilingdata = elevator; //jff 2/22/98 - elevator->thinker.function = T_MoveElevator; + elevator->thinker.function.p1 = (actionf_p1)T_MoveElevator; elevator->type = elevtype; // set up the fields according to the type of elevator action diff --git a/src/p_genlin.c b/src/p_genlin.c index c3d38d7d..97535725 100644 --- a/src/p_genlin.c +++ b/src/p_genlin.c @@ -106,7 +106,7 @@ manual_floor: floor = Z_Malloc (sizeof(*floor), PU_LEVSPEC, 0); P_AddThinker (&floor->thinker); sec->floordata = floor; - floor->thinker.function = T_MoveFloor; + floor->thinker.function.p1 = (actionf_p1)T_MoveFloor; floor->crush = Crsh; floor->direction = Dirn? 1 : -1; floor->sector = sec; @@ -309,7 +309,7 @@ manual_ceiling: ceiling = Z_Malloc (sizeof(*ceiling), PU_LEVSPEC, 0); P_AddThinker (&ceiling->thinker); sec->ceilingdata = ceiling; //jff 2/22/98 - ceiling->thinker.function = T_MoveCeiling; + ceiling->thinker.function.p1 = (actionf_p1)T_MoveCeiling; ceiling->crush = Crsh; ceiling->direction = Dirn? 1 : -1; ceiling->sector = sec; @@ -522,7 +522,7 @@ manual_lift: plat->sector = sec; plat->sector->floordata = plat; - plat->thinker.function = T_PlatRaise; + plat->thinker.function.p1 = (actionf_p1)T_PlatRaise; plat->crush = false; plat->tag = line->tag; @@ -680,7 +680,7 @@ manual_stair: floor = Z_Malloc (sizeof(*floor), PU_LEVSPEC, 0); P_AddThinker (&floor->thinker); sec->floordata = floor; - floor->thinker.function = T_MoveFloor; + floor->thinker.function.p1 = (actionf_p1)T_MoveFloor; floor->direction = Dirn? 1 : -1; floor->sector = sec; @@ -784,7 +784,7 @@ manual_stair: P_AddThinker (&floor->thinker); sec->floordata = floor; - floor->thinker.function = T_MoveFloor; + floor->thinker.function.p1 = (actionf_p1)T_MoveFloor; floor->direction = Dirn? 1 : -1; floor->sector = sec; floor->speed = speed; @@ -866,7 +866,7 @@ manual_crusher: ceiling = Z_Malloc (sizeof(*ceiling), PU_LEVSPEC, 0); P_AddThinker (&ceiling->thinker); sec->ceilingdata = ceiling; //jff 2/22/98 - ceiling->thinker.function = T_MoveCeiling; + ceiling->thinker.function.p1 = (actionf_p1)T_MoveCeiling; ceiling->crush = true; ceiling->direction = -1; ceiling->sector = sec; @@ -962,7 +962,7 @@ manual_locked: P_AddThinker (&door->thinker); sec->ceilingdata = door; //jff 2/22/98 - door->thinker.function = T_VerticalDoor; + door->thinker.function.p1 = (actionf_p1)T_VerticalDoor; door->sector = sec; door->topwait = VDOORWAIT; door->line = line; @@ -1070,7 +1070,7 @@ manual_door: P_AddThinker (&door->thinker); sec->ceilingdata = door; //jff 2/22/98 - door->thinker.function = T_VerticalDoor; + door->thinker.function.p1 = (actionf_p1)T_VerticalDoor; door->sector = sec; // setup delay for door remaining open/closed switch(Dely) diff --git a/src/p_lights.c b/src/p_lights.c index 9371e10a..d7ebb8e2 100644 --- a/src/p_lights.c +++ b/src/p_lights.c @@ -181,7 +181,7 @@ void P_SpawnFireFlicker (sector_t* sector) P_AddThinker (&flick->thinker); - flick->thinker.function = T_FireFlicker; + flick->thinker.function.p1 = (actionf_p1)T_FireFlicker; flick->sector = sector; flick->maxlight = sector->lightlevel; flick->minlight = P_FindMinSurroundingLight(sector,sector->lightlevel)+16; @@ -207,7 +207,7 @@ void P_SpawnLightFlash (sector_t* sector) P_AddThinker (&flash->thinker); - flash->thinker.function = T_LightFlash; + flash->thinker.function.p1 = (actionf_p1)T_LightFlash; flash->sector = sector; flash->maxlight = sector->lightlevel; @@ -241,7 +241,7 @@ void P_SpawnStrobeFlash flash->sector = sector; flash->darktime = fastOrSlow; flash->brighttime = STROBEBRIGHT; - flash->thinker.function = T_StrobeFlash; + flash->thinker.function.p1 = (actionf_p1)T_StrobeFlash; flash->maxlight = sector->lightlevel; flash->minlight = P_FindMinSurroundingLight(sector, sector->lightlevel); @@ -276,7 +276,7 @@ void P_SpawnGlowingLight(sector_t* sector) g->sector = sector; g->minlight = P_FindMinSurroundingLight(sector,sector->lightlevel); g->maxlight = sector->lightlevel; - g->thinker.function = T_Glow; + g->thinker.function.p1 = (actionf_p1)T_Glow; g->direction = -1; sector->special &= ~31; //jff 3/14/98 clear non-generalized sector type diff --git a/src/p_mobj.c b/src/p_mobj.c index 4ddd6f88..509e3d0a 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -88,8 +88,8 @@ boolean P_SetMobjState(mobj_t* mobj,statenum_t state) // Modified handling. // Call action functions when the state is set - if (st->action) - st->action(mobj); + if (st->action.p1) + st->action.p1(mobj); seenstate[state] = 1 + st->nextstate; // killough 4/9/98 @@ -732,14 +732,14 @@ void P_MobjThinker (mobj_t* mobj) { P_XYMovement(mobj); mobj->intflags &= ~MIF_SCROLLING; - if (mobj->thinker.function == P_RemoveThinkerDelayed) // killough + if (mobj->thinker.function.p1 == (actionf_p1)P_RemoveThinkerDelayed) // killough return; // mobj was removed } if (mobj->z != mobj->floorz || mobj->momz) { P_ZMovement(mobj); - if (mobj->thinker.function == P_RemoveThinkerDelayed) // killough + if (mobj->thinker.function.p1 == (actionf_p1)P_RemoveThinkerDelayed) // killough return; // mobj was removed } else @@ -773,7 +773,7 @@ void P_MobjThinker (mobj_t* mobj) P_DamageMobj(mobj, NULL, NULL, 10000); // must have been removed - if (mobj->thinker.function != P_MobjThinker) + if (mobj->thinker.function.p1 != (actionf_p1)P_MobjThinker) return; } } @@ -863,7 +863,7 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type) mobj->z = z == ONFLOORZ ? mobj->floorz : z == ONCEILINGZ ? mobj->ceilingz - mobj->height : z; - mobj->thinker.function = P_MobjThinker; + mobj->thinker.function.p1 = (actionf_p1)P_MobjThinker; mobj->above_thing = mobj->below_thing = 0; // phares // for Boom friction code diff --git a/src/p_plats.c b/src/p_plats.c index 95ca4fe0..72a39c65 100644 --- a/src/p_plats.c +++ b/src/p_plats.c @@ -219,7 +219,7 @@ int EV_DoPlat plat->type = type; plat->sector = sec; plat->sector->floordata = plat; //jff 2/23/98 multiple thinkers - plat->thinker.function = T_PlatRaise; + plat->thinker.function.p1 = (actionf_p1)T_PlatRaise; plat->crush = false; plat->tag = line->tag; @@ -345,7 +345,7 @@ void P_ActivateInStasis(int tag) plat->status = plat->oldstatus==up? down : up; else plat->status = plat->oldstatus; - plat->thinker.function = T_PlatRaise; + plat->thinker.function.p1 = (actionf_p1)T_PlatRaise; } } } @@ -370,7 +370,7 @@ int EV_StopPlat(line_t* line) { plat->oldstatus = plat->status; // put it in stasis plat->status = in_stasis; - plat->thinker.function = NULL; + plat->thinker.function.v = NULL; } } return 1; diff --git a/src/p_pspr.c b/src/p_pspr.c index 845a6c58..d165365f 100644 --- a/src/p_pspr.c +++ b/src/p_pspr.c @@ -122,9 +122,9 @@ void P_SetPspritePtr(player_t *player, pspdef_t *psp, statenum_t stnum) // Call action routine. // Modified handling. - if (state->action) + if (state->action.p2) { - state->action(player, psp); + state->action.p2(player, psp); if (!psp->state) break; } @@ -1088,12 +1088,13 @@ void P_MovePsprites(player_t *player) psp->sx2 = FRACUNIT; - if (psp->state->action != A_Lower && psp->state->action != A_Raise) + if (psp->state->action.p2 != (actionf_p2)A_Lower && + psp->state->action.p2 != (actionf_p2)A_Raise) { last_sy = psp->sy2; psp->sy2 = 32 * FRACUNIT; } - else if (psp->state->action == A_Lower) + else if (psp->state->action.p2 == (actionf_p2)A_Lower) { // We want to move smoothly from where we were psp->sy2 -= (last_sy - 32 * FRACUNIT); @@ -1103,8 +1104,8 @@ void P_MovePsprites(player_t *player) { // [FG] don't center during lowering and raising states if (psp->state->misc1 || - psp->state->action == A_Lower || - psp->state->action == A_Raise) + psp->state->action.p2 == (actionf_p2)A_Lower || + psp->state->action.p2 == (actionf_p2)A_Raise) { } // [FG] not attacking means idle diff --git a/src/p_pspr.h b/src/p_pspr.h index 68390d0b..c4db3e5f 100644 --- a/src/p_pspr.h +++ b/src/p_pspr.h @@ -66,7 +66,7 @@ typedef enum NUMPSPRITES } psprnum_t; -typedef struct +typedef struct pspdef_s { state_t *state; // a NULL state means not active int tics; diff --git a/src/p_saveg.c b/src/p_saveg.c index 547fa125..f7b546dd 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -174,7 +174,7 @@ static int P_ThinkerToIndex(thinker_t* thinker) for (th = thinkercap.next, i = 0; th != &thinkercap; th = th->next) { - if (th->function == P_MobjThinker) + if (th->function.p1 == (actionf_p1)P_MobjThinker) { i++; if (th == thinker) @@ -196,7 +196,7 @@ static thinker_t* P_IndexToThinker(int index) for (th = thinkercap.next, i = 0; th != &thinkercap; th = th->next) { - if (th->function == P_MobjThinker) + if (th->function.p1 == (actionf_p1)P_MobjThinker) { i++; if (i == index) @@ -273,7 +273,7 @@ static void saveg_read_thinker_t(thinker_t *str) str->next = saveg_readp(); // think_t function; - str->function = (think_t)(intptr_t)saveg_readp(); + str->function.v = (actionf_v)(intptr_t)saveg_readp(); // struct thinker_s* cnext; str->cnext = saveg_readp(); @@ -2123,7 +2123,7 @@ void P_ArchiveThinkers (void) // the prev field as a placeholder, since it can be restored later. for (th = thinkercap.next ; th != &thinkercap ; th=th->next) - if (th->function == P_MobjThinker) + if (th->function.p1 == (actionf_p1)P_MobjThinker) th->prev = (thinker_t *) ++size; // check that enough room is available in savegame buffer @@ -2132,7 +2132,7 @@ void P_ArchiveThinkers (void) // save off the current thinkers for (th = thinkercap.next ; th != &thinkercap ; th=th->next) - if (th->function == P_MobjThinker) + if (th->function.p1 == (actionf_p1)P_MobjThinker) { mobj_t *mobj = &tmp; memcpy (mobj, th, sizeof(*mobj)); @@ -2145,13 +2145,13 @@ void P_ArchiveThinkers (void) // mobj thinker. if (mobj->target) - mobj->target = mobj->target->thinker.function == - P_MobjThinker ? + mobj->target = mobj->target->thinker.function.p1 == + (actionf_p1)P_MobjThinker ? (mobj_t *) mobj->target->thinker.prev : NULL; if (mobj->tracer) - mobj->tracer = mobj->tracer->thinker.function == - P_MobjThinker ? + mobj->tracer = mobj->tracer->thinker.function.p1 == + (actionf_p1)P_MobjThinker ? (mobj_t *) mobj->tracer->thinker.prev : NULL; // killough 2/14/98: new field: save last known enemy. Prevents @@ -2159,20 +2159,20 @@ void P_ArchiveThinkers (void) // seeing player anymore. if (mobj->lastenemy) - mobj->lastenemy = mobj->lastenemy->thinker.function == - P_MobjThinker ? + mobj->lastenemy = mobj->lastenemy->thinker.function.p1 == + (actionf_p1)P_MobjThinker ? (mobj_t *) mobj->lastenemy->thinker.prev : NULL; // killough 2/14/98: end changes if (mobj->above_thing) // phares - mobj->above_thing = mobj->above_thing->thinker.function == - P_MobjThinker ? + mobj->above_thing = mobj->above_thing->thinker.function.p1 == + (actionf_p1)P_MobjThinker ? (mobj_t *) mobj->above_thing->thinker.prev : NULL; if (mobj->below_thing) - mobj->below_thing = mobj->below_thing->thinker.function == - P_MobjThinker ? + mobj->below_thing = mobj->below_thing->thinker.function.p1 == + (actionf_p1)P_MobjThinker ? (mobj_t *) mobj->below_thing->thinker.prev : NULL; // phares if (mobj->player) @@ -2200,7 +2200,7 @@ void P_ArchiveThinkers (void) // or player corpses waiting for deferred removal will be saved as // raw pointer values instead of twizzled numbers, causing a crash // on savegame load! - target = target->thinker.function == P_MobjThinker ? + target = target->thinker.function.p1 == (actionf_p1)P_MobjThinker ? (mobj_t *)target->thinker.prev : NULL; } @@ -2252,7 +2252,7 @@ void P_UnArchiveThinkers (void) for (th = thinkercap.next; th != &thinkercap; ) { thinker_t *next = th->next; - if (th->function == P_MobjThinker) + if (th->function.p1 == (actionf_p1)P_MobjThinker) P_RemoveMobj ((mobj_t *) th); else Z_Free (th); @@ -2302,7 +2302,7 @@ void P_UnArchiveThinkers (void) // mobj->floorz = mobj->subsector->sector->floorheight; // mobj->ceilingz = mobj->subsector->sector->ceilingheight; - mobj->thinker.function = P_MobjThinker; + mobj->thinker.function.p1 = (actionf_p1)P_MobjThinker; P_AddThinker (&mobj->thinker); } @@ -2396,7 +2396,7 @@ void P_ArchiveSpecials (void) // save off the current thinkers (memory size calculation -- killough) for (th = thinkercap.next ; th != &thinkercap ; th=th->next) - if (!th->function) + if (!th->function.v) { platlist_t *pl; ceilinglist_t *cl; //jff 2/22/98 need this for ceilings too now @@ -2416,18 +2416,18 @@ void P_ArchiveSpecials (void) } else size += - th->function==T_MoveCeiling ? 4+sizeof(ceiling_t) : - th->function==T_VerticalDoor ? 4+sizeof(vldoor_t) : - th->function==T_MoveFloor ? 4+sizeof(floormove_t): - th->function==T_PlatRaise ? 4+sizeof(plat_t) : - th->function==T_LightFlash ? 4+sizeof(lightflash_t): - th->function==T_StrobeFlash ? 4+sizeof(strobe_t) : - th->function==T_Glow ? 4+sizeof(glow_t) : - th->function==T_MoveElevator ? 4+sizeof(elevator_t): - th->function==T_Scroll ? 4+sizeof(scroll_t) : - th->function==T_Pusher ? 4+sizeof(pusher_t) : - th->function==T_FireFlicker? 4+sizeof(fireflicker_t) : - th->function==T_Friction ? 4+sizeof(friction_t) : + th->function.p1==(actionf_p1)T_MoveCeiling ? 4+sizeof(ceiling_t) : + th->function.p1==(actionf_p1)T_VerticalDoor ? 4+sizeof(vldoor_t) : + th->function.p1==(actionf_p1)T_MoveFloor ? 4+sizeof(floormove_t): + th->function.p1==(actionf_p1)T_PlatRaise ? 4+sizeof(plat_t) : + th->function.p1==(actionf_p1)T_LightFlash ? 4+sizeof(lightflash_t): + th->function.p1==(actionf_p1)T_StrobeFlash ? 4+sizeof(strobe_t) : + th->function.p1==(actionf_p1)T_Glow ? 4+sizeof(glow_t) : + th->function.p1==(actionf_p1)T_MoveElevator ? 4+sizeof(elevator_t): + th->function.p1==(actionf_p1)T_Scroll ? 4+sizeof(scroll_t) : + th->function.p1==(actionf_p1)T_Pusher ? 4+sizeof(pusher_t) : + th->function.p1==(actionf_p1)T_FireFlicker ? 4+sizeof(fireflicker_t) : + th->function.p1==(actionf_p1)T_Friction ? 4+sizeof(friction_t) : 0; CheckSaveGame(size); // killough @@ -2435,7 +2435,7 @@ void P_ArchiveSpecials (void) // save off the current thinkers for (th=thinkercap.next; th!=&thinkercap; th=th->next) { - if (!th->function) + if (!th->function.v) { platlist_t *pl; ceilinglist_t *cl; //jff 2/22/98 add iter variable for ceilings @@ -2456,7 +2456,7 @@ void P_ArchiveSpecials (void) continue; } - if (th->function == T_MoveCeiling) + if (th->function.p1 == (actionf_p1)T_MoveCeiling) { ceiling: // killough 2/14/98 saveg_write8(tc_ceiling); @@ -2465,7 +2465,7 @@ void P_ArchiveSpecials (void) continue; } - if (th->function == T_VerticalDoor) + if (th->function.p1 == (actionf_p1)T_VerticalDoor) { saveg_write8(tc_door); saveg_write_pad(); @@ -2473,7 +2473,7 @@ void P_ArchiveSpecials (void) continue; } - if (th->function == T_MoveFloor) + if (th->function.p1 == (actionf_p1)T_MoveFloor) { saveg_write8(tc_floor); saveg_write_pad(); @@ -2481,7 +2481,7 @@ void P_ArchiveSpecials (void) continue; } - if (th->function == T_PlatRaise) + if (th->function.p1 == (actionf_p1)T_PlatRaise) { plat: // killough 2/14/98: added fix for original plat height above saveg_write8(tc_plat); @@ -2490,7 +2490,7 @@ void P_ArchiveSpecials (void) continue; } - if (th->function == T_LightFlash) + if (th->function.p1 == (actionf_p1)T_LightFlash) { saveg_write8(tc_flash); saveg_write_pad(); @@ -2498,7 +2498,7 @@ void P_ArchiveSpecials (void) continue; } - if (th->function == T_StrobeFlash) + if (th->function.p1 == (actionf_p1)T_StrobeFlash) { saveg_write8(tc_strobe); saveg_write_pad(); @@ -2506,7 +2506,7 @@ void P_ArchiveSpecials (void) continue; } - if (th->function == T_Glow) + if (th->function.p1 == (actionf_p1)T_Glow) { saveg_write8(tc_glow); saveg_write_pad(); @@ -2515,7 +2515,7 @@ void P_ArchiveSpecials (void) } // killough 10/4/98: save flickers - if (th->function == T_FireFlicker) + if (th->function.p1 == (actionf_p1)T_FireFlicker) { saveg_write8(tc_flicker); saveg_write_pad(); @@ -2524,7 +2524,7 @@ void P_ArchiveSpecials (void) } //jff 2/22/98 new case for elevators - if (th->function == T_MoveElevator) + if (th->function.p1 == (actionf_p1)T_MoveElevator) { saveg_write8(tc_elevator); saveg_write_pad(); @@ -2533,7 +2533,7 @@ void P_ArchiveSpecials (void) } // killough 3/7/98: Scroll effect thinkers - if (th->function == T_Scroll) + if (th->function.p1 == (actionf_p1)T_Scroll) { saveg_write8(tc_scroll); saveg_write_scroll_t((scroll_t *) th); @@ -2542,7 +2542,7 @@ void P_ArchiveSpecials (void) // phares 3/22/98: Push/Pull effect thinkers - if (th->function == T_Pusher) + if (th->function.p1 == (actionf_p1)T_Pusher) { saveg_write8(tc_pusher); saveg_write_pusher_t((pusher_t *) th); @@ -2550,7 +2550,7 @@ void P_ArchiveSpecials (void) } // store friction for complevel Boom - if (th->function == T_Friction) + if (th->function.p1 == (actionf_p1)T_Friction) { saveg_write8(tc_friction); saveg_write_pad(); @@ -2582,8 +2582,8 @@ void P_UnArchiveSpecials (void) saveg_read_ceiling_t(ceiling); ceiling->sector->ceilingdata = ceiling; //jff 2/22/98 - if (ceiling->thinker.function) - ceiling->thinker.function = T_MoveCeiling; + if (ceiling->thinker.function.p1) + ceiling->thinker.function.p1 = (actionf_p1)T_MoveCeiling; P_AddThinker (&ceiling->thinker); P_AddActiveCeiling(ceiling); @@ -2600,7 +2600,7 @@ void P_UnArchiveSpecials (void) door->line = (size_t)door->line!=-1? &lines[(size_t)door->line] : NULL; door->sector->ceilingdata = door; //jff 2/22/98 - door->thinker.function = T_VerticalDoor; + door->thinker.function.p1 = (actionf_p1)T_VerticalDoor; P_AddThinker (&door->thinker); break; } @@ -2611,7 +2611,7 @@ void P_UnArchiveSpecials (void) floormove_t *floor = Z_Malloc (sizeof(*floor), PU_LEVEL, NULL); saveg_read_floormove_t(floor); floor->sector->floordata = floor; //jff 2/22/98 - floor->thinker.function = T_MoveFloor; + floor->thinker.function.p1 = (actionf_p1)T_MoveFloor; P_AddThinker (&floor->thinker); break; } @@ -2623,8 +2623,8 @@ void P_UnArchiveSpecials (void) saveg_read_plat_t(plat); plat->sector->floordata = plat; //jff 2/22/98 - if (plat->thinker.function) - plat->thinker.function = T_PlatRaise; + if (plat->thinker.function.p1) + plat->thinker.function.p1 = (actionf_p1)T_PlatRaise; P_AddThinker (&plat->thinker); P_AddActivePlat(plat); @@ -2636,7 +2636,7 @@ void P_UnArchiveSpecials (void) { lightflash_t *flash = Z_Malloc (sizeof(*flash), PU_LEVEL, NULL); saveg_read_lightflash_t(flash); - flash->thinker.function = T_LightFlash; + flash->thinker.function.p1 = (actionf_p1)T_LightFlash; P_AddThinker (&flash->thinker); break; } @@ -2646,7 +2646,7 @@ void P_UnArchiveSpecials (void) { strobe_t *strobe = Z_Malloc (sizeof(*strobe), PU_LEVEL, NULL); saveg_read_strobe_t(strobe); - strobe->thinker.function = T_StrobeFlash; + strobe->thinker.function.p1 = (actionf_p1)T_StrobeFlash; P_AddThinker (&strobe->thinker); break; } @@ -2656,7 +2656,7 @@ void P_UnArchiveSpecials (void) { glow_t *glow = Z_Malloc (sizeof(*glow), PU_LEVEL, NULL); saveg_read_glow_t(glow); - glow->thinker.function = T_Glow; + glow->thinker.function.p1 = (actionf_p1)T_Glow; P_AddThinker (&glow->thinker); break; } @@ -2666,7 +2666,7 @@ void P_UnArchiveSpecials (void) { fireflicker_t *flicker = Z_Malloc (sizeof(*flicker), PU_LEVEL, NULL); saveg_read_fireflicker_t(flicker); - flicker->thinker.function = T_FireFlicker; + flicker->thinker.function.p1 = (actionf_p1)T_FireFlicker; P_AddThinker (&flicker->thinker); break; } @@ -2679,7 +2679,7 @@ void P_UnArchiveSpecials (void) saveg_read_elevator_t(elevator); elevator->sector->floordata = elevator; //jff 2/22/98 elevator->sector->ceilingdata = elevator; //jff 2/22/98 - elevator->thinker.function = T_MoveElevator; + elevator->thinker.function.p1 = (actionf_p1)T_MoveElevator; P_AddThinker (&elevator->thinker); break; } @@ -2688,7 +2688,7 @@ void P_UnArchiveSpecials (void) { scroll_t *scroll = Z_Malloc (sizeof(scroll_t), PU_LEVEL, NULL); saveg_read_scroll_t(scroll); - scroll->thinker.function = T_Scroll; + scroll->thinker.function.p1 = (actionf_p1)T_Scroll; P_AddThinker(&scroll->thinker); break; } @@ -2697,7 +2697,7 @@ void P_UnArchiveSpecials (void) { pusher_t *pusher = Z_Malloc (sizeof(pusher_t), PU_LEVEL, NULL); saveg_read_pusher_t(pusher); - pusher->thinker.function = T_Pusher; + pusher->thinker.function.p1 = (actionf_p1)T_Pusher; // can't convert from index to pointer, old save version if (pusher->source == NULL) { @@ -2716,7 +2716,7 @@ void P_UnArchiveSpecials (void) { friction_t *friction = Z_Malloc (sizeof(friction_t), PU_LEVEL, NULL); saveg_read_friction_t(friction); - friction->thinker.function = T_Friction; + friction->thinker.function.p1 = (actionf_p1)T_Friction; P_AddThinker(&friction->thinker); break; } diff --git a/src/p_spec.c b/src/p_spec.c index 5baed02c..a0108aa8 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -2660,7 +2660,7 @@ static void Add_Scroller(int type, fixed_t dx, fixed_t dy, int control, int affectee, int accel) { scroll_t *s = Z_Malloc(sizeof *s, PU_LEVSPEC, 0); - s->thinker.function = T_Scroll; + s->thinker.function.p1 = (actionf_p1)T_Scroll; s->type = type; s->dx = dx; s->dy = dy; @@ -2823,7 +2823,7 @@ static void Add_Friction(int friction, int movefactor, int affectee) { friction_t *f = Z_Malloc(sizeof *f, PU_LEVSPEC, 0); - f->thinker.function/*.acp1*/ = /*(actionf_p1) */T_Friction; + f->thinker.function.p1 = (actionf_p1)T_Friction; f->friction = friction; f->movefactor = movefactor; f->affectee = affectee; @@ -3054,7 +3054,7 @@ static void Add_Pusher(int type, int x_mag, int y_mag, { pusher_t *p = Z_Malloc(sizeof *p, PU_LEVSPEC, 0); - p->thinker.function = T_Pusher; + p->thinker.function.p1 = (actionf_p1)T_Pusher; p->source = source; p->type = type; p->x_mag = x_mag>>FRACBITS; diff --git a/src/p_telept.c b/src/p_telept.c index daa362d3..999becfd 100644 --- a/src/p_telept.c +++ b/src/p_telept.c @@ -58,7 +58,7 @@ int EV_Teleport(line_t *line, int side, mobj_t *thing) for (i = -1; (i = P_FindSectorFromLineTag(line, i)) >= 0;) for (thinker=thinkercap.next; thinker!=&thinkercap; thinker=thinker->next) - if (thinker->function == P_MobjThinker && + if (thinker->function.p1 == (actionf_p1)P_MobjThinker && (m = (mobj_t *) thinker)->type == MT_TELEPORTMAN && m->subsector->sector-sectors == i) { @@ -133,7 +133,7 @@ int EV_SilentTeleport(line_t *line, int side, mobj_t *thing) for (i = -1; (i = P_FindSectorFromLineTag(line, i)) >= 0;) for (th = thinkercap.next; th != &thinkercap; th = th->next) - if (th->function == P_MobjThinker && + if (th->function.p1 == (actionf_p1)P_MobjThinker && (m = (mobj_t *) th)->type == MT_TELEPORTMAN && m->subsector->sector-sectors == i) { diff --git a/src/p_tick.c b/src/p_tick.c index 03bc4b2b..3c4dde6c 100644 --- a/src/p_tick.c +++ b/src/p_tick.c @@ -86,8 +86,8 @@ void P_UpdateThinker(thinker_t *thinker) // find the class the thinker belongs to // haleyjd 07/12/03: don't use "class" as a variable name - int tclass = thinker->function == P_RemoveThinkerDelayed ? th_delete : - thinker->function == P_MobjThinker && + int tclass = thinker->function.p1 == (actionf_p1)P_RemoveThinkerDelayed ? th_delete : + thinker->function.p1 == (actionf_p1)P_MobjThinker && ((mobj_t *) thinker)->health > 0 && (((mobj_t *) thinker)->flags & MF_COUNTKILL || ((mobj_t *) thinker)->type == MT_SKULL) ? @@ -171,7 +171,7 @@ void P_RemoveThinkerDelayed(thinker_t *thinker) // void P_RemoveThinker(thinker_t *thinker) { - thinker->function = P_RemoveThinkerDelayed; + thinker->function.p1 = (actionf_p1)P_RemoveThinkerDelayed; // killough 8/29/98: remove immediately from threaded list @@ -237,8 +237,8 @@ static void P_RunThinkers (void) for (currentthinker = thinkercap.next; currentthinker != &thinkercap; currentthinker = currentthinker->next) - if (currentthinker->function) - currentthinker->function(currentthinker); + if (currentthinker->function.p1) + currentthinker->function.p1(currentthinker); // [crispy] support MUSINFO lump (dynamic music changing) T_MusInfo(); diff --git a/src/r_data.c b/src/r_data.c index 26d20876..ef29df64 100644 --- a/src/r_data.c +++ b/src/r_data.c @@ -1135,7 +1135,7 @@ void R_PrecacheLevel(void) { thinker_t *th; for (th = thinkercap.next ; th != &thinkercap ; th=th->next) - if (th->function == P_MobjThinker) + if (th->function.p1 == (actionf_p1)P_MobjThinker) hitlist[((mobj_t *)th)->sprite] = 1; }