SRB2/src/info.h
2023-11-13 12:01:19 -03:00

5205 lines
93 KiB
C

// SONIC ROBO BLAST 2
//-----------------------------------------------------------------------------
// Copyright (C) 1993-1996 by id Software, Inc.
// Copyright (C) 1998-2000 by DooM Legacy Team.
// Copyright (C) 1999-2023 by Sonic Team Junior.
//
// This program is free software distributed under the
// terms of the GNU General Public License, version 2.
// See the 'LICENSE' file for more details.
//-----------------------------------------------------------------------------
/// \file info.h
/// \brief Thing frame/state LUT
#ifndef __INFO__
#define __INFO__
// Needed for action function pointer handling.
#include "d_think.h"
#include "sounds.h"
#include "m_fixed.h"
#include "dehacked.h" // MAX_ACTION_RECURSION
// deh_tables.c now has lists for the more named enums! PLEASE keep them up to date!
// For great modding!!
// IMPORTANT!
// DO NOT FORGET TO SYNC THIS LIST WITH THE ACTIONPOINTERS ARRAY IN DEH_TABLES.C
enum actionnum
{
A_EXPLODE = 0,
A_PAIN,
A_FALL,
A_MONITORPOP,
A_GOLDMONITORPOP,
A_GOLDMONITORRESTORE,
A_GOLDMONITORSPARKLE,
A_LOOK,
A_CHASE,
A_FACESTABCHASE,
A_FACESTABREV,
A_FACESTABHURL,
A_FACESTABMISS,
A_STATUEBURST,
A_FACETARGET,
A_FACETRACER,
A_SCREAM,
A_BOSSDEATH,
A_SETSHADOWSCALE,
A_SHADOWSCREAM,
A_CUSTOMPOWER,
A_GIVEWEAPON,
A_RINGBOX,
A_INVINCIBILITY,
A_SUPERSNEAKERS,
A_BUNNYHOP,
A_BUBBLESPAWN,
A_FANBUBBLESPAWN,
A_BUBBLERISE,
A_BUBBLECHECK,
A_AWARDSCORE,
A_EXTRALIFE,
A_GIVESHIELD,
A_GRAVITYBOX,
A_SCORERISE,
A_ATTRACTCHASE,
A_DROPMINE,
A_FISHJUMP,
A_THROWNRING,
A_SETSOLIDSTEAM,
A_UNSETSOLIDSTEAM,
A_SIGNSPIN,
A_SIGNPLAYER,
A_OVERLAYTHINK,
A_JETCHASE,
A_JETBTHINK,
A_JETGTHINK,
A_JETGSHOOT,
A_SHOOTBULLET,
A_MINUSDIGGING,
A_MINUSPOPUP,
A_MINUSCHECK,
A_CHICKENCHECK,
A_MOUSETHINK,
A_DETONCHASE,
A_CAPECHASE,
A_ROTATESPIKEBALL,
A_SLINGAPPEAR,
A_UNIDUSBALL,
A_ROCKSPAWN,
A_SETFUSE,
A_CRAWLACOMMANDERTHINK,
A_SMOKETRAILER,
A_RINGEXPLODE,
A_OLDRINGEXPLODE,
A_MIXUP,
A_RECYCLEPOWERS,
A_BOSS1CHASE,
A_FOCUSTARGET,
A_BOSS2CHASE,
A_BOSS2POGO,
A_BOSSZOOM,
A_BOSSSCREAM,
A_BOSS2TAKEDAMAGE,
A_BOSS7CHASE,
A_GOOPSPLAT,
A_BOSS2POGOSFX,
A_BOSS2POGOTARGET,
A_BOSSJETFUME,
A_EGGMANBOX,
A_TURRETFIRE,
A_SUPERTURRETFIRE,
A_TURRETSTOP,
A_JETJAWROAM,
A_JETJAWCHOMP,
A_POINTYTHINK,
A_CHECKBUDDY,
A_HOODFIRE,
A_HOODTHINK,
A_HOODFALL,
A_ARROWBONKS,
A_SNAILERTHINK,
A_SHARPCHASE,
A_SHARPSPIN,
A_SHARPDECEL,
A_CRUSHSTACEANWALK,
A_CRUSHSTACEANPUNCH,
A_CRUSHCLAWAIM,
A_CRUSHCLAWLAUNCH,
A_VULTUREVTOL,
A_VULTURECHECK,
A_VULTUREHOVER,
A_VULTUREBLAST,
A_VULTUREFLY,
A_SKIMCHASE,
A_1UPTHINKER,
A_SKULLATTACK,
A_LOBSHOT,
A_FIRESHOT,
A_SUPERFIRESHOT,
A_BOSSFIRESHOT,
A_BOSS7FIREMISSILES,
A_BOSS1LASER,
A_BOSS4REVERSE,
A_BOSS4SPEEDUP,
A_BOSS4RAISE,
A_SPARKFOLLOW,
A_BUZZFLY,
A_GUARDCHASE,
A_EGGSHIELD,
A_SETREACTIONTIME,
A_BOSS1SPIKEBALLS,
A_BOSS3TAKEDAMAGE,
A_BOSS3PATH,
A_BOSS3SHOCKTHINK,
A_SHOCKWAVE,
A_LINEDEFEXECUTE,
A_LINEDEFEXECUTEFROMARG,
A_PLAYSEESOUND,
A_PLAYATTACKSOUND,
A_PLAYACTIVESOUND,
A_SPAWNOBJECTABSOLUTE,
A_SPAWNOBJECTRELATIVE,
A_CHANGEANGLERELATIVE,
A_CHANGEANGLEABSOLUTE,
A_ROLLANGLE,
A_CHANGEROLLANGLERELATIVE,
A_CHANGEROLLANGLEABSOLUTE,
A_PLAYSOUND,
A_FINDTARGET,
A_FINDTRACER,
A_SETTICS,
A_SETRANDOMTICS,
A_CHANGECOLORRELATIVE,
A_CHANGECOLORABSOLUTE,
A_DYE,
A_MOVERELATIVE,
A_MOVEABSOLUTE,
A_THRUST,
A_ZTHRUST,
A_SETTARGETSTARGET,
A_SETOBJECTFLAGS,
A_SETOBJECTFLAGS2,
A_RANDOMSTATE,
A_RANDOMSTATERANGE,
A_STATERANGEBYANGLE,
A_STATERANGEBYPARAMETER,
A_DUALACTION,
A_REMOTEACTION,
A_TOGGLEFLAMEJET,
A_ORBITNIGHTS,
A_GHOSTME,
A_SETOBJECTSTATE,
A_SETOBJECTTYPESTATE,
A_KNOCKBACK,
A_PUSHAWAY,
A_RINGDRAIN,
A_SPLITSHOT,
A_MISSILESPLIT,
A_MULTISHOT,
A_INSTALOOP,
A_CUSTOM3DROTATE,
A_SEARCHFORPLAYERS,
A_CHECKRANDOM,
A_CHECKTARGETRINGS,
A_CHECKRINGS,
A_CHECKTOTALRINGS,
A_CHECKHEALTH,
A_CHECKRANGE,
A_CHECKHEIGHT,
A_CHECKTRUERANGE,
A_CHECKTHINGCOUNT,
A_CHECKAMBUSH,
A_CHECKCUSTOMVALUE,
A_CHECKCUSVALMEMO,
A_SETCUSTOMVALUE,
A_USECUSVALMEMO,
A_RELAYCUSTOMVALUE,
A_CUSVALACTION,
A_FORCESTOP,
A_FORCEWIN,
A_SPIKERETRACT,
A_INFOSTATE,
A_REPEAT,
A_SETSCALE,
A_REMOTEDAMAGE,
A_HOMINGCHASE,
A_TRAPSHOT,
A_VILETARGET,
A_VILEATTACK,
A_VILEFIRE,
A_BRAKCHASE,
A_BRAKFIRESHOT,
A_BRAKLOBSHOT,
A_NAPALMSCATTER,
A_SPAWNFRESHCOPY,
A_FLICKYSPAWN,
A_FLICKYCENTER,
A_FLICKYAIM,
A_FLICKYFLY,
A_FLICKYSOAR,
A_FLICKYCOAST,
A_FLICKYHOP,
A_FLICKYFLOUNDER,
A_FLICKYCHECK,
A_FLICKYHEIGHTCHECK,
A_FLICKYFLUTTER,
A_FLAMEPARTICLE,
A_FADEOVERLAY,
A_BOSS5JUMP,
A_LIGHTBEAMRESET,
A_MINEEXPLODE,
A_MINERANGE,
A_CONNECTTOGROUND,
A_SPAWNPARTICLERELATIVE,
A_MULTISHOTDIST,
A_WHOCARESIFYOURSONISABEE,
A_PARENTTRIESTOSLEEP,
A_CRYINGTOMOMMA,
A_CHECKFLAGS2,
A_BOSS5FINDWAYPOINT,
A_DONPCSKID,
A_DONPCPAIN,
A_PREPAREREPEAT,
A_BOSS5EXTRAREPEAT,
A_BOSS5CALM,
A_BOSS5CHECKONGROUND,
A_BOSS5CHECKFALLING,
A_BOSS5PINCHSHOT,
A_BOSS5MAKEITRAIN,
A_BOSS5MAKEJUNK,
A_LOOKFORBETTER,
A_BOSS5BOMBEXPLODE,
A_DUSTDEVILTHINK,
A_TNTEXPLODE,
A_DEBRISRANDOM,
A_TRAINCAMEO,
A_TRAINCAMEO2,
A_CANARIVOREGAS,
A_KILLSEGMENTS,
A_SNAPPERSPAWN,
A_SNAPPERTHINKER,
A_SALOONDOORSPAWN,
A_MINECARTSPARKTHINK,
A_MODULOTOSTATE,
A_LAVAFALLROCKS,
A_LAVAFALLLAVA,
A_FALLINGLAVACHECK,
A_FIRESHRINK,
A_SPAWNPTERABYTES,
A_PTERABYTEHOVER,
A_ROLLOUTSPAWN,
A_ROLLOUTROCK,
A_DRAGONBOMBERSPAWN,
A_DRAGONWING,
A_DRAGONSEGMENT,
A_CHANGEHEIGHT,
NUMACTIONS
};
// IMPORTANT NOTE: If you add/remove from this list of action
// functions, don't forget to update them in deh_tables.c!
void A_Explode();
void A_Pain();
void A_Fall();
void A_MonitorPop();
void A_GoldMonitorPop();
void A_GoldMonitorRestore();
void A_GoldMonitorSparkle();
void A_Look();
void A_Chase();
void A_FaceStabChase();
void A_FaceStabRev();
void A_FaceStabHurl();
void A_FaceStabMiss();
void A_StatueBurst();
void A_FaceTarget();
void A_FaceTracer();
void A_Scream();
void A_BossDeath();
void A_SetShadowScale();
void A_ShadowScream(); // MARIA!!!!!!
void A_CustomPower(); // Use this for a custom power
void A_GiveWeapon(); // Gives the player weapon(s)
void A_RingBox(); // Obtained Ring Box Tails
void A_Invincibility(); // Obtained Invincibility Box
void A_SuperSneakers(); // Obtained Super Sneakers Box
void A_BunnyHop(); // have bunny hop tails
void A_BubbleSpawn(); // Randomly spawn bubbles
void A_FanBubbleSpawn();
void A_BubbleRise(); // Bubbles float to surface
void A_BubbleCheck(); // Don't draw if not underwater
void A_AwardScore();
void A_ExtraLife(); // Extra Life
void A_GiveShield(); // Obtained Shield
void A_GravityBox();
void A_ScoreRise(); // Rise the score logo
void A_AttractChase(); // Ring Chase
void A_DropMine(); // Drop Mine from Skim or Jetty-Syn Bomber
void A_FishJump(); // Fish Jump
void A_ThrownRing(); // Sparkle trail for red ring
void A_SetSolidSteam();
void A_UnsetSolidSteam();
void A_SignSpin();
void A_SignPlayer();
void A_OverlayThink();
void A_JetChase();
void A_JetbThink(); // Jetty-Syn Bomber Thinker
void A_JetgThink(); // Jetty-Syn Gunner Thinker
void A_JetgShoot(); // Jetty-Syn Shoot Function
void A_ShootBullet(); // JetgShoot without reactiontime setting
void A_MinusDigging();
void A_MinusPopup();
void A_MinusCheck();
void A_ChickenCheck();
void A_MouseThink(); // Mouse Thinker
void A_DetonChase(); // Deton Chaser
void A_CapeChase(); // Fake little Super Sonic cape
void A_RotateSpikeBall(); // Spike ball rotation
void A_SlingAppear();
void A_UnidusBall();
void A_RockSpawn();
void A_SetFuse();
void A_CrawlaCommanderThink(); // Crawla Commander
void A_SmokeTrailer();
void A_RingExplode();
void A_OldRingExplode();
void A_MixUp();
void A_RecyclePowers();
void A_BossScream();
void A_Boss2TakeDamage();
void A_GoopSplat();
void A_Boss2PogoSFX();
void A_Boss2PogoTarget();
void A_EggmanBox();
void A_TurretFire();
void A_SuperTurretFire();
void A_TurretStop();
void A_JetJawRoam();
void A_JetJawChomp();
void A_PointyThink();
void A_CheckBuddy();
void A_HoodFire();
void A_HoodThink();
void A_HoodFall();
void A_ArrowBonks();
void A_SnailerThink();
void A_SharpChase();
void A_SharpSpin();
void A_SharpDecel();
void A_CrushstaceanWalk();
void A_CrushstaceanPunch();
void A_CrushclawAim();
void A_CrushclawLaunch();
void A_VultureVtol();
void A_VultureCheck();
void A_VultureHover();
void A_VultureBlast();
void A_VultureFly();
void A_SkimChase();
void A_SkullAttack();
void A_LobShot();
void A_FireShot();
void A_SuperFireShot();
void A_BossFireShot();
void A_Boss7FireMissiles();
void A_Boss1Laser();
void A_FocusTarget();
void A_Boss4Reverse();
void A_Boss4SpeedUp();
void A_Boss4Raise();
void A_SparkFollow();
void A_BuzzFly();
void A_GuardChase();
void A_EggShield();
void A_SetReactionTime();
void A_Boss1Spikeballs();
void A_Boss3TakeDamage();
void A_Boss3Path();
void A_Boss3ShockThink();
void A_Shockwave();
void A_LinedefExecute();
void A_LinedefExecuteFromArg();
void A_PlaySeeSound();
void A_PlayAttackSound();
void A_PlayActiveSound();
void A_1upThinker();
void A_BossZoom(); //Unused
void A_Boss1Chase();
void A_Boss2Chase();
void A_Boss2Pogo();
void A_Boss7Chase();
void A_BossJetFume();
void A_SpawnObjectAbsolute();
void A_SpawnObjectRelative();
void A_ChangeAngleRelative();
void A_ChangeAngleAbsolute();
void A_RollAngle();
void A_ChangeRollAngleRelative();
void A_ChangeRollAngleAbsolute();
void A_PlaySound();
void A_FindTarget();
void A_FindTracer();
void A_SetTics();
void A_SetRandomTics();
void A_ChangeColorRelative();
void A_ChangeColorAbsolute();
void A_Dye();
void A_MoveRelative();
void A_MoveAbsolute();
void A_Thrust();
void A_ZThrust();
void A_SetTargetsTarget();
void A_SetObjectFlags();
void A_SetObjectFlags2();
void A_RandomState();
void A_RandomStateRange();
void A_StateRangeByAngle();
void A_StateRangeByParameter();
void A_DualAction();
void A_RemoteAction();
void A_ToggleFlameJet();
void A_OrbitNights();
void A_GhostMe();
void A_SetObjectState();
void A_SetObjectTypeState();
void A_KnockBack();
void A_PushAway();
void A_RingDrain();
void A_SplitShot();
void A_MissileSplit();
void A_MultiShot();
void A_InstaLoop();
void A_Custom3DRotate();
void A_SearchForPlayers();
void A_CheckRandom();
void A_CheckTargetRings();
void A_CheckRings();
void A_CheckTotalRings();
void A_CheckHealth();
void A_CheckRange();
void A_CheckHeight();
void A_CheckTrueRange();
void A_CheckThingCount();
void A_CheckAmbush();
void A_CheckCustomValue();
void A_CheckCusValMemo();
void A_SetCustomValue();
void A_UseCusValMemo();
void A_RelayCustomValue();
void A_CusValAction();
void A_ForceStop();
void A_ForceWin();
void A_SpikeRetract();
void A_InfoState();
void A_Repeat();
void A_SetScale();
void A_RemoteDamage();
void A_HomingChase();
void A_TrapShot();
void A_VileTarget();
void A_VileAttack();
void A_VileFire();
void A_BrakChase();
void A_BrakFireShot();
void A_BrakLobShot();
void A_NapalmScatter();
void A_SpawnFreshCopy();
void A_FlickySpawn();
void A_FlickyCenter();
void A_FlickyAim();
void A_FlickyFly();
void A_FlickySoar();
void A_FlickyCoast();
void A_FlickyHop();
void A_FlickyFlounder();
void A_FlickyCheck();
void A_FlickyHeightCheck();
void A_FlickyFlutter();
void A_FlameParticle();
void A_FadeOverlay();
void A_Boss5Jump();
void A_LightBeamReset();
void A_MineExplode();
void A_MineRange();
void A_ConnectToGround();
void A_SpawnParticleRelative();
void A_MultiShotDist();
void A_WhoCaresIfYourSonIsABee();
void A_ParentTriesToSleep();
void A_CryingToMomma();
void A_CheckFlags2();
void A_Boss5FindWaypoint();
void A_DoNPCSkid();
void A_DoNPCPain();
void A_PrepareRepeat();
void A_Boss5ExtraRepeat();
void A_Boss5Calm();
void A_Boss5CheckOnGround();
void A_Boss5CheckFalling();
void A_Boss5PinchShot();
void A_Boss5MakeItRain();
void A_Boss5MakeJunk();
void A_LookForBetter();
void A_Boss5BombExplode();
void A_DustDevilThink();
void A_TNTExplode();
void A_DebrisRandom();
void A_TrainCameo();
void A_TrainCameo2();
void A_CanarivoreGas();
void A_KillSegments();
void A_SnapperSpawn();
void A_SnapperThinker();
void A_SaloonDoorSpawn();
void A_MinecartSparkThink();
void A_ModuloToState();
void A_LavafallRocks();
void A_LavafallLava();
void A_FallingLavaCheck();
void A_FireShrink();
void A_SpawnPterabytes();
void A_PterabyteHover();
void A_RolloutSpawn();
void A_RolloutRock();
void A_DragonbomberSpawn();
void A_DragonWing();
void A_DragonSegment();
void A_ChangeHeight();
extern int actionsoverridden[NUMACTIONS][MAX_ACTION_RECURSION];
// ratio of states to sprites to mobj types is roughly 6 : 1 : 1
#define NUMMOBJFREESLOTS 512
#define NUMSPRITEFREESLOTS NUMMOBJFREESLOTS
#define NUMSTATEFREESLOTS (NUMMOBJFREESLOTS*8)
// Hey, moron! If you change this table, don't forget about sprnames in info.c and the sprite lights in hw_light.c!
typedef enum sprite
{
SPR_NULL, // invisible object
SPR_UNKN,
SPR_THOK, // Thok! mobj
SPR_PLAY,
// Enemies
SPR_POSS, // Crawla (Blue)
SPR_SPOS, // Crawla (Red)
SPR_FISH, // SDURF
SPR_BUZZ, // Buzz (Gold)
SPR_RBUZ, // Buzz (Red)
SPR_JETB, // Jetty-Syn Bomber
SPR_JETG, // Jetty-Syn Gunner
SPR_CCOM, // Crawla Commander
SPR_DETN, // Deton
SPR_SKIM, // Skim mine dropper
SPR_TRET, // Industrial Turret
SPR_TURR, // Pop-Up Turret
SPR_SHRP, // Sharp
SPR_CRAB, // Crushstacean
SPR_CR2B, // Banpyura
SPR_CSPR, // Banpyura spring
SPR_JJAW, // Jet Jaw
SPR_SNLR, // Snailer
SPR_VLTR, // BASH
SPR_PNTY, // Pointy
SPR_ARCH, // Robo-Hood
SPR_CBFS, // Castlebot Facestabber
SPR_STAB, // Castlebot Facestabber spear aura
SPR_SPSH, // Egg Guard
SPR_ESHI, // Egg Guard's shield
SPR_GSNP, // Green Snapper
SPR_GSNL, // Green Snapper leg
SPR_GSNH, // Green Snapper head
SPR_MNUS, // Minus
SPR_MNUD, // Minus dirt
SPR_SSHL, // Spring Shell
SPR_UNID, // Unidus
SPR_CANA, // Canarivore
SPR_CANG, // Canarivore gas
SPR_PYRE, // Pyre Fly
SPR_PTER, // Pterabyte
SPR_DRAB, // Dragonbomber
// Generic Boss Items
SPR_JETF, // Boss jet fumes
// Boss 1 (Greenflower)
SPR_EGGM, // Boss 1
SPR_EGLZ, // Boss 1 Junk
// Boss 2 (Techno Hill)
SPR_EGGN, // Boss 2
SPR_TANK, // Boss 2 Junk
SPR_GOOP, // Boss 2 Goop
// Boss 3 (Deep Sea)
SPR_EGGO, // Boss 3
SPR_SEBH, // Boss 3 Junk
SPR_FAKE, // Boss 3 Fakemobile
SPR_SHCK, // Boss 3 Shockwave
// Boss 4 (Castle Eggman)
SPR_EGGP,
SPR_EFIR, // Boss 4 jet flame
SPR_EGR1, // Boss 4 Spectator Eggrobo
// Boss 5 (Arid Canyon)
SPR_FANG, // replaces EGGQ
SPR_BRKN,
SPR_WHAT,
SPR_VWRE,
SPR_PROJ, // projector light
SPR_FBOM,
SPR_FSGN,
SPR_BARX, // bomb explosion (also used by barrel)
SPR_BARD, // bomb dust (also used by barrel)
// Boss 6 (Red Volcano)
SPR_EGGR,
// Boss 7 (Dark City)
SPR_BRAK,
SPR_BGOO, // Goop
SPR_BMSL,
// Boss 8 (Egg Rock)
SPR_EGGT,
// Cy-Brak-Demon; uses SPR_BRAK as well, but has some extras
SPR_RCKT, // Rockets!
SPR_ELEC, // Electricity!
SPR_TARG, // Targeting reticules!
SPR_NPLM, // Big napalm bombs!
SPR_MNPL, // Mini napalm bombs!
// Metal Sonic
SPR_METL,
SPR_MSCF,
SPR_MSCB,
// Collectible Items
SPR_RING,
SPR_TRNG, // Team Rings
SPR_TOKE, // Special Stage Token
SPR_RFLG, // Red CTF Flag
SPR_BFLG, // Blue CTF Flag
SPR_SPHR, // Sphere
SPR_NCHP, // NiGHTS chip
SPR_NSTR, // NiGHTS star
SPR_EMBM, // Emblem
SPR_CEMG, // Chaos Emeralds
SPR_SHRD, // Emerald Hunt
// Interactive Objects
SPR_BBLS, // water bubble source
SPR_SIGN, // Level end sign
SPR_SPIK, // Spike Ball
SPR_SFLM, // Spin fire
SPR_TFLM, // Spin fire (team)
SPR_USPK, // Floor spike
SPR_WSPK, // Wall spike
SPR_WSPB, // Wall spike base
SPR_STPT, // Starpost
SPR_BMNE, // Big floating mine
SPR_PUMI, // Rollout Rock
// Monitor Boxes
SPR_MSTV, // MiSc TV sprites
SPR_XLTV, // eXtra Large TV sprites
SPR_TRRI, // Red team: 10 RIngs
SPR_TBRI, // Blue team: 10 RIngs
SPR_TVRI, // 10 RIng
SPR_TVPI, // PIty shield
SPR_TVAT, // ATtraction shield
SPR_TVFO, // FOrce shield
SPR_TVAR, // ARmageddon shield
SPR_TVWW, // WhirlWind shield
SPR_TVEL, // ELemental shield
SPR_TVSS, // Super Sneakers
SPR_TVIV, // InVincibility
SPR_TV1U, // 1Up
SPR_TV1P, // 1uP (textless)
SPR_TVEG, // EGgman
SPR_TVMX, // MiXup
SPR_TVMY, // MYstery
SPR_TVGV, // GraVity boots
SPR_TVRC, // ReCycler
SPR_TV1K, // 1,000 points (1 K)
SPR_TVTK, // 10,000 points (Ten K)
SPR_TVFL, // FLame shield
SPR_TVBB, // BuBble shield
SPR_TVZP, // Thunder shield (ZaP)
// Projectiles
SPR_MISL,
SPR_LASR, // GFZ3 laser
SPR_LASF, // GFZ3 laser flames
SPR_TORP, // Torpedo
SPR_ENRG, // Energy ball
SPR_MINE, // Skim mine
SPR_JBUL, // Jetty-Syn Bullet
SPR_TRLS,
SPR_CBLL, // Cannonball
SPR_AROW, // Arrow
SPR_CFIR, // Colored fire of various sorts
// The letter
SPR_LETR,
// Tutorial scenery
SPR_TUPL,
SPR_TUPF,
// Greenflower Scenery
SPR_FWR1,
SPR_FWR2, // GFZ Sunflower
SPR_FWR3, // GFZ budding flower
SPR_FWR4,
SPR_BUS1, // GFZ Bush w/ berries
SPR_BUS2, // GFZ Bush w/o berries
SPR_BUS3, // GFZ Bush w/ BLUE berries
// Trees (both GFZ and misc)
SPR_TRE1, // GFZ
SPR_TRE2, // Checker
SPR_TRE3, // Frozen Hillside
SPR_TRE4, // Polygon
SPR_TRE5, // Bush tree
SPR_TRE6, // Spring tree
// Techno Hill Scenery
SPR_THZP, // THZ1 Steam Flower
SPR_FWR5, // THZ1 Spin flower (red)
SPR_FWR6, // THZ1 Spin flower (yellow)
SPR_THZT, // Steam Whistle tree/bush
SPR_ALRM, // THZ2 Alarm
// Deep Sea Scenery
SPR_GARG, // Deep Sea Gargoyle
SPR_SEWE, // Deep Sea Seaweed
SPR_DRIP, // Dripping water
SPR_CORL, // Coral
SPR_BCRY, // Blue Crystal
SPR_KELP, // Kelp
SPR_ALGA, // Animated algae top
SPR_ALGB, // Animated algae segment
SPR_DSTG, // DSZ Stalagmites
SPR_LIBE, // DSZ Light beam
// Castle Eggman Scenery
SPR_CHAN, // CEZ Chain
SPR_FLAM, // Flame
SPR_ESTA, // Eggman esta una estatua!
SPR_SMCH, // Small Mace Chain
SPR_BMCH, // Big Mace Chain
SPR_SMCE, // Small Mace
SPR_BMCE, // Big Mace
SPR_BSPB, // Blue spring on a ball
SPR_YSPB, // Yellow spring on a ball
SPR_RSPB, // Red spring on a ball
SPR_SFBR, // Small Firebar
SPR_BFBR, // Big Firebar
SPR_BANR, // Banner/pole
SPR_PINE, // Pine Tree
SPR_CEZB, // Bush
SPR_CNDL, // Candle/pricket
SPR_FLMH, // Flame holder
SPR_CTRC, // Fire torch
SPR_CFLG, // Waving flag/segment
SPR_CSTA, // Crawla statue
SPR_CBBS, // Facestabber statue
SPR_CABR, // Brambles
// Arid Canyon Scenery
SPR_BTBL, // Big tumbleweed
SPR_STBL, // Small tumbleweed
SPR_CACT, // Cacti
SPR_WWSG, // Caution Sign
SPR_WWS2, // Cacti Sign
SPR_WWS3, // Sharp Turn Sign
SPR_OILL, // Oil lamp
SPR_OILF, // Oil lamp flare
SPR_BARR, // TNT barrel
SPR_REMT, // TNT proximity shell
SPR_TAZD, // Dust devil
SPR_ADST, // Arid dust
SPR_MCRT, // Minecart
SPR_MCSP, // Minecart spark
SPR_SALD, // Saloon door
SPR_TRAE, // Train cameo locomotive
SPR_TRAI, // Train cameo wagon
SPR_STEA, // Train steam
// Red Volcano Scenery
SPR_FLME, // Flame jet
SPR_DFLM, // Blade's flame
SPR_LFAL, // Lavafall
SPR_JPLA, // Jungle palm
SPR_TFLO, // Torch flower
SPR_WVIN, // Wall vines
// Dark City Scenery
// Egg Rock Scenery
// Christmas Scenery
SPR_XMS1, // Christmas Pole
SPR_XMS2, // Candy Cane
SPR_XMS3, // Snowman
SPR_XMS4, // Lamppost
SPR_XMS5, // Hanging Star
SPR_XMS6, // Mistletoe
SPR_FHZI, // FHZ Ice
SPR_ROSY,
// Halloween Scenery
SPR_PUMK, // Pumpkins
SPR_HHPL, // Dr Seuss Trees
SPR_SHRM, // Mushroom
SPR_HHZM, // Misc
// Azure Temple Scenery
SPR_BGAR, // ATZ Gargoyles
SPR_RCRY, // ATZ Red Crystal (Target)
SPR_CFLM, // Green torch flame
// Botanic Serenity Scenery
SPR_BSZ1, // Tall flowers
SPR_BSZ2, // Medium flowers
SPR_BSZ3, // Small flowers
//SPR_BSZ4, -- Tulips
SPR_BST1, // Red tulip
SPR_BST2, // Purple tulip
SPR_BST3, // Blue tulip
SPR_BST4, // Cyan tulip
SPR_BST5, // Yellow tulip
SPR_BST6, // Orange tulip
SPR_BSZ5, // Cluster of Tulips
SPR_BSZ6, // Bush
SPR_BSZ7, // Vine
SPR_BSZ8, // Misc things
// Misc Scenery
SPR_STLG, // Stalagmites
SPR_DBAL, // Disco
// Powerup Indicators
SPR_ARMA, // Armageddon Shield Orb
SPR_ARMF, // Armageddon Shield Ring, Front
SPR_ARMB, // Armageddon Shield Ring, Back
SPR_WIND, // Whirlwind Shield Orb
SPR_MAGN, // Attract Shield Orb
SPR_ELEM, // Elemental Shield Orb
SPR_FORC, // Force Shield Orb
SPR_PITY, // Pity Shield Orb
SPR_FIRS, // Flame Shield Orb
SPR_BUBS, // Bubble Shield Orb
SPR_ZAPS, // Thunder Shield Orb
SPR_IVSP, // invincibility sparkles
SPR_SSPK, // Super Sonic Spark
SPR_GOAL, // Special Stage goal (here because lol NiGHTS)
// Flickies
SPR_FBUB, // Flicky-sized bubble
SPR_FL01, // Bluebird
SPR_FL02, // Rabbit
SPR_FL03, // Chicken
SPR_FL04, // Seal
SPR_FL05, // Pig
SPR_FL06, // Chipmunk
SPR_FL07, // Penguin
SPR_FL08, // Fish
SPR_FL09, // Ram
SPR_FL10, // Puffin
SPR_FL11, // Cow
SPR_FL12, // Rat
SPR_FL13, // Bear
SPR_FL14, // Dove
SPR_FL15, // Cat
SPR_FL16, // Canary
SPR_FS01, // Spider
SPR_FS02, // Bat
// Springs
SPR_FANS, // Fan
SPR_STEM, // Steam riser
SPR_BUMP, // Bumpers
SPR_BLON, // Balloons
SPR_SPRY, // Yellow spring
SPR_SPRR, // Red spring
SPR_SPRB, // Blue spring
SPR_YSPR, // Yellow Diagonal Spring
SPR_RSPR, // Red Diagonal Spring
SPR_BSPR, // Blue Diagonal Spring
SPR_SSWY, // Yellow Side Spring
SPR_SSWR, // Red Side Spring
SPR_SSWB, // Blue Side Spring
SPR_BSTY, // Yellow Booster
SPR_BSTR, // Red Booster
// Environmental Effects
SPR_RAIN, // Rain
SPR_SNO1, // Snowflake
SPR_SPLH, // Water Splish
SPR_LSPL, // Lava Splish
SPR_SPLA, // Water Splash
SPR_SMOK,
SPR_BUBL, // Bubble
SPR_WZAP,
SPR_DUST, // Spindash dust
SPR_FPRT, // Spindash dust (flame)
SPR_TFOG, // Teleport Fog
SPR_SEED, // Sonic CD flower seed
SPR_PRTL, // Particle (for fans, etc.)
// Game Indicators
SPR_SCOR, // Score logo
SPR_DRWN, // Drowning Timer
SPR_FLII, // AI flight indicator
SPR_LCKN, // Target
SPR_TTAG, // Tag Sign
SPR_GFLG, // Got Flag sign
SPR_FNSF, // Finish flag
SPR_CORK,
SPR_LHRT,
// Ring Weapons
SPR_RRNG, // Red Ring
SPR_RNGB, // Bounce Ring
SPR_RNGR, // Rail Ring
SPR_RNGI, // Infinity Ring
SPR_RNGA, // Automatic Ring
SPR_RNGE, // Explosion Ring
SPR_RNGS, // Scatter Ring
SPR_RNGG, // Grenade Ring
SPR_PIKB, // Bounce Ring Pickup
SPR_PIKR, // Rail Ring Pickup
SPR_PIKA, // Automatic Ring Pickup
SPR_PIKE, // Explosion Ring Pickup
SPR_PIKS, // Scatter Ring Pickup
SPR_PIKG, // Grenade Ring Pickup
SPR_TAUT, // Thrown Automatic Ring
SPR_TGRE, // Thrown Grenade Ring
SPR_TSCR, // Thrown Scatter Ring
// Mario-specific stuff
SPR_COIN,
SPR_CPRK,
SPR_GOOM,
SPR_BGOM,
SPR_FFWR,
SPR_FBLL,
SPR_SHLL,
SPR_PUMA,
SPR_HAMM,
SPR_KOOP,
SPR_BFLM,
SPR_MAXE,
SPR_MUS1,
SPR_MUS2,
SPR_TOAD,
// NiGHTS Stuff
SPR_NDRN, // NiGHTS drone
SPR_NSPK, // NiGHTS sparkle
SPR_NBMP, // NiGHTS Bumper
SPR_HOOP, // NiGHTS hoop sprite
SPR_NSCR, // NiGHTS score sprite
SPR_NPRU, // Nights Powerups
SPR_CAPS, // Capsule thingy for NiGHTS
SPR_IDYA, // Ideya
SPR_NTPN, // Nightopian
SPR_SHLP, // Shleep
// Secret badniks and hazards, shhhh
SPR_PENG,
SPR_POPH,
SPR_HIVE,
SPR_BUMB,
SPR_BBUZ,
SPR_FMCE,
SPR_HMCE,
SPR_CACO,
SPR_BAL2,
SPR_SBOB,
SPR_SBFL,
SPR_SBSK,
SPR_HBAT,
// Debris
SPR_SPRK, // Sparkle
SPR_BOM1, // Robot Explosion
SPR_BOM2, // Boss Explosion 1
SPR_BOM3, // Boss Explosion 2
SPR_BOM4, // Underwater Explosion
SPR_BMNB, // Mine Explosion
// Crumbly rocks
SPR_ROIA,
SPR_ROIB,
SPR_ROIC,
SPR_ROID,
SPR_ROIE,
SPR_ROIF,
SPR_ROIG,
SPR_ROIH,
SPR_ROII,
SPR_ROIJ,
SPR_ROIK,
SPR_ROIL,
SPR_ROIM,
SPR_ROIN,
SPR_ROIO,
SPR_ROIP,
// Level debris
SPR_GFZD, // GFZ debris
SPR_BRIC, // Bricks
SPR_WDDB, // Wood Debris
SPR_BRIR, // CEZ3 colored bricks
SPR_BRIB,
SPR_BRIY,
// Gravity Well Objects
SPR_GWLG,
SPR_GWLR,
SPR_FIRSTFREESLOT,
SPR_LASTFREESLOT = SPR_FIRSTFREESLOT + NUMSPRITEFREESLOTS - 1,
NUMSPRITES
} spritenum_t;
typedef enum playersprite
{
SPR2_STND = 0,
SPR2_WAIT,
SPR2_WALK,
SPR2_SKID,
SPR2_RUN ,
SPR2_DASH,
SPR2_PAIN,
SPR2_STUN,
SPR2_DEAD,
SPR2_DRWN, // drown
SPR2_ROLL,
SPR2_GASP,
SPR2_JUMP,
SPR2_SPNG, // spring
SPR2_FALL,
SPR2_EDGE,
SPR2_RIDE,
SPR2_SPIN, // spindash
SPR2_FLY ,
SPR2_SWIM,
SPR2_TIRE, // tired
SPR2_GLID, // glide
SPR2_LAND, // landing after glide/bounce
SPR2_CLNG, // cling
SPR2_CLMB, // climb
SPR2_FLT , // float
SPR2_FRUN, // float run
SPR2_BNCE, // bounce
SPR2_FIRE, // fire
SPR2_TWIN, // twinspin
SPR2_MLEE, // melee
SPR2_MLEL, // melee land
SPR2_TRNS, // transformation
SPR2_NSTD, // NiGHTS stand
SPR2_NFLT, // NiGHTS float
SPR2_NFLY, // NiGHTS fly
SPR2_NDRL, // NiGHTS drill
SPR2_NSTN, // NiGHTS stun
SPR2_NPUL, // NiGHTS pull
SPR2_NATK, // NiGHTS attack
// c:
SPR2_TAL0,
SPR2_TAL1,
SPR2_TAL2,
SPR2_TAL3,
SPR2_TAL4,
SPR2_TAL5,
SPR2_TAL6,
SPR2_TAL7,
SPR2_TAL8,
SPR2_TAL9,
SPR2_TALA,
SPR2_TALB,
SPR2_TALC,
SPR2_CNT1, // continue disappointment
SPR2_CNT2, // continue lift
SPR2_CNT3, // continue spin
SPR2_CNT4, // continue "soooooooniiic!" tugging
SPR2_SIGN, // end sign head
SPR2_LIFE, // life monitor icon
SPR2_XTRA, // stuff that isn't in-map - "would this ever need an md2 or variable length animation?"
SPR2_FIRSTFREESLOT,
SPR2_LASTFREESLOT = 1024, // Do not make higher than SPR2F_MASK (currently 0x3FF) plus one
NUMPLAYERSPRITES
} playersprite_t;
enum
{
XTRA_LIFEPIC,
XTRA_CHARSEL,
XTRA_CONTINUE,
XTRA_ENDING
};
typedef enum state
{
S_NULL,
S_UNKNOWN,
S_INVISIBLE, // state for invisible sprite
S_SPAWNSTATE,
S_SEESTATE,
S_MELEESTATE,
S_MISSILESTATE,
S_DEATHSTATE,
S_XDEATHSTATE,
S_RAISESTATE,
// Thok
S_THOK,
// Player
S_PLAY_STND,
S_PLAY_WAIT,
S_PLAY_WALK,
S_PLAY_SKID,
S_PLAY_RUN,
S_PLAY_DASH,
S_PLAY_PAIN,
S_PLAY_STUN,
S_PLAY_DEAD,
S_PLAY_DRWN,
S_PLAY_ROLL,
S_PLAY_GASP,
S_PLAY_JUMP,
S_PLAY_SPRING,
S_PLAY_FALL,
S_PLAY_EDGE,
S_PLAY_RIDE,
// CA2_SPINDASH
S_PLAY_SPINDASH,
// CA_FLY/SWIM
S_PLAY_FLY,
S_PLAY_SWIM,
S_PLAY_FLY_TIRED,
// CA_GLIDEANDCLIMB
S_PLAY_GLIDE,
S_PLAY_GLIDE_LANDING,
S_PLAY_CLING,
S_PLAY_CLIMB,
// CA_FLOAT/CA_SLOWFALL
S_PLAY_FLOAT,
S_PLAY_FLOAT_RUN,
// CA_BOUNCE
S_PLAY_BOUNCE,
S_PLAY_BOUNCE_LANDING,
// CA2_GUNSLINGER
S_PLAY_FIRE,
S_PLAY_FIRE_FINISH,
// CA_TWINSPIN
S_PLAY_TWINSPIN,
// CA2_MELEE
S_PLAY_MELEE,
S_PLAY_MELEE_FINISH,
S_PLAY_MELEE_LANDING,
// SF_SUPER
S_PLAY_SUPER_TRANS1,
S_PLAY_SUPER_TRANS2,
S_PLAY_SUPER_TRANS3,
S_PLAY_SUPER_TRANS4,
S_PLAY_SUPER_TRANS5,
S_PLAY_SUPER_TRANS6,
// technically the player goes here but it's an infinite tic state
S_OBJPLACE_DUMMY,
// 1-Up Box Sprites overlay (uses player sprite)
S_PLAY_BOX1,
S_PLAY_BOX2,
S_PLAY_ICON1,
S_PLAY_ICON2,
S_PLAY_ICON3,
// Level end sign overlay (uses player sprite)
S_PLAY_SIGN,
// NiGHTS character (uses player sprite)
S_PLAY_NIGHTS_TRANS1,
S_PLAY_NIGHTS_TRANS2,
S_PLAY_NIGHTS_TRANS3,
S_PLAY_NIGHTS_TRANS4,
S_PLAY_NIGHTS_TRANS5,
S_PLAY_NIGHTS_TRANS6,
S_PLAY_NIGHTS_STAND,
S_PLAY_NIGHTS_FLOAT,
S_PLAY_NIGHTS_FLY,
S_PLAY_NIGHTS_DRILL,
S_PLAY_NIGHTS_STUN,
S_PLAY_NIGHTS_PULL,
S_PLAY_NIGHTS_ATTACK,
// c:
S_TAILSOVERLAY_STAND,
S_TAILSOVERLAY_0DEGREES,
S_TAILSOVERLAY_PLUS30DEGREES,
S_TAILSOVERLAY_PLUS60DEGREES,
S_TAILSOVERLAY_MINUS30DEGREES,
S_TAILSOVERLAY_MINUS60DEGREES,
S_TAILSOVERLAY_RUN,
S_TAILSOVERLAY_FLY,
S_TAILSOVERLAY_TIRE,
S_TAILSOVERLAY_PAIN,
S_TAILSOVERLAY_GASP,
S_TAILSOVERLAY_EDGE,
S_TAILSOVERLAY_DASH,
// [:
S_JETFUMEFLASH,
// Blue Crawla
S_POSS_STND,
S_POSS_RUN1,
S_POSS_RUN2,
S_POSS_RUN3,
S_POSS_RUN4,
S_POSS_RUN5,
S_POSS_RUN6,
// Red Crawla
S_SPOS_STND,
S_SPOS_RUN1,
S_SPOS_RUN2,
S_SPOS_RUN3,
S_SPOS_RUN4,
S_SPOS_RUN5,
S_SPOS_RUN6,
// Greenflower Fish
S_FISH1,
S_FISH2,
S_FISH3,
S_FISH4,
// Buzz (Gold)
S_BUZZLOOK1,
S_BUZZLOOK2,
S_BUZZFLY1,
S_BUZZFLY2,
// Buzz (Red)
S_RBUZZLOOK1,
S_RBUZZLOOK2,
S_RBUZZFLY1,
S_RBUZZFLY2,
// Jetty-Syn Bomber
S_JETBLOOK1,
S_JETBLOOK2,
S_JETBZOOM1,
S_JETBZOOM2,
// Jetty-Syn Gunner
S_JETGLOOK1,
S_JETGLOOK2,
S_JETGZOOM1,
S_JETGZOOM2,
S_JETGSHOOT1,
S_JETGSHOOT2,
// Crawla Commander
S_CCOMMAND1,
S_CCOMMAND2,
S_CCOMMAND3,
S_CCOMMAND4,
// Deton
S_DETON1,
S_DETON2,
S_DETON3,
S_DETON4,
S_DETON5,
S_DETON6,
S_DETON7,
S_DETON8,
S_DETON9,
S_DETON10,
S_DETON11,
S_DETON12,
S_DETON13,
S_DETON14,
S_DETON15,
// Skim Mine Dropper
S_SKIM1,
S_SKIM2,
S_SKIM3,
S_SKIM4,
// THZ Turret
S_TURRET,
S_TURRETFIRE,
S_TURRETSHOCK1,
S_TURRETSHOCK2,
S_TURRETSHOCK3,
S_TURRETSHOCK4,
S_TURRETSHOCK5,
S_TURRETSHOCK6,
S_TURRETSHOCK7,
S_TURRETSHOCK8,
S_TURRETSHOCK9,
// Popup Turret
S_TURRETLOOK,
S_TURRETSEE,
S_TURRETPOPUP1,
S_TURRETPOPUP2,
S_TURRETPOPUP3,
S_TURRETPOPUP4,
S_TURRETPOPUP5,
S_TURRETPOPUP6,
S_TURRETPOPUP7,
S_TURRETPOPUP8,
S_TURRETSHOOT,
S_TURRETPOPDOWN1,
S_TURRETPOPDOWN2,
S_TURRETPOPDOWN3,
S_TURRETPOPDOWN4,
S_TURRETPOPDOWN5,
S_TURRETPOPDOWN6,
S_TURRETPOPDOWN7,
S_TURRETPOPDOWN8,
// Spincushion
S_SPINCUSHION_LOOK,
S_SPINCUSHION_CHASE1,
S_SPINCUSHION_CHASE2,
S_SPINCUSHION_CHASE3,
S_SPINCUSHION_CHASE4,
S_SPINCUSHION_AIM1,
S_SPINCUSHION_AIM2,
S_SPINCUSHION_AIM3,
S_SPINCUSHION_AIM4,
S_SPINCUSHION_AIM5,
S_SPINCUSHION_SPIN1,
S_SPINCUSHION_SPIN2,
S_SPINCUSHION_SPIN3,
S_SPINCUSHION_SPIN4,
S_SPINCUSHION_STOP1,
S_SPINCUSHION_STOP2,
S_SPINCUSHION_STOP3,
S_SPINCUSHION_STOP4,
// Crushstacean
S_CRUSHSTACEAN_ROAM1,
S_CRUSHSTACEAN_ROAM2,
S_CRUSHSTACEAN_ROAM3,
S_CRUSHSTACEAN_ROAM4,
S_CRUSHSTACEAN_ROAMPAUSE,
S_CRUSHSTACEAN_PUNCH1,
S_CRUSHSTACEAN_PUNCH2,
S_CRUSHCLAW_AIM,
S_CRUSHCLAW_OUT,
S_CRUSHCLAW_STAY,
S_CRUSHCLAW_IN,
S_CRUSHCLAW_WAIT,
S_CRUSHCHAIN,
// Banpyura
S_BANPYURA_ROAM1,
S_BANPYURA_ROAM2,
S_BANPYURA_ROAM3,
S_BANPYURA_ROAM4,
S_BANPYURA_ROAMPAUSE,
S_CDIAG1,
S_CDIAG2,
S_CDIAG3,
S_CDIAG4,
S_CDIAG5,
S_CDIAG6,
S_CDIAG7,
S_CDIAG8,
// Jet Jaw
S_JETJAW_ROAM1,
S_JETJAW_ROAM2,
S_JETJAW_ROAM3,
S_JETJAW_ROAM4,
S_JETJAW_ROAM5,
S_JETJAW_ROAM6,
S_JETJAW_ROAM7,
S_JETJAW_ROAM8,
S_JETJAW_CHOMP1,
S_JETJAW_CHOMP2,
S_JETJAW_CHOMP3,
S_JETJAW_CHOMP4,
S_JETJAW_CHOMP5,
S_JETJAW_CHOMP6,
S_JETJAW_CHOMP7,
S_JETJAW_CHOMP8,
S_JETJAW_CHOMP9,
S_JETJAW_CHOMP10,
S_JETJAW_CHOMP11,
S_JETJAW_CHOMP12,
S_JETJAW_CHOMP13,
S_JETJAW_CHOMP14,
S_JETJAW_CHOMP15,
S_JETJAW_CHOMP16,
S_JETJAW_SOUND,
// Snailer
S_SNAILER1,
S_SNAILER_FLICKY,
// Vulture
S_VULTURE_STND,
S_VULTURE_DRIFT,
S_VULTURE_ZOOM1,
S_VULTURE_ZOOM2,
S_VULTURE_STUNNED,
// Pointy
S_POINTY1,
S_POINTYBALL1,
// Robo-Hood
S_ROBOHOOD_LOOK,
S_ROBOHOOD_STAND,
S_ROBOHOOD_FIRE1,
S_ROBOHOOD_FIRE2,
S_ROBOHOOD_JUMP1,
S_ROBOHOOD_JUMP2,
S_ROBOHOOD_JUMP3,
// Castlebot Facestabber
S_FACESTABBER_STND1,
S_FACESTABBER_STND2,
S_FACESTABBER_STND3,
S_FACESTABBER_STND4,
S_FACESTABBER_STND5,
S_FACESTABBER_STND6,
S_FACESTABBER_CHARGE1,
S_FACESTABBER_CHARGE2,
S_FACESTABBER_CHARGE3,
S_FACESTABBER_CHARGE4,
S_FACESTABBER_PAIN,
S_FACESTABBER_DIE1,
S_FACESTABBER_DIE2,
S_FACESTABBER_DIE3,
S_FACESTABBERSPEAR,
// Egg Guard
S_EGGGUARD_STND,
S_EGGGUARD_WALK1,
S_EGGGUARD_WALK2,
S_EGGGUARD_WALK3,
S_EGGGUARD_WALK4,
S_EGGGUARD_MAD1,
S_EGGGUARD_MAD2,
S_EGGGUARD_MAD3,
S_EGGGUARD_RUN1,
S_EGGGUARD_RUN2,
S_EGGGUARD_RUN3,
S_EGGGUARD_RUN4,
// Egg Shield for Egg Guard
S_EGGSHIELD,
S_EGGSHIELDBREAK,
// Green Snapper
S_SNAPPER_SPAWN,
S_SNAPPER_SPAWN2,
S_GSNAPPER_STND,
S_GSNAPPER1,
S_GSNAPPER2,
S_GSNAPPER3,
S_GSNAPPER4,
S_SNAPPER_XPLD,
S_SNAPPER_LEG,
S_SNAPPER_LEGRAISE,
S_SNAPPER_HEAD,
// Minus
S_MINUS_INIT,
S_MINUS_STND,
S_MINUS_DIGGING1,
S_MINUS_DIGGING2,
S_MINUS_DIGGING3,
S_MINUS_DIGGING4,
S_MINUS_BURST0,
S_MINUS_BURST1,
S_MINUS_BURST2,
S_MINUS_BURST3,
S_MINUS_BURST4,
S_MINUS_BURST5,
S_MINUS_POPUP,
S_MINUS_AERIAL1,
S_MINUS_AERIAL2,
S_MINUS_AERIAL3,
S_MINUS_AERIAL4,
// Minus dirt
S_MINUSDIRT1,
S_MINUSDIRT2,
S_MINUSDIRT3,
S_MINUSDIRT4,
S_MINUSDIRT5,
S_MINUSDIRT6,
S_MINUSDIRT7,
// Spring Shell
S_SSHELL_STND,
S_SSHELL_RUN1,
S_SSHELL_RUN2,
S_SSHELL_RUN3,
S_SSHELL_RUN4,
S_SSHELL_SPRING1,
S_SSHELL_SPRING2,
S_SSHELL_SPRING3,
S_SSHELL_SPRING4,
// Spring Shell (yellow)
S_YSHELL_STND,
S_YSHELL_RUN1,
S_YSHELL_RUN2,
S_YSHELL_RUN3,
S_YSHELL_RUN4,
S_YSHELL_SPRING1,
S_YSHELL_SPRING2,
S_YSHELL_SPRING3,
S_YSHELL_SPRING4,
// Unidus
S_UNIDUS_STND,
S_UNIDUS_RUN,
S_UNIDUS_BALL,
// Canarivore
S_CANARIVORE_LOOK,
S_CANARIVORE_AWAKEN1,
S_CANARIVORE_AWAKEN2,
S_CANARIVORE_AWAKEN3,
S_CANARIVORE_GAS1,
S_CANARIVORE_GAS2,
S_CANARIVORE_GAS3,
S_CANARIVORE_GAS4,
S_CANARIVORE_GAS5,
S_CANARIVORE_GASREPEAT,
S_CANARIVORE_CLOSE1,
S_CANARIVORE_CLOSE2,
S_CANARIVOREGAS_1,
S_CANARIVOREGAS_2,
S_CANARIVOREGAS_3,
S_CANARIVOREGAS_4,
S_CANARIVOREGAS_5,
S_CANARIVOREGAS_6,
S_CANARIVOREGAS_7,
S_CANARIVOREGAS_8,
// Pyre Fly
S_PYREFLY_FLY,
S_PYREFLY_BURN,
S_PYREFIRE1,
S_PYREFIRE2,
// Pterabyte
S_PTERABYTESPAWNER,
S_PTERABYTEWAYPOINT,
S_PTERABYTE_FLY1,
S_PTERABYTE_FLY2,
S_PTERABYTE_FLY3,
S_PTERABYTE_FLY4,
S_PTERABYTE_SWOOPDOWN,
S_PTERABYTE_SWOOPUP,
// Dragonbomber
S_DRAGONBOMBER,
S_DRAGONWING1,
S_DRAGONWING2,
S_DRAGONWING3,
S_DRAGONWING4,
S_DRAGONTAIL_LOADED,
S_DRAGONTAIL_EMPTY,
S_DRAGONTAIL_EMPTYLOOP,
S_DRAGONTAIL_RELOAD,
S_DRAGONMINE,
S_DRAGONMINE_LAND1,
S_DRAGONMINE_LAND2,
S_DRAGONMINE_SLOWFLASH1,
S_DRAGONMINE_SLOWFLASH2,
S_DRAGONMINE_SLOWLOOP,
S_DRAGONMINE_FASTFLASH1,
S_DRAGONMINE_FASTFLASH2,
S_DRAGONMINE_FASTLOOP,
// Boss Explosion
S_BOSSEXPLODE,
// S3&K Boss Explosion
S_SONIC3KBOSSEXPLOSION1,
S_SONIC3KBOSSEXPLOSION2,
S_SONIC3KBOSSEXPLOSION3,
S_SONIC3KBOSSEXPLOSION4,
S_SONIC3KBOSSEXPLOSION5,
S_SONIC3KBOSSEXPLOSION6,
S_JETFUME1,
// Boss 1
S_EGGMOBILE_STND,
S_EGGMOBILE_ROFL,
S_EGGMOBILE_LATK1,
S_EGGMOBILE_LATK2,
S_EGGMOBILE_LATK3,
S_EGGMOBILE_LATK4,
S_EGGMOBILE_LATK5,
S_EGGMOBILE_LATK6,
S_EGGMOBILE_LATK7,
S_EGGMOBILE_LATK8,
S_EGGMOBILE_LATK9,
S_EGGMOBILE_RATK1,
S_EGGMOBILE_RATK2,
S_EGGMOBILE_RATK3,
S_EGGMOBILE_RATK4,
S_EGGMOBILE_RATK5,
S_EGGMOBILE_RATK6,
S_EGGMOBILE_RATK7,
S_EGGMOBILE_RATK8,
S_EGGMOBILE_RATK9,
S_EGGMOBILE_PANIC1,
S_EGGMOBILE_PANIC2,
S_EGGMOBILE_PANIC3,
S_EGGMOBILE_PANIC4,
S_EGGMOBILE_PANIC5,
S_EGGMOBILE_PANIC6,
S_EGGMOBILE_PANIC7,
S_EGGMOBILE_PANIC8,
S_EGGMOBILE_PANIC9,
S_EGGMOBILE_PANIC10,
S_EGGMOBILE_PANIC11,
S_EGGMOBILE_PANIC12,
S_EGGMOBILE_PANIC13,
S_EGGMOBILE_PANIC14,
S_EGGMOBILE_PANIC15,
S_EGGMOBILE_PAIN,
S_EGGMOBILE_PAIN2,
S_EGGMOBILE_DIE1,
S_EGGMOBILE_DIE2,
S_EGGMOBILE_DIE3,
S_EGGMOBILE_DIE4,
S_EGGMOBILE_FLEE1,
S_EGGMOBILE_FLEE2,
S_EGGMOBILE_BALL,
S_EGGMOBILE_TARGET,
S_BOSSEGLZ1,
S_BOSSEGLZ2,
// Boss 2
S_EGGMOBILE2_STND,
S_EGGMOBILE2_POGO1,
S_EGGMOBILE2_POGO2,
S_EGGMOBILE2_POGO3,
S_EGGMOBILE2_POGO4,
S_EGGMOBILE2_POGO5,
S_EGGMOBILE2_POGO6,
S_EGGMOBILE2_POGO7,
S_EGGMOBILE2_PAIN,
S_EGGMOBILE2_PAIN2,
S_EGGMOBILE2_DIE1,
S_EGGMOBILE2_DIE2,
S_EGGMOBILE2_DIE3,
S_EGGMOBILE2_DIE4,
S_EGGMOBILE2_FLEE1,
S_EGGMOBILE2_FLEE2,
S_BOSSTANK1,
S_BOSSTANK2,
S_BOSSSPIGOT,
// Boss 2 Goop
S_GOOP1,
S_GOOP2,
S_GOOP3,
S_GOOPTRAIL,
// Boss 3
S_EGGMOBILE3_STND,
S_EGGMOBILE3_SHOCK,
S_EGGMOBILE3_ATK1,
S_EGGMOBILE3_ATK2,
S_EGGMOBILE3_ATK3A,
S_EGGMOBILE3_ATK3B,
S_EGGMOBILE3_ATK3C,
S_EGGMOBILE3_ATK3D,
S_EGGMOBILE3_ATK4,
S_EGGMOBILE3_ATK5,
S_EGGMOBILE3_ROFL,
S_EGGMOBILE3_PAIN,
S_EGGMOBILE3_PAIN2,
S_EGGMOBILE3_DIE1,
S_EGGMOBILE3_DIE2,
S_EGGMOBILE3_DIE3,
S_EGGMOBILE3_DIE4,
S_EGGMOBILE3_FLEE1,
S_EGGMOBILE3_FLEE2,
// Boss 3 Pinch
S_FAKEMOBILE_INIT,
S_FAKEMOBILE,
S_FAKEMOBILE_ATK1,
S_FAKEMOBILE_ATK2,
S_FAKEMOBILE_ATK3A,
S_FAKEMOBILE_ATK3B,
S_FAKEMOBILE_ATK3C,
S_FAKEMOBILE_ATK3D,
S_FAKEMOBILE_DIE1,
S_FAKEMOBILE_DIE2,
S_BOSSSEBH1,
S_BOSSSEBH2,
// Boss 3 Shockwave
S_SHOCKWAVE1,
S_SHOCKWAVE2,
// Boss 4
S_EGGMOBILE4_STND,
S_EGGMOBILE4_LATK1,
S_EGGMOBILE4_LATK2,
S_EGGMOBILE4_LATK3,
S_EGGMOBILE4_LATK4,
S_EGGMOBILE4_LATK5,
S_EGGMOBILE4_LATK6,
S_EGGMOBILE4_RATK1,
S_EGGMOBILE4_RATK2,
S_EGGMOBILE4_RATK3,
S_EGGMOBILE4_RATK4,
S_EGGMOBILE4_RATK5,
S_EGGMOBILE4_RATK6,
S_EGGMOBILE4_RAISE1,
S_EGGMOBILE4_RAISE2,
S_EGGMOBILE4_PAIN1,
S_EGGMOBILE4_PAIN2,
S_EGGMOBILE4_DIE1,
S_EGGMOBILE4_DIE2,
S_EGGMOBILE4_DIE3,
S_EGGMOBILE4_DIE4,
S_EGGMOBILE4_FLEE1,
S_EGGMOBILE4_FLEE2,
S_EGGMOBILE4_MACE,
S_EGGMOBILE4_MACE_DIE1,
S_EGGMOBILE4_MACE_DIE2,
S_EGGMOBILE4_MACE_DIE3,
// Boss 4 jet flame
S_JETFLAME,
// Boss 4 Spectator Eggrobo
S_EGGROBO1_STND,
S_EGGROBO1_BSLAP1,
S_EGGROBO1_BSLAP2,
S_EGGROBO1_PISSED,
// Boss 4 Spectator Eggrobo jet flame
S_EGGROBOJET,
// Boss 5
S_FANG_SETUP,
S_FANG_INTRO0,
S_FANG_INTRO1,
S_FANG_INTRO2,
S_FANG_INTRO3,
S_FANG_INTRO4,
S_FANG_INTRO5,
S_FANG_INTRO6,
S_FANG_INTRO7,
S_FANG_INTRO8,
S_FANG_INTRO9,
S_FANG_INTRO10,
S_FANG_INTRO11,
S_FANG_INTRO12,
S_FANG_CLONE1,
S_FANG_CLONE2,
S_FANG_CLONE3,
S_FANG_CLONE4,
S_FANG_IDLE0,
S_FANG_IDLE1,
S_FANG_IDLE2,
S_FANG_IDLE3,
S_FANG_IDLE4,
S_FANG_IDLE5,
S_FANG_IDLE6,
S_FANG_IDLE7,
S_FANG_IDLE8,
S_FANG_PAIN1,
S_FANG_PAIN2,
S_FANG_PATHINGSTART1,
S_FANG_PATHINGSTART2,
S_FANG_PATHING,
S_FANG_BOUNCE1,
S_FANG_BOUNCE2,
S_FANG_BOUNCE3,
S_FANG_BOUNCE4,
S_FANG_FALL1,
S_FANG_FALL2,
S_FANG_CHECKPATH1,
S_FANG_CHECKPATH2,
S_FANG_PATHINGCONT1,
S_FANG_PATHINGCONT2,
S_FANG_PATHINGCONT3,
S_FANG_SKID1,
S_FANG_SKID2,
S_FANG_SKID3,
S_FANG_CHOOSEATTACK,
S_FANG_FIRESTART1,
S_FANG_FIRESTART2,
S_FANG_FIRE1,
S_FANG_FIRE2,
S_FANG_FIRE3,
S_FANG_FIRE4,
S_FANG_FIREREPEAT,
S_FANG_LOBSHOT0,
S_FANG_LOBSHOT1,
S_FANG_LOBSHOT2,
S_FANG_WAIT1,
S_FANG_WAIT2,
S_FANG_WALLHIT,
S_FANG_PINCHPATHINGSTART1,
S_FANG_PINCHPATHINGSTART2,
S_FANG_PINCHPATHING,
S_FANG_PINCHBOUNCE0,
S_FANG_PINCHBOUNCE1,
S_FANG_PINCHBOUNCE2,
S_FANG_PINCHBOUNCE3,
S_FANG_PINCHBOUNCE4,
S_FANG_PINCHFALL0,
S_FANG_PINCHFALL1,
S_FANG_PINCHFALL2,
S_FANG_PINCHSKID1,
S_FANG_PINCHSKID2,
S_FANG_PINCHLOBSHOT0,
S_FANG_PINCHLOBSHOT1,
S_FANG_PINCHLOBSHOT2,
S_FANG_PINCHLOBSHOT3,
S_FANG_PINCHLOBSHOT4,
S_FANG_DIE1,
S_FANG_DIE2,
S_FANG_DIE3,
S_FANG_DIE4,
S_FANG_DIE5,
S_FANG_DIE6,
S_FANG_DIE7,
S_FANG_DIE8,
S_FANG_FLEEPATHING1,
S_FANG_FLEEPATHING2,
S_FANG_FLEEBOUNCE1,
S_FANG_FLEEBOUNCE2,
S_FANG_KO,
S_BROKENROBOTRANDOM,
S_BROKENROBOTA,
S_BROKENROBOTB,
S_BROKENROBOTC,
S_BROKENROBOTD,
S_BROKENROBOTE,
S_BROKENROBOTF,
S_ALART1,
S_ALART2,
S_VWREF,
S_VWREB,
S_PROJECTORLIGHT1,
S_PROJECTORLIGHT2,
S_PROJECTORLIGHT3,
S_PROJECTORLIGHT4,
S_PROJECTORLIGHT5,
S_FBOMB1,
S_FBOMB2,
S_FBOMB_EXPL1,
S_FBOMB_EXPL2,
S_FBOMB_EXPL3,
S_FBOMB_EXPL4,
S_FBOMB_EXPL5,
S_FBOMB_EXPL6,
S_TNTDUST_1,
S_TNTDUST_2,
S_TNTDUST_3,
S_TNTDUST_4,
S_TNTDUST_5,
S_TNTDUST_6,
S_TNTDUST_7,
S_TNTDUST_8,
S_FSGNA,
S_FSGNB,
S_FSGNC,
S_FSGND,
// Black Eggman (Boss 7)
S_BLACKEGG_STND,
S_BLACKEGG_STND2,
S_BLACKEGG_WALK1,
S_BLACKEGG_WALK2,
S_BLACKEGG_WALK3,
S_BLACKEGG_WALK4,
S_BLACKEGG_WALK5,
S_BLACKEGG_WALK6,
S_BLACKEGG_SHOOT1,
S_BLACKEGG_SHOOT2,
S_BLACKEGG_PAIN1,
S_BLACKEGG_PAIN2,
S_BLACKEGG_PAIN3,
S_BLACKEGG_PAIN4,
S_BLACKEGG_PAIN5,
S_BLACKEGG_PAIN6,
S_BLACKEGG_PAIN7,
S_BLACKEGG_PAIN8,
S_BLACKEGG_PAIN9,
S_BLACKEGG_PAIN10,
S_BLACKEGG_PAIN11,
S_BLACKEGG_PAIN12,
S_BLACKEGG_PAIN13,
S_BLACKEGG_PAIN14,
S_BLACKEGG_PAIN15,
S_BLACKEGG_PAIN16,
S_BLACKEGG_PAIN17,
S_BLACKEGG_PAIN18,
S_BLACKEGG_PAIN19,
S_BLACKEGG_PAIN20,
S_BLACKEGG_PAIN21,
S_BLACKEGG_PAIN22,
S_BLACKEGG_PAIN23,
S_BLACKEGG_PAIN24,
S_BLACKEGG_PAIN25,
S_BLACKEGG_PAIN26,
S_BLACKEGG_PAIN27,
S_BLACKEGG_PAIN28,
S_BLACKEGG_PAIN29,
S_BLACKEGG_PAIN30,
S_BLACKEGG_PAIN31,
S_BLACKEGG_PAIN32,
S_BLACKEGG_PAIN33,
S_BLACKEGG_PAIN34,
S_BLACKEGG_PAIN35,
S_BLACKEGG_HITFACE1,
S_BLACKEGG_HITFACE2,
S_BLACKEGG_HITFACE3,
S_BLACKEGG_HITFACE4,
S_BLACKEGG_DIE1,
S_BLACKEGG_DIE2,
S_BLACKEGG_DIE3,
S_BLACKEGG_DIE4,
S_BLACKEGG_DIE5,
S_BLACKEGG_MISSILE1,
S_BLACKEGG_MISSILE2,
S_BLACKEGG_MISSILE3,
S_BLACKEGG_GOOP,
S_BLACKEGG_JUMP1,
S_BLACKEGG_JUMP2,
S_BLACKEGG_DESTROYPLAT1,
S_BLACKEGG_DESTROYPLAT2,
S_BLACKEGG_DESTROYPLAT3,
S_BLACKEGG_HELPER, // Collision helper
S_BLACKEGG_GOOP1,
S_BLACKEGG_GOOP2,
S_BLACKEGG_GOOP3,
S_BLACKEGG_GOOP4,
S_BLACKEGG_GOOP5,
S_BLACKEGG_GOOP6,
S_BLACKEGG_GOOP7,
S_BLACKEGG_MISSILE,
// New Very-Last-Minute 2.1 Brak Eggman (Cy-Brak-demon)
S_CYBRAKDEMON_IDLE,
S_CYBRAKDEMON_WALK1,
S_CYBRAKDEMON_WALK2,
S_CYBRAKDEMON_WALK3,
S_CYBRAKDEMON_WALK4,
S_CYBRAKDEMON_WALK5,
S_CYBRAKDEMON_WALK6,
S_CYBRAKDEMON_CHOOSE_ATTACK1,
S_CYBRAKDEMON_MISSILE_ATTACK1, // Aim
S_CYBRAKDEMON_MISSILE_ATTACK2, // Fire
S_CYBRAKDEMON_MISSILE_ATTACK3, // Aim
S_CYBRAKDEMON_MISSILE_ATTACK4, // Fire
S_CYBRAKDEMON_MISSILE_ATTACK5, // Aim
S_CYBRAKDEMON_MISSILE_ATTACK6, // Fire
S_CYBRAKDEMON_FLAME_ATTACK1, // Reset
S_CYBRAKDEMON_FLAME_ATTACK2, // Aim
S_CYBRAKDEMON_FLAME_ATTACK3, // Fire
S_CYBRAKDEMON_FLAME_ATTACK4, // Loop
S_CYBRAKDEMON_CHOOSE_ATTACK2,
S_CYBRAKDEMON_VILE_ATTACK1,
S_CYBRAKDEMON_VILE_ATTACK2,
S_CYBRAKDEMON_VILE_ATTACK3,
S_CYBRAKDEMON_VILE_ATTACK4,
S_CYBRAKDEMON_VILE_ATTACK5,
S_CYBRAKDEMON_VILE_ATTACK6,
S_CYBRAKDEMON_NAPALM_ATTACK1,
S_CYBRAKDEMON_NAPALM_ATTACK2,
S_CYBRAKDEMON_NAPALM_ATTACK3,
S_CYBRAKDEMON_FINISH_ATTACK1, // If just attacked, remove MF2_FRET w/out going back to spawnstate
S_CYBRAKDEMON_FINISH_ATTACK2, // Force a delay between attacks so you don't get bombarded with them back-to-back
S_CYBRAKDEMON_PAIN1,
S_CYBRAKDEMON_PAIN2,
S_CYBRAKDEMON_PAIN3,
S_CYBRAKDEMON_DIE1,
S_CYBRAKDEMON_DIE2,
S_CYBRAKDEMON_DIE3,
S_CYBRAKDEMON_DIE4,
S_CYBRAKDEMON_DIE5,
S_CYBRAKDEMON_DIE6,
S_CYBRAKDEMON_DIE7,
S_CYBRAKDEMON_DIE8,
S_CYBRAKDEMON_DEINVINCIBLERIZE,
S_CYBRAKDEMON_INVINCIBLERIZE,
S_CYBRAKDEMONMISSILE,
S_CYBRAKDEMONMISSILE_EXPLODE1,
S_CYBRAKDEMONMISSILE_EXPLODE2,
S_CYBRAKDEMONMISSILE_EXPLODE3,
S_CYBRAKDEMONFLAMESHOT_FLY1,
S_CYBRAKDEMONFLAMESHOT_FLY2,
S_CYBRAKDEMONFLAMESHOT_FLY3,
S_CYBRAKDEMONFLAMESHOT_DIE,
S_CYBRAKDEMONFLAMEREST,
S_CYBRAKDEMONELECTRICBARRIER_INIT1,
S_CYBRAKDEMONELECTRICBARRIER_INIT2,
S_CYBRAKDEMONELECTRICBARRIER_PLAYSOUND,
S_CYBRAKDEMONELECTRICBARRIER1,
S_CYBRAKDEMONELECTRICBARRIER2,
S_CYBRAKDEMONELECTRICBARRIER3,
S_CYBRAKDEMONELECTRICBARRIER4,
S_CYBRAKDEMONELECTRICBARRIER5,
S_CYBRAKDEMONELECTRICBARRIER6,
S_CYBRAKDEMONELECTRICBARRIER7,
S_CYBRAKDEMONELECTRICBARRIER8,
S_CYBRAKDEMONELECTRICBARRIER9,
S_CYBRAKDEMONELECTRICBARRIER10,
S_CYBRAKDEMONELECTRICBARRIER11,
S_CYBRAKDEMONELECTRICBARRIER12,
S_CYBRAKDEMONELECTRICBARRIER13,
S_CYBRAKDEMONELECTRICBARRIER14,
S_CYBRAKDEMONELECTRICBARRIER15,
S_CYBRAKDEMONELECTRICBARRIER16,
S_CYBRAKDEMONELECTRICBARRIER17,
S_CYBRAKDEMONELECTRICBARRIER18,
S_CYBRAKDEMONELECTRICBARRIER19,
S_CYBRAKDEMONELECTRICBARRIER20,
S_CYBRAKDEMONELECTRICBARRIER21,
S_CYBRAKDEMONELECTRICBARRIER22,
S_CYBRAKDEMONELECTRICBARRIER23,
S_CYBRAKDEMONELECTRICBARRIER24,
S_CYBRAKDEMONELECTRICBARRIER_DIE1,
S_CYBRAKDEMONELECTRICBARRIER_DIE2,
S_CYBRAKDEMONELECTRICBARRIER_DIE3,
S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMCHECK,
S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMSUCCESS,
S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMCHOOSE,
S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM1,
S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM2,
S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM3,
S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM4,
S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM5,
S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM6,
S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM7,
S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM8,
S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM9,
S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM10,
S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM11,
S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM12,
S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMFAIL,
S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP,
S_CYBRAKDEMONELECTRICBARRIER_REVIVE1,
S_CYBRAKDEMONELECTRICBARRIER_REVIVE2,
S_CYBRAKDEMONELECTRICBARRIER_REVIVE3,
S_CYBRAKDEMONTARGETRETICULE1,
S_CYBRAKDEMONTARGETRETICULE2,
S_CYBRAKDEMONTARGETRETICULE3,
S_CYBRAKDEMONTARGETRETICULE4,
S_CYBRAKDEMONTARGETRETICULE5,
S_CYBRAKDEMONTARGETRETICULE6,
S_CYBRAKDEMONTARGETRETICULE7,
S_CYBRAKDEMONTARGETRETICULE8,
S_CYBRAKDEMONTARGETRETICULE9,
S_CYBRAKDEMONTARGETRETICULE10,
S_CYBRAKDEMONTARGETRETICULE11,
S_CYBRAKDEMONTARGETRETICULE12,
S_CYBRAKDEMONTARGETRETICULE13,
S_CYBRAKDEMONTARGETRETICULE14,
S_CYBRAKDEMONTARGETDOT,
S_CYBRAKDEMONNAPALMBOMBLARGE_FLY1,
S_CYBRAKDEMONNAPALMBOMBLARGE_FLY2,
S_CYBRAKDEMONNAPALMBOMBLARGE_FLY3,
S_CYBRAKDEMONNAPALMBOMBLARGE_FLY4,
S_CYBRAKDEMONNAPALMBOMBLARGE_DIE1, // Explode
S_CYBRAKDEMONNAPALMBOMBLARGE_DIE2, // Outer ring
S_CYBRAKDEMONNAPALMBOMBLARGE_DIE3, // Center
S_CYBRAKDEMONNAPALMBOMBLARGE_DIE4, // Sound
S_CYBRAKDEMONNAPALMBOMBSMALL,
S_CYBRAKDEMONNAPALMBOMBSMALL_DIE1, // Explode
S_CYBRAKDEMONNAPALMBOMBSMALL_DIE2, // Outer ring
S_CYBRAKDEMONNAPALMBOMBSMALL_DIE3, // Inner ring
S_CYBRAKDEMONNAPALMBOMBSMALL_DIE4, // Center
S_CYBRAKDEMONNAPALMBOMBSMALL_DIE5, // Sound
S_CYBRAKDEMONNAPALMFLAME_FLY1,
S_CYBRAKDEMONNAPALMFLAME_FLY2,
S_CYBRAKDEMONNAPALMFLAME_FLY3,
S_CYBRAKDEMONNAPALMFLAME_FLY4,
S_CYBRAKDEMONNAPALMFLAME_FLY5,
S_CYBRAKDEMONNAPALMFLAME_FLY6,
S_CYBRAKDEMONNAPALMFLAME_DIE,
S_CYBRAKDEMONVILEEXPLOSION1,
S_CYBRAKDEMONVILEEXPLOSION2,
S_CYBRAKDEMONVILEEXPLOSION3,
// Metal Sonic (Race)
S_METALSONIC_RACE,
// Metal Sonic (Battle)
S_METALSONIC_FLOAT,
S_METALSONIC_VECTOR,
S_METALSONIC_STUN,
S_METALSONIC_RAISE,
S_METALSONIC_GATHER,
S_METALSONIC_DASH,
S_METALSONIC_BOUNCE,
S_METALSONIC_BADBOUNCE,
S_METALSONIC_SHOOT,
S_METALSONIC_PAIN,
S_METALSONIC_DEATH1,
S_METALSONIC_DEATH2,
S_METALSONIC_DEATH3,
S_METALSONIC_DEATH4,
S_METALSONIC_FLEE1,
S_METALSONIC_FLEE2,
S_MSSHIELD_F1,
S_MSSHIELD_F2,
// Ring
S_RING,
// Blue Sphere for special stages
S_BLUESPHERE,
S_BLUESPHEREBONUS,
S_BLUESPHERESPARK,
// Bomb Sphere
S_BOMBSPHERE1,
S_BOMBSPHERE2,
S_BOMBSPHERE3,
S_BOMBSPHERE4,
// NiGHTS Chip
S_NIGHTSCHIP,
S_NIGHTSCHIPBONUS,
// NiGHTS Star
S_NIGHTSSTAR,
S_NIGHTSSTARXMAS,
// Gravity Wells for special stages
S_GRAVWELLGREEN,
S_GRAVWELLRED,
// Individual Team Rings
S_TEAMRING,
// Special Stage Token
S_TOKEN,
// CTF Flags
S_REDFLAG,
S_BLUEFLAG,
// Emblem
S_EMBLEM1,
S_EMBLEM2,
S_EMBLEM3,
S_EMBLEM4,
S_EMBLEM5,
S_EMBLEM6,
S_EMBLEM7,
S_EMBLEM8,
S_EMBLEM9,
S_EMBLEM10,
S_EMBLEM11,
S_EMBLEM12,
S_EMBLEM13,
S_EMBLEM14,
S_EMBLEM15,
S_EMBLEM16,
S_EMBLEM17,
S_EMBLEM18,
S_EMBLEM19,
S_EMBLEM20,
S_EMBLEM21,
S_EMBLEM22,
S_EMBLEM23,
S_EMBLEM24,
S_EMBLEM25,
S_EMBLEM26,
// Chaos Emeralds
S_CEMG1,
S_CEMG2,
S_CEMG3,
S_CEMG4,
S_CEMG5,
S_CEMG6,
S_CEMG7,
// Emerald hunt shards
S_SHRD1,
S_SHRD2,
S_SHRD3,
// Bubble Source
S_BUBBLES1,
S_BUBBLES2,
S_BUBBLES3,
S_BUBBLES4,
// Level End Sign
S_SIGN,
S_SIGNSPIN1,
S_SIGNSPIN2,
S_SIGNSPIN3,
S_SIGNSPIN4,
S_SIGNSPIN5,
S_SIGNSPIN6,
S_SIGNPLAYER,
S_SIGNSLOW,
S_SIGNSTOP,
S_SIGNBOARD,
S_EGGMANSIGN,
S_CLEARSIGN,
// Spike Ball
S_SPIKEBALL1,
S_SPIKEBALL2,
S_SPIKEBALL3,
S_SPIKEBALL4,
S_SPIKEBALL5,
S_SPIKEBALL6,
S_SPIKEBALL7,
S_SPIKEBALL8,
// Elemental Shield's Spawn
S_SPINFIRE1,
S_SPINFIRE2,
S_SPINFIRE3,
S_SPINFIRE4,
S_SPINFIRE5,
S_SPINFIRE6,
S_TEAM_SPINFIRE1,
S_TEAM_SPINFIRE2,
S_TEAM_SPINFIRE3,
S_TEAM_SPINFIRE4,
S_TEAM_SPINFIRE5,
S_TEAM_SPINFIRE6,
// Spikes
S_SPIKE1,
S_SPIKE2,
S_SPIKE3,
S_SPIKE4,
S_SPIKE5,
S_SPIKE6,
S_SPIKED1,
S_SPIKED2,
// Wall spikes
S_WALLSPIKE1,
S_WALLSPIKE2,
S_WALLSPIKE3,
S_WALLSPIKE4,
S_WALLSPIKE5,
S_WALLSPIKE6,
S_WALLSPIKEBASE,
S_WALLSPIKED1,
S_WALLSPIKED2,
// Starpost
S_STARPOST_IDLE,
S_STARPOST_FLASH,
S_STARPOST_STARTSPIN,
S_STARPOST_SPIN,
S_STARPOST_ENDSPIN,
// Big floating mine
S_BIGMINE_IDLE,
S_BIGMINE_ALERT1,
S_BIGMINE_ALERT2,
S_BIGMINE_ALERT3,
S_BIGMINE_SET1,
S_BIGMINE_SET2,
S_BIGMINE_SET3,
S_BIGMINE_BLAST1,
S_BIGMINE_BLAST2,
S_BIGMINE_BLAST3,
S_BIGMINE_BLAST4,
S_BIGMINE_BLAST5,
// Cannon Launcher
S_CANNONLAUNCHER1,
S_CANNONLAUNCHER2,
S_CANNONLAUNCHER3,
// Monitor Miscellany
S_BOXSPARKLE1,
S_BOXSPARKLE2,
S_BOXSPARKLE3,
S_BOXSPARKLE4,
S_BOX_FLICKER,
S_BOX_POP1,
S_BOX_POP2,
S_GOLDBOX_FLICKER,
S_GOLDBOX_OFF1,
S_GOLDBOX_OFF2,
S_GOLDBOX_OFF3,
S_GOLDBOX_OFF4,
S_GOLDBOX_OFF5,
S_GOLDBOX_OFF6,
S_GOLDBOX_OFF7,
// Monitor States (one per box)
S_MYSTERY_BOX,
S_RING_BOX,
S_PITY_BOX,
S_ATTRACT_BOX,
S_FORCE_BOX,
S_ARMAGEDDON_BOX,
S_WHIRLWIND_BOX,
S_ELEMENTAL_BOX,
S_SNEAKERS_BOX,
S_INVULN_BOX,
S_1UP_BOX,
S_EGGMAN_BOX,
S_MIXUP_BOX,
S_GRAVITY_BOX,
S_RECYCLER_BOX,
S_SCORE1K_BOX,
S_SCORE10K_BOX,
S_FLAMEAURA_BOX,
S_BUBBLEWRAP_BOX,
S_THUNDERCOIN_BOX,
// Gold Repeat Monitor States (one per box)
S_PITY_GOLDBOX,
S_ATTRACT_GOLDBOX,
S_FORCE_GOLDBOX,
S_ARMAGEDDON_GOLDBOX,
S_WHIRLWIND_GOLDBOX,
S_ELEMENTAL_GOLDBOX,
S_SNEAKERS_GOLDBOX,
S_INVULN_GOLDBOX,
S_EGGMAN_GOLDBOX,
S_GRAVITY_GOLDBOX,
S_FLAMEAURA_GOLDBOX,
S_BUBBLEWRAP_GOLDBOX,
S_THUNDERCOIN_GOLDBOX,
// Team Ring Boxes (these are special)
S_RING_REDBOX1,
S_RING_REDBOX2,
S_REDBOX_POP1,
S_REDBOX_POP2,
S_RING_BLUEBOX1,
S_RING_BLUEBOX2,
S_BLUEBOX_POP1,
S_BLUEBOX_POP2,
// Box Icons -- 2 states each, animation and action
S_RING_ICON1,
S_RING_ICON2,
S_PITY_ICON1,
S_PITY_ICON2,
S_ATTRACT_ICON1,
S_ATTRACT_ICON2,
S_FORCE_ICON1,
S_FORCE_ICON2,
S_ARMAGEDDON_ICON1,
S_ARMAGEDDON_ICON2,
S_WHIRLWIND_ICON1,
S_WHIRLWIND_ICON2,
S_ELEMENTAL_ICON1,
S_ELEMENTAL_ICON2,
S_SNEAKERS_ICON1,
S_SNEAKERS_ICON2,
S_INVULN_ICON1,
S_INVULN_ICON2,
S_1UP_ICON1,
S_1UP_ICON2,
S_EGGMAN_ICON1,
S_EGGMAN_ICON2,
S_MIXUP_ICON1,
S_MIXUP_ICON2,
S_GRAVITY_ICON1,
S_GRAVITY_ICON2,
S_RECYCLER_ICON1,
S_RECYCLER_ICON2,
S_SCORE1K_ICON1,
S_SCORE1K_ICON2,
S_SCORE10K_ICON1,
S_SCORE10K_ICON2,
S_FLAMEAURA_ICON1,
S_FLAMEAURA_ICON2,
S_BUBBLEWRAP_ICON1,
S_BUBBLEWRAP_ICON2,
S_THUNDERCOIN_ICON1,
S_THUNDERCOIN_ICON2,
// ---
S_ROCKET,
S_LASER,
S_LASER2,
S_LASERFLASH,
S_LASERFLAME1,
S_LASERFLAME2,
S_LASERFLAME3,
S_LASERFLAME4,
S_LASERFLAME5,
S_TORPEDO,
S_ENERGYBALL1,
S_ENERGYBALL2,
// Skim Mine, also used by Jetty-Syn bomber
S_MINE1,
S_MINE_BOOM1,
S_MINE_BOOM2,
S_MINE_BOOM3,
S_MINE_BOOM4,
// Jetty-Syn Bullet
S_JETBULLET1,
S_JETBULLET2,
S_TURRETLASER,
S_TURRETLASEREXPLODE1,
S_TURRETLASEREXPLODE2,
// Cannonball
S_CANNONBALL1,
// Arrow
S_ARROW,
S_ARROWBONK,
// Glaregoyle Demon fire
S_DEMONFIRE,
// The letter
S_LETTER,
// Tutorial scenery
S_TUTORIALLEAF1,
S_TUTORIALLEAF2,
S_TUTORIALLEAF3,
S_TUTORIALLEAF4,
S_TUTORIALLEAF5,
S_TUTORIALLEAF6,
S_TUTORIALLEAF7,
S_TUTORIALLEAF8,
S_TUTORIALLEAF9,
S_TUTORIALLEAF10,
S_TUTORIALLEAF11,
S_TUTORIALLEAF12,
S_TUTORIALLEAF13,
S_TUTORIALLEAF14,
S_TUTORIALLEAF15,
S_TUTORIALLEAF16,
S_TUTORIALFLOWER1,
S_TUTORIALFLOWER2,
S_TUTORIALFLOWER3,
S_TUTORIALFLOWER4,
S_TUTORIALFLOWER5,
S_TUTORIALFLOWER6,
S_TUTORIALFLOWER7,
S_TUTORIALFLOWER8,
S_TUTORIALFLOWER9,
S_TUTORIALFLOWER10,
S_TUTORIALFLOWER11,
S_TUTORIALFLOWER12,
S_TUTORIALFLOWER13,
S_TUTORIALFLOWER14,
S_TUTORIALFLOWER15,
S_TUTORIALFLOWER16,
S_TUTORIALFLOWERF1,
S_TUTORIALFLOWERF2,
S_TUTORIALFLOWERF3,
S_TUTORIALFLOWERF4,
S_TUTORIALFLOWERF5,
S_TUTORIALFLOWERF6,
S_TUTORIALFLOWERF7,
S_TUTORIALFLOWERF8,
S_TUTORIALFLOWERF9,
S_TUTORIALFLOWERF10,
S_TUTORIALFLOWERF11,
S_TUTORIALFLOWERF12,
S_TUTORIALFLOWERF13,
S_TUTORIALFLOWERF14,
S_TUTORIALFLOWERF15,
S_TUTORIALFLOWERF16,
// GFZ flowers
S_GFZFLOWERA,
S_GFZFLOWERB,
S_GFZFLOWERC,
S_BLUEBERRYBUSH,
S_BERRYBUSH,
S_BUSH,
// Trees (both GFZ and misc)
S_GFZTREE,
S_GFZBERRYTREE,
S_GFZCHERRYTREE,
S_CHECKERTREE,
S_CHECKERSUNSETTREE,
S_FHZTREE, // Frozen Hillside
S_FHZPINKTREE,
S_POLYGONTREE,
S_BUSHTREE,
S_BUSHREDTREE,
S_SPRINGTREE,
// THZ flowers
S_THZFLOWERA, // THZ1 Steam flower
S_THZFLOWERB, // THZ1 Spin flower (red)
S_THZFLOWERC, // THZ1 Spin flower (yellow)
// THZ Steam Whistle tree/bush
S_THZTREE,
S_THZTREEBRANCH1,
S_THZTREEBRANCH2,
S_THZTREEBRANCH3,
S_THZTREEBRANCH4,
S_THZTREEBRANCH5,
S_THZTREEBRANCH6,
S_THZTREEBRANCH7,
S_THZTREEBRANCH8,
S_THZTREEBRANCH9,
S_THZTREEBRANCH10,
S_THZTREEBRANCH11,
S_THZTREEBRANCH12,
S_THZTREEBRANCH13,
// THZ Alarm
S_ALARM1,
// Deep Sea Gargoyle
S_GARGOYLE,
S_BIGGARGOYLE,
// DSZ Seaweed
S_SEAWEED1,
S_SEAWEED2,
S_SEAWEED3,
S_SEAWEED4,
S_SEAWEED5,
S_SEAWEED6,
// Dripping Water
S_DRIPA1,
S_DRIPA2,
S_DRIPA3,
S_DRIPA4,
S_DRIPB1,
S_DRIPC1,
S_DRIPC2,
// Coral
S_CORAL1,
S_CORAL2,
S_CORAL3,
S_CORAL4,
S_CORAL5,
// Blue Crystal
S_BLUECRYSTAL1,
// Kelp,
S_KELP,
// Animated algae
S_ANIMALGAETOP1,
S_ANIMALGAETOP2,
S_ANIMALGAESEG,
// DSZ Stalagmites
S_DSZSTALAGMITE,
S_DSZ2STALAGMITE,
// DSZ Light beam
S_LIGHTBEAM1,
S_LIGHTBEAM2,
S_LIGHTBEAM3,
S_LIGHTBEAM4,
S_LIGHTBEAM5,
S_LIGHTBEAM6,
S_LIGHTBEAM7,
S_LIGHTBEAM8,
S_LIGHTBEAM9,
S_LIGHTBEAM10,
S_LIGHTBEAM11,
S_LIGHTBEAM12,
// CEZ Chain
S_CEZCHAIN,
// Flame
S_FLAME,
S_FLAMEPARTICLE,
S_FLAMEREST,
// Eggman Statue
S_EGGSTATUE1,
// CEZ hidden sling
S_SLING1,
S_SLING2,
// CEZ maces and chains
S_SMALLMACECHAIN,
S_BIGMACECHAIN,
S_SMALLMACE,
S_BIGMACE,
S_SMALLGRABCHAIN,
S_BIGGRABCHAIN,
// Blue spring on a ball
S_BLUESPRINGBALL,
S_BLUESPRINGBALL2,
S_BLUESPRINGBALL3,
S_BLUESPRINGBALL4,
S_BLUESPRINGBALL5,
// Yellow spring on a ball
S_YELLOWSPRINGBALL,
S_YELLOWSPRINGBALL2,
S_YELLOWSPRINGBALL3,
S_YELLOWSPRINGBALL4,
S_YELLOWSPRINGBALL5,
// Red spring on a ball
S_REDSPRINGBALL,
S_REDSPRINGBALL2,
S_REDSPRINGBALL3,
S_REDSPRINGBALL4,
S_REDSPRINGBALL5,
// Small Firebar
S_SMALLFIREBAR1,
S_SMALLFIREBAR2,
S_SMALLFIREBAR3,
S_SMALLFIREBAR4,
S_SMALLFIREBAR5,
S_SMALLFIREBAR6,
S_SMALLFIREBAR7,
S_SMALLFIREBAR8,
S_SMALLFIREBAR9,
S_SMALLFIREBAR10,
S_SMALLFIREBAR11,
S_SMALLFIREBAR12,
S_SMALLFIREBAR13,
S_SMALLFIREBAR14,
S_SMALLFIREBAR15,
S_SMALLFIREBAR16,
// Big Firebar
S_BIGFIREBAR1,
S_BIGFIREBAR2,
S_BIGFIREBAR3,
S_BIGFIREBAR4,
S_BIGFIREBAR5,
S_BIGFIREBAR6,
S_BIGFIREBAR7,
S_BIGFIREBAR8,
S_BIGFIREBAR9,
S_BIGFIREBAR10,
S_BIGFIREBAR11,
S_BIGFIREBAR12,
S_BIGFIREBAR13,
S_BIGFIREBAR14,
S_BIGFIREBAR15,
S_BIGFIREBAR16,
S_CEZFLOWER,
S_CEZPOLE,
S_CEZBANNER1,
S_CEZBANNER2,
S_PINETREE,
S_CEZBUSH1,
S_CEZBUSH2,
S_CANDLE,
S_CANDLEPRICKET,
S_FLAMEHOLDER,
S_FIRETORCH,
S_WAVINGFLAG,
S_WAVINGFLAGSEG1,
S_WAVINGFLAGSEG2,
S_CRAWLASTATUE,
S_FACESTABBERSTATUE,
S_SUSPICIOUSFACESTABBERSTATUE_WAIT,
S_SUSPICIOUSFACESTABBERSTATUE_BURST1,
S_SUSPICIOUSFACESTABBERSTATUE_BURST2,
S_BRAMBLES,
// Big Tumbleweed
S_BIGTUMBLEWEED,
S_BIGTUMBLEWEED_ROLL1,
S_BIGTUMBLEWEED_ROLL2,
S_BIGTUMBLEWEED_ROLL3,
S_BIGTUMBLEWEED_ROLL4,
S_BIGTUMBLEWEED_ROLL5,
S_BIGTUMBLEWEED_ROLL6,
S_BIGTUMBLEWEED_ROLL7,
S_BIGTUMBLEWEED_ROLL8,
// Little Tumbleweed
S_LITTLETUMBLEWEED,
S_LITTLETUMBLEWEED_ROLL1,
S_LITTLETUMBLEWEED_ROLL2,
S_LITTLETUMBLEWEED_ROLL3,
S_LITTLETUMBLEWEED_ROLL4,
S_LITTLETUMBLEWEED_ROLL5,
S_LITTLETUMBLEWEED_ROLL6,
S_LITTLETUMBLEWEED_ROLL7,
S_LITTLETUMBLEWEED_ROLL8,
// Cacti
S_CACTI1,
S_CACTI2,
S_CACTI3,
S_CACTI4,
S_CACTI5,
S_CACTI6,
S_CACTI7,
S_CACTI8,
S_CACTI9,
S_CACTI10,
S_CACTI11,
S_CACTITINYSEG,
S_CACTISMALLSEG,
// Warning signs
S_ARIDSIGN_CAUTION,
S_ARIDSIGN_CACTI,
S_ARIDSIGN_SHARPTURN,
// Oil lamp
S_OILLAMP,
S_OILLAMPFLARE,
// TNT barrel
S_TNTBARREL_STND1,
S_TNTBARREL_EXPL1,
S_TNTBARREL_EXPL2,
S_TNTBARREL_EXPL3,
S_TNTBARREL_EXPL4,
S_TNTBARREL_EXPL5,
S_TNTBARREL_EXPL6,
S_TNTBARREL_EXPL7,
S_TNTBARREL_FLYING,
// TNT proximity shell
S_PROXIMITY_TNT,
S_PROXIMITY_TNT_TRIGGER1,
S_PROXIMITY_TNT_TRIGGER2,
S_PROXIMITY_TNT_TRIGGER3,
S_PROXIMITY_TNT_TRIGGER4,
S_PROXIMITY_TNT_TRIGGER5,
S_PROXIMITY_TNT_TRIGGER6,
S_PROXIMITY_TNT_TRIGGER7,
S_PROXIMITY_TNT_TRIGGER8,
S_PROXIMITY_TNT_TRIGGER9,
S_PROXIMITY_TNT_TRIGGER10,
S_PROXIMITY_TNT_TRIGGER11,
S_PROXIMITY_TNT_TRIGGER12,
S_PROXIMITY_TNT_TRIGGER13,
S_PROXIMITY_TNT_TRIGGER14,
S_PROXIMITY_TNT_TRIGGER15,
S_PROXIMITY_TNT_TRIGGER16,
S_PROXIMITY_TNT_TRIGGER17,
S_PROXIMITY_TNT_TRIGGER18,
S_PROXIMITY_TNT_TRIGGER19,
S_PROXIMITY_TNT_TRIGGER20,
S_PROXIMITY_TNT_TRIGGER21,
S_PROXIMITY_TNT_TRIGGER22,
S_PROXIMITY_TNT_TRIGGER23,
// Dust devil
S_DUSTDEVIL,
S_DUSTLAYER1,
S_DUSTLAYER2,
S_DUSTLAYER3,
S_DUSTLAYER4,
S_DUSTLAYER5,
S_ARIDDUST1,
S_ARIDDUST2,
S_ARIDDUST3,
// Minecart
S_MINECART_IDLE,
S_MINECART_DTH1,
S_MINECARTEND,
S_MINECARTSEG_FRONT,
S_MINECARTSEG_BACK,
S_MINECARTSEG_LEFT,
S_MINECARTSEG_RIGHT,
S_MINECARTSIDEMARK1,
S_MINECARTSIDEMARK2,
S_MINECARTSPARK,
// Saloon door
S_SALOONDOOR,
S_SALOONDOORCENTER,
// Train cameo
S_TRAINCAMEOSPAWNER_1,
S_TRAINCAMEOSPAWNER_2,
S_TRAINCAMEOSPAWNER_3,
S_TRAINCAMEOSPAWNER_4,
S_TRAINCAMEOSPAWNER_5,
S_TRAINPUFFMAKER,
// Train
S_TRAINDUST,
S_TRAINSTEAM,
// Flame jet
S_FLAMEJETSTND,
S_FLAMEJETSTART,
S_FLAMEJETSTOP,
S_FLAMEJETFLAME1,
S_FLAMEJETFLAME2,
S_FLAMEJETFLAME3,
S_FLAMEJETFLAME4,
S_FLAMEJETFLAME5,
S_FLAMEJETFLAME6,
S_FLAMEJETFLAME7,
S_FLAMEJETFLAME8,
S_FLAMEJETFLAME9,
// Spinning flame jets
S_FJSPINAXISA1, // Counter-clockwise
S_FJSPINAXISA2,
S_FJSPINAXISB1, // Clockwise
S_FJSPINAXISB2,
// Blade's flame
S_FLAMEJETFLAMEB1,
S_FLAMEJETFLAMEB2,
S_FLAMEJETFLAMEB3,
// Lavafall
S_LAVAFALL_DORMANT,
S_LAVAFALL_TELL,
S_LAVAFALL_SHOOT,
S_LAVAFALL_LAVA1,
S_LAVAFALL_LAVA2,
S_LAVAFALL_LAVA3,
S_LAVAFALLROCK,
// Rollout Rock
S_ROLLOUTSPAWN,
S_ROLLOUTROCK,
// RVZ scenery
S_BIGFERNLEAF,
S_BIGFERN1,
S_BIGFERN2,
S_JUNGLEPALM,
S_TORCHFLOWER,
S_WALLVINE_LONG,
S_WALLVINE_SHORT,
// Glaregoyles
S_GLAREGOYLE,
S_GLAREGOYLE_CHARGE,
S_GLAREGOYLE_BLINK,
S_GLAREGOYLE_HOLD,
S_GLAREGOYLE_FIRE,
S_GLAREGOYLE_LOOP,
S_GLAREGOYLE_COOLDOWN,
S_GLAREGOYLEUP,
S_GLAREGOYLEUP_CHARGE,
S_GLAREGOYLEUP_BLINK,
S_GLAREGOYLEUP_HOLD,
S_GLAREGOYLEUP_FIRE,
S_GLAREGOYLEUP_LOOP,
S_GLAREGOYLEUP_COOLDOWN,
S_GLAREGOYLEDOWN,
S_GLAREGOYLEDOWN_CHARGE,
S_GLAREGOYLEDOWN_BLINK,
S_GLAREGOYLEDOWN_HOLD,
S_GLAREGOYLEDOWN_FIRE,
S_GLAREGOYLEDOWN_LOOP,
S_GLAREGOYLEDOWN_COOLDOWN,
S_GLAREGOYLELONG,
S_GLAREGOYLELONG_CHARGE,
S_GLAREGOYLELONG_BLINK,
S_GLAREGOYLELONG_HOLD,
S_GLAREGOYLELONG_FIRE,
S_GLAREGOYLELONG_LOOP,
S_GLAREGOYLELONG_COOLDOWN,
// ATZ's Red Crystal/Target
S_TARGET_IDLE,
S_TARGET_HIT1,
S_TARGET_HIT2,
S_TARGET_RESPAWN,
S_TARGET_ALLDONE,
// ATZ's green flame
S_GREENFLAME,
// ATZ Blue Gargoyle
S_BLUEGARGOYLE,
// Stalagmites
S_STG0,
S_STG1,
S_STG2,
S_STG3,
S_STG4,
S_STG5,
S_STG6,
S_STG7,
S_STG8,
S_STG9,
// Xmas-specific stuff
S_XMASPOLE,
S_CANDYCANE,
S_SNOWMAN, // normal
S_SNOWMANHAT, // with hat + scarf
S_LAMPPOST1, // normal
S_LAMPPOST2, // with snow
S_HANGSTAR,
S_MISTLETOE,
// Xmas GFZ bushes
S_XMASBLUEBERRYBUSH,
S_XMASBERRYBUSH,
S_XMASBUSH,
// FHZ
S_FHZICE1,
S_FHZICE2,
S_ROSY_IDLE1,
S_ROSY_IDLE2,
S_ROSY_IDLE3,
S_ROSY_IDLE4,
S_ROSY_JUMP,
S_ROSY_WALK,
S_ROSY_HUG,
S_ROSY_PAIN,
S_ROSY_STND,
S_ROSY_UNHAPPY,
// Halloween Scenery
// Pumpkins
S_JACKO1,
S_JACKO1OVERLAY_1,
S_JACKO1OVERLAY_2,
S_JACKO1OVERLAY_3,
S_JACKO1OVERLAY_4,
S_JACKO2,
S_JACKO2OVERLAY_1,
S_JACKO2OVERLAY_2,
S_JACKO2OVERLAY_3,
S_JACKO2OVERLAY_4,
S_JACKO3,
S_JACKO3OVERLAY_1,
S_JACKO3OVERLAY_2,
S_JACKO3OVERLAY_3,
S_JACKO3OVERLAY_4,
// Dr Seuss Trees
S_HHZTREE_TOP,
S_HHZTREE_TRUNK,
S_HHZTREE_LEAF,
// Mushroom
S_HHZSHROOM_1,
S_HHZSHROOM_2,
S_HHZSHROOM_3,
S_HHZSHROOM_4,
S_HHZSHROOM_5,
S_HHZSHROOM_6,
S_HHZSHROOM_7,
S_HHZSHROOM_8,
S_HHZSHROOM_9,
S_HHZSHROOM_10,
S_HHZSHROOM_11,
S_HHZSHROOM_12,
S_HHZSHROOM_13,
S_HHZSHROOM_14,
S_HHZSHROOM_15,
S_HHZSHROOM_16,
// Misc
S_HHZGRASS,
S_HHZTENT1,
S_HHZTENT2,
S_HHZSTALAGMITE_TALL,
S_HHZSTALAGMITE_SHORT,
// Botanic Serenity's loads of scenery states
S_BSZTALLFLOWER_RED,
S_BSZTALLFLOWER_PURPLE,
S_BSZTALLFLOWER_BLUE,
S_BSZTALLFLOWER_CYAN,
S_BSZTALLFLOWER_YELLOW,
S_BSZTALLFLOWER_ORANGE,
S_BSZFLOWER_RED,
S_BSZFLOWER_PURPLE,
S_BSZFLOWER_BLUE,
S_BSZFLOWER_CYAN,
S_BSZFLOWER_YELLOW,
S_BSZFLOWER_ORANGE,
S_BSZSHORTFLOWER_RED,
S_BSZSHORTFLOWER_PURPLE,
S_BSZSHORTFLOWER_BLUE,
S_BSZSHORTFLOWER_CYAN,
S_BSZSHORTFLOWER_YELLOW,
S_BSZSHORTFLOWER_ORANGE,
S_BSZTULIP_RED,
S_BSZTULIP_PURPLE,
S_BSZTULIP_BLUE,
S_BSZTULIP_CYAN,
S_BSZTULIP_YELLOW,
S_BSZTULIP_ORANGE,
S_BSZCLUSTER_RED,
S_BSZCLUSTER_PURPLE,
S_BSZCLUSTER_BLUE,
S_BSZCLUSTER_CYAN,
S_BSZCLUSTER_YELLOW,
S_BSZCLUSTER_ORANGE,
S_BSZBUSH_RED,
S_BSZBUSH_PURPLE,
S_BSZBUSH_BLUE,
S_BSZBUSH_CYAN,
S_BSZBUSH_YELLOW,
S_BSZBUSH_ORANGE,
S_BSZVINE_RED,
S_BSZVINE_PURPLE,
S_BSZVINE_BLUE,
S_BSZVINE_CYAN,
S_BSZVINE_YELLOW,
S_BSZVINE_ORANGE,
S_BSZSHRUB,
S_BSZCLOVER,
S_BIG_PALMTREE_TRUNK,
S_BIG_PALMTREE_TOP,
S_PALMTREE_TRUNK,
S_PALMTREE_TOP,
S_DBALL1,
S_DBALL2,
S_DBALL3,
S_DBALL4,
S_DBALL5,
S_DBALL6,
S_EGGSTATUE2,
// Shield Orb
S_ARMA1,
S_ARMA2,
S_ARMA3,
S_ARMA4,
S_ARMA5,
S_ARMA6,
S_ARMA7,
S_ARMA8,
S_ARMA9,
S_ARMA10,
S_ARMA11,
S_ARMA12,
S_ARMA13,
S_ARMA14,
S_ARMA15,
S_ARMA16,
S_ARMF1,
S_ARMF2,
S_ARMF3,
S_ARMF4,
S_ARMF5,
S_ARMF6,
S_ARMF7,
S_ARMF8,
S_ARMF9,
S_ARMF10,
S_ARMF11,
S_ARMF12,
S_ARMF13,
S_ARMF14,
S_ARMF15,
S_ARMF16,
S_ARMF17,
S_ARMF18,
S_ARMF19,
S_ARMF20,
S_ARMF21,
S_ARMF22,
S_ARMF23,
S_ARMF24,
S_ARMF25,
S_ARMF26,
S_ARMF27,
S_ARMF28,
S_ARMF29,
S_ARMF30,
S_ARMF31,
S_ARMF32,
S_ARMB1,
S_ARMB2,
S_ARMB3,
S_ARMB4,
S_ARMB5,
S_ARMB6,
S_ARMB7,
S_ARMB8,
S_ARMB9,
S_ARMB10,
S_ARMB11,
S_ARMB12,
S_ARMB13,
S_ARMB14,
S_ARMB15,
S_ARMB16,
S_ARMB17,
S_ARMB18,
S_ARMB19,
S_ARMB20,
S_ARMB21,
S_ARMB22,
S_ARMB23,
S_ARMB24,
S_ARMB25,
S_ARMB26,
S_ARMB27,
S_ARMB28,
S_ARMB29,
S_ARMB30,
S_ARMB31,
S_ARMB32,
S_WIND1,
S_WIND2,
S_WIND3,
S_WIND4,
S_WIND5,
S_WIND6,
S_WIND7,
S_WIND8,
S_MAGN1,
S_MAGN2,
S_MAGN3,
S_MAGN4,
S_MAGN5,
S_MAGN6,
S_MAGN7,
S_MAGN8,
S_MAGN9,
S_MAGN10,
S_MAGN11,
S_MAGN12,
S_MAGN13,
S_FORC1,
S_FORC2,
S_FORC3,
S_FORC4,
S_FORC5,
S_FORC6,
S_FORC7,
S_FORC8,
S_FORC9,
S_FORC10,
S_FORC11,
S_FORC12,
S_FORC13,
S_FORC14,
S_FORC15,
S_FORC16,
S_FORC17,
S_FORC18,
S_FORC19,
S_FORC20,
S_FORC21,
S_ELEM1,
S_ELEM2,
S_ELEM3,
S_ELEM4,
S_ELEM5,
S_ELEM6,
S_ELEM7,
S_ELEM8,
S_ELEM9,
S_ELEM10,
S_ELEM11,
S_ELEM12,
S_ELEM13,
S_ELEM14,
S_ELEMF1,
S_ELEMF2,
S_ELEMF3,
S_ELEMF4,
S_ELEMF5,
S_ELEMF6,
S_ELEMF7,
S_ELEMF8,
S_ELEMF9,
S_ELEMF10,
S_PITY1,
S_PITY2,
S_PITY3,
S_PITY4,
S_PITY5,
S_PITY6,
S_PITY7,
S_PITY8,
S_PITY9,
S_PITY10,
S_PITY11,
S_PITY12,
S_FIRS1,
S_FIRS2,
S_FIRS3,
S_FIRS4,
S_FIRS5,
S_FIRS6,
S_FIRS7,
S_FIRS8,
S_FIRS9,
S_FIRS10,
S_FIRS11,
S_FIRSB1,
S_FIRSB2,
S_FIRSB3,
S_FIRSB4,
S_FIRSB5,
S_FIRSB6,
S_FIRSB7,
S_FIRSB8,
S_FIRSB9,
S_FIRSB10,
S_BUBS1,
S_BUBS2,
S_BUBS3,
S_BUBS4,
S_BUBS5,
S_BUBS6,
S_BUBS7,
S_BUBS8,
S_BUBS9,
S_BUBS10,
S_BUBS11,
S_BUBSB1,
S_BUBSB2,
S_BUBSB3,
S_BUBSB4,
S_BUBSB5,
S_BUBSB6,
S_ZAPS1,
S_ZAPS2,
S_ZAPS3,
S_ZAPS4,
S_ZAPS5,
S_ZAPS6,
S_ZAPS7,
S_ZAPS8,
S_ZAPS9,
S_ZAPS10,
S_ZAPS11,
S_ZAPS12,
S_ZAPS13, // blank frame
S_ZAPS14,
S_ZAPS15,
S_ZAPS16,
S_ZAPSB1, // blank frame
S_ZAPSB2,
S_ZAPSB3,
S_ZAPSB4,
S_ZAPSB5,
S_ZAPSB6,
S_ZAPSB7,
S_ZAPSB8,
S_ZAPSB9,
S_ZAPSB10,
S_ZAPSB11, // blank frame
//Thunder spark
S_THUNDERCOIN_SPARK,
// Invincibility Sparkles
S_IVSP,
// Super Sonic Spark
S_SSPK1,
S_SSPK2,
S_SSPK3,
S_SSPK4,
S_SSPK5,
// Flicky-sized bubble
S_FLICKY_BUBBLE,
// Bluebird
S_FLICKY_01_OUT,
S_FLICKY_01_FLAP1,
S_FLICKY_01_FLAP2,
S_FLICKY_01_FLAP3,
S_FLICKY_01_STAND,
S_FLICKY_01_CENTER,
// Rabbit
S_FLICKY_02_OUT,
S_FLICKY_02_AIM,
S_FLICKY_02_HOP,
S_FLICKY_02_UP,
S_FLICKY_02_DOWN,
S_FLICKY_02_STAND,
S_FLICKY_02_CENTER,
// Chicken
S_FLICKY_03_OUT,
S_FLICKY_03_AIM,
S_FLICKY_03_HOP,
S_FLICKY_03_UP,
S_FLICKY_03_FLAP1,
S_FLICKY_03_FLAP2,
S_FLICKY_03_STAND,
S_FLICKY_03_CENTER,
// Seal
S_FLICKY_04_OUT,
S_FLICKY_04_AIM,
S_FLICKY_04_HOP,
S_FLICKY_04_UP,
S_FLICKY_04_DOWN,
S_FLICKY_04_SWIM1,
S_FLICKY_04_SWIM2,
S_FLICKY_04_SWIM3,
S_FLICKY_04_SWIM4,
S_FLICKY_04_STAND,
S_FLICKY_04_CENTER,
// Pig
S_FLICKY_05_OUT,
S_FLICKY_05_AIM,
S_FLICKY_05_HOP,
S_FLICKY_05_UP,
S_FLICKY_05_DOWN,
S_FLICKY_05_STAND,
S_FLICKY_05_CENTER,
// Chipmunk
S_FLICKY_06_OUT,
S_FLICKY_06_AIM,
S_FLICKY_06_HOP,
S_FLICKY_06_UP,
S_FLICKY_06_DOWN,
S_FLICKY_06_STAND,
S_FLICKY_06_CENTER,
// Penguin
S_FLICKY_07_OUT,
S_FLICKY_07_AIML,
S_FLICKY_07_HOPL,
S_FLICKY_07_UPL,
S_FLICKY_07_DOWNL,
S_FLICKY_07_AIMR,
S_FLICKY_07_HOPR,
S_FLICKY_07_UPR,
S_FLICKY_07_DOWNR,
S_FLICKY_07_SWIM1,
S_FLICKY_07_SWIM2,
S_FLICKY_07_SWIM3,
S_FLICKY_07_STAND,
S_FLICKY_07_CENTER,
// Fish
S_FLICKY_08_OUT,
S_FLICKY_08_AIM,
S_FLICKY_08_HOP,
S_FLICKY_08_FLAP1,
S_FLICKY_08_FLAP2,
S_FLICKY_08_FLAP3,
S_FLICKY_08_FLAP4,
S_FLICKY_08_SWIM1,
S_FLICKY_08_SWIM2,
S_FLICKY_08_SWIM3,
S_FLICKY_08_SWIM4,
S_FLICKY_08_STAND,
S_FLICKY_08_CENTER,
// Ram
S_FLICKY_09_OUT,
S_FLICKY_09_AIM,
S_FLICKY_09_HOP,
S_FLICKY_09_UP,
S_FLICKY_09_DOWN,
S_FLICKY_09_STAND,
S_FLICKY_09_CENTER,
// Puffin
S_FLICKY_10_OUT,
S_FLICKY_10_FLAP1,
S_FLICKY_10_FLAP2,
S_FLICKY_10_STAND,
S_FLICKY_10_CENTER,
// Cow
S_FLICKY_11_OUT,
S_FLICKY_11_AIM,
S_FLICKY_11_RUN1,
S_FLICKY_11_RUN2,
S_FLICKY_11_RUN3,
S_FLICKY_11_STAND,
S_FLICKY_11_CENTER,
// Rat
S_FLICKY_12_OUT,
S_FLICKY_12_AIM,
S_FLICKY_12_RUN1,
S_FLICKY_12_RUN2,
S_FLICKY_12_RUN3,
S_FLICKY_12_STAND,
S_FLICKY_12_CENTER,
// Bear
S_FLICKY_13_OUT,
S_FLICKY_13_AIM,
S_FLICKY_13_HOP,
S_FLICKY_13_UP,
S_FLICKY_13_DOWN,
S_FLICKY_13_STAND,
S_FLICKY_13_CENTER,
// Dove
S_FLICKY_14_OUT,
S_FLICKY_14_FLAP1,
S_FLICKY_14_FLAP2,
S_FLICKY_14_FLAP3,
S_FLICKY_14_STAND,
S_FLICKY_14_CENTER,
// Cat
S_FLICKY_15_OUT,
S_FLICKY_15_AIM,
S_FLICKY_15_HOP,
S_FLICKY_15_UP,
S_FLICKY_15_DOWN,
S_FLICKY_15_STAND,
S_FLICKY_15_CENTER,
// Canary
S_FLICKY_16_OUT,
S_FLICKY_16_FLAP1,
S_FLICKY_16_FLAP2,
S_FLICKY_16_FLAP3,
S_FLICKY_16_STAND,
S_FLICKY_16_CENTER,
// Spider
S_SECRETFLICKY_01_OUT,
S_SECRETFLICKY_01_AIM,
S_SECRETFLICKY_01_HOP,
S_SECRETFLICKY_01_UP,
S_SECRETFLICKY_01_DOWN,
S_SECRETFLICKY_01_STAND,
S_SECRETFLICKY_01_CENTER,
// Bat
S_SECRETFLICKY_02_OUT,
S_SECRETFLICKY_02_FLAP1,
S_SECRETFLICKY_02_FLAP2,
S_SECRETFLICKY_02_FLAP3,
S_SECRETFLICKY_02_STAND,
S_SECRETFLICKY_02_CENTER,
// Fan
S_FAN,
S_FAN2,
S_FAN3,
S_FAN4,
S_FAN5,
// Steam Riser
S_STEAM1,
S_STEAM2,
S_STEAM3,
S_STEAM4,
S_STEAM5,
S_STEAM6,
S_STEAM7,
S_STEAM8,
// Bumpers
S_BUMPER,
S_BUMPERHIT,
// Balloons
S_BALLOON,
S_BALLOONPOP1,
S_BALLOONPOP2,
S_BALLOONPOP3,
S_BALLOONPOP4,
S_BALLOONPOP5,
S_BALLOONPOP6,
// Yellow Spring
S_YELLOWSPRING,
S_YELLOWSPRING2,
S_YELLOWSPRING3,
S_YELLOWSPRING4,
S_YELLOWSPRING5,
// Red Spring
S_REDSPRING,
S_REDSPRING2,
S_REDSPRING3,
S_REDSPRING4,
S_REDSPRING5,
// Blue Spring
S_BLUESPRING,
S_BLUESPRING2,
S_BLUESPRING3,
S_BLUESPRING4,
S_BLUESPRING5,
// Yellow Diagonal Spring
S_YDIAG1,
S_YDIAG2,
S_YDIAG3,
S_YDIAG4,
S_YDIAG5,
S_YDIAG6,
S_YDIAG7,
S_YDIAG8,
// Red Diagonal Spring
S_RDIAG1,
S_RDIAG2,
S_RDIAG3,
S_RDIAG4,
S_RDIAG5,
S_RDIAG6,
S_RDIAG7,
S_RDIAG8,
// Blue Diagonal Spring
S_BDIAG1,
S_BDIAG2,
S_BDIAG3,
S_BDIAG4,
S_BDIAG5,
S_BDIAG6,
S_BDIAG7,
S_BDIAG8,
// Yellow Side Spring
S_YHORIZ1,
S_YHORIZ2,
S_YHORIZ3,
S_YHORIZ4,
S_YHORIZ5,
S_YHORIZ6,
S_YHORIZ7,
S_YHORIZ8,
// Red Side Spring
S_RHORIZ1,
S_RHORIZ2,
S_RHORIZ3,
S_RHORIZ4,
S_RHORIZ5,
S_RHORIZ6,
S_RHORIZ7,
S_RHORIZ8,
// Blue Side Spring
S_BHORIZ1,
S_BHORIZ2,
S_BHORIZ3,
S_BHORIZ4,
S_BHORIZ5,
S_BHORIZ6,
S_BHORIZ7,
S_BHORIZ8,
// Booster
S_BOOSTERSOUND,
S_YELLOWBOOSTERROLLER,
S_YELLOWBOOSTERSEG_LEFT,
S_YELLOWBOOSTERSEG_RIGHT,
S_YELLOWBOOSTERSEG_FACE,
S_REDBOOSTERROLLER,
S_REDBOOSTERSEG_LEFT,
S_REDBOOSTERSEG_RIGHT,
S_REDBOOSTERSEG_FACE,
// Rain
S_RAIN1,
S_RAINRETURN,
// Snowflake
S_SNOW1,
S_SNOW2,
S_SNOW3,
// Water Splish
S_SPLISH1,
S_SPLISH2,
S_SPLISH3,
S_SPLISH4,
S_SPLISH5,
S_SPLISH6,
S_SPLISH7,
S_SPLISH8,
S_SPLISH9,
// Lava Splish
S_LAVASPLISH,
// added water splash
S_SPLASH1,
S_SPLASH2,
S_SPLASH3,
// lava/slime damage burn smoke
S_SMOKE1,
S_SMOKE2,
S_SMOKE3,
S_SMOKE4,
S_SMOKE5,
// Bubbles
S_SMALLBUBBLE,
S_MEDIUMBUBBLE,
S_LARGEBUBBLE1,
S_LARGEBUBBLE2,
S_EXTRALARGEBUBBLE, // breathable
S_POP1, // Extra Large bubble goes POP!
S_WATERZAP,
// Spindash dust
S_SPINDUST1,
S_SPINDUST2,
S_SPINDUST3,
S_SPINDUST4,
S_SPINDUST_BUBBLE1,
S_SPINDUST_BUBBLE2,
S_SPINDUST_BUBBLE3,
S_SPINDUST_BUBBLE4,
S_SPINDUST_FIRE1,
S_SPINDUST_FIRE2,
S_SPINDUST_FIRE3,
S_SPINDUST_FIRE4,
S_FOG1,
S_FOG2,
S_FOG3,
S_FOG4,
S_FOG5,
S_FOG6,
S_FOG7,
S_FOG8,
S_FOG9,
S_FOG10,
S_FOG11,
S_FOG12,
S_FOG13,
S_FOG14,
S_SEED,
S_PARTICLE,
// Score Logos
S_SCRA, // 100
S_SCRB, // 200
S_SCRC, // 500
S_SCRD, // 1000
S_SCRE, // 10000
S_SCRF, // 400 (mario)
S_SCRG, // 800 (mario)
S_SCRH, // 2000 (mario)
S_SCRI, // 4000 (mario)
S_SCRJ, // 8000 (mario)
S_SCRK, // 1UP (mario)
S_SCRL, // 10
// Drowning Timer Numbers
S_ZERO1,
S_ONE1,
S_TWO1,
S_THREE1,
S_FOUR1,
S_FIVE1,
S_ZERO2,
S_ONE2,
S_TWO2,
S_THREE2,
S_FOUR2,
S_FIVE2,
S_FLIGHTINDICATOR,
S_LOCKON1,
S_LOCKON2,
S_LOCKON3,
S_LOCKON4,
S_LOCKONINF1,
S_LOCKONINF2,
S_LOCKONINF3,
S_LOCKONINF4,
// Tag Sign
S_TTAG,
// Got Flag Sign
S_GOTFLAG,
// Finish flag
S_FINISHFLAG,
S_CORK,
S_LHRT,
// Red Ring
S_RRNG1,
S_RRNG2,
S_RRNG3,
S_RRNG4,
S_RRNG5,
S_RRNG6,
S_RRNG7,
// Weapon Ring Ammo
S_BOUNCERINGAMMO,
S_RAILRINGAMMO,
S_INFINITYRINGAMMO,
S_AUTOMATICRINGAMMO,
S_EXPLOSIONRINGAMMO,
S_SCATTERRINGAMMO,
S_GRENADERINGAMMO,
// Weapon pickup
S_BOUNCEPICKUP,
S_BOUNCEPICKUPFADE1,
S_BOUNCEPICKUPFADE2,
S_BOUNCEPICKUPFADE3,
S_BOUNCEPICKUPFADE4,
S_BOUNCEPICKUPFADE5,
S_BOUNCEPICKUPFADE6,
S_BOUNCEPICKUPFADE7,
S_BOUNCEPICKUPFADE8,
S_RAILPICKUP,
S_RAILPICKUPFADE1,
S_RAILPICKUPFADE2,
S_RAILPICKUPFADE3,
S_RAILPICKUPFADE4,
S_RAILPICKUPFADE5,
S_RAILPICKUPFADE6,
S_RAILPICKUPFADE7,
S_RAILPICKUPFADE8,
S_AUTOPICKUP,
S_AUTOPICKUPFADE1,
S_AUTOPICKUPFADE2,
S_AUTOPICKUPFADE3,
S_AUTOPICKUPFADE4,
S_AUTOPICKUPFADE5,
S_AUTOPICKUPFADE6,
S_AUTOPICKUPFADE7,
S_AUTOPICKUPFADE8,
S_EXPLODEPICKUP,
S_EXPLODEPICKUPFADE1,
S_EXPLODEPICKUPFADE2,
S_EXPLODEPICKUPFADE3,
S_EXPLODEPICKUPFADE4,
S_EXPLODEPICKUPFADE5,
S_EXPLODEPICKUPFADE6,
S_EXPLODEPICKUPFADE7,
S_EXPLODEPICKUPFADE8,
S_SCATTERPICKUP,
S_SCATTERPICKUPFADE1,
S_SCATTERPICKUPFADE2,
S_SCATTERPICKUPFADE3,
S_SCATTERPICKUPFADE4,
S_SCATTERPICKUPFADE5,
S_SCATTERPICKUPFADE6,
S_SCATTERPICKUPFADE7,
S_SCATTERPICKUPFADE8,
S_GRENADEPICKUP,
S_GRENADEPICKUPFADE1,
S_GRENADEPICKUPFADE2,
S_GRENADEPICKUPFADE3,
S_GRENADEPICKUPFADE4,
S_GRENADEPICKUPFADE5,
S_GRENADEPICKUPFADE6,
S_GRENADEPICKUPFADE7,
S_GRENADEPICKUPFADE8,
// Thrown Weapon Rings
S_THROWNBOUNCE1,
S_THROWNBOUNCE2,
S_THROWNBOUNCE3,
S_THROWNBOUNCE4,
S_THROWNBOUNCE5,
S_THROWNBOUNCE6,
S_THROWNBOUNCE7,
S_THROWNINFINITY1,
S_THROWNINFINITY2,
S_THROWNINFINITY3,
S_THROWNINFINITY4,
S_THROWNINFINITY5,
S_THROWNINFINITY6,
S_THROWNINFINITY7,
S_THROWNAUTOMATIC1,
S_THROWNAUTOMATIC2,
S_THROWNAUTOMATIC3,
S_THROWNAUTOMATIC4,
S_THROWNAUTOMATIC5,
S_THROWNAUTOMATIC6,
S_THROWNAUTOMATIC7,
S_THROWNEXPLOSION1,
S_THROWNEXPLOSION2,
S_THROWNEXPLOSION3,
S_THROWNEXPLOSION4,
S_THROWNEXPLOSION5,
S_THROWNEXPLOSION6,
S_THROWNEXPLOSION7,
S_THROWNGRENADE1,
S_THROWNGRENADE2,
S_THROWNGRENADE3,
S_THROWNGRENADE4,
S_THROWNGRENADE5,
S_THROWNGRENADE6,
S_THROWNGRENADE7,
S_THROWNGRENADE8,
S_THROWNGRENADE9,
S_THROWNGRENADE10,
S_THROWNGRENADE11,
S_THROWNGRENADE12,
S_THROWNGRENADE13,
S_THROWNGRENADE14,
S_THROWNGRENADE15,
S_THROWNGRENADE16,
S_THROWNGRENADE17,
S_THROWNGRENADE18,
S_THROWNSCATTER,
S_RINGEXPLODE,
S_COIN1,
S_COIN2,
S_COIN3,
S_COINSPARKLE1,
S_COINSPARKLE2,
S_COINSPARKLE3,
S_COINSPARKLE4,
S_GOOMBA1,
S_GOOMBA1B,
S_GOOMBA2,
S_GOOMBA3,
S_GOOMBA4,
S_GOOMBA5,
S_GOOMBA6,
S_GOOMBA7,
S_GOOMBA8,
S_GOOMBA9,
S_GOOMBA_DEAD,
S_BLUEGOOMBA1,
S_BLUEGOOMBA1B,
S_BLUEGOOMBA2,
S_BLUEGOOMBA3,
S_BLUEGOOMBA4,
S_BLUEGOOMBA5,
S_BLUEGOOMBA6,
S_BLUEGOOMBA7,
S_BLUEGOOMBA8,
S_BLUEGOOMBA9,
S_BLUEGOOMBA_DEAD,
// Mario-specific stuff
S_FIREFLOWER1,
S_FIREFLOWER2,
S_FIREFLOWER3,
S_FIREFLOWER4,
S_FIREBALL,
S_FIREBALLTRAIL1,
S_FIREBALLTRAIL2,
S_SHELL,
S_PUMA_START1,
S_PUMA_START2,
S_PUMA_UP1,
S_PUMA_UP2,
S_PUMA_UP3,
S_PUMA_DOWN1,
S_PUMA_DOWN2,
S_PUMA_DOWN3,
S_PUMATRAIL1,
S_PUMATRAIL2,
S_PUMATRAIL3,
S_PUMATRAIL4,
S_HAMMER,
S_KOOPA1,
S_KOOPA2,
S_KOOPAFLAME1,
S_KOOPAFLAME2,
S_KOOPAFLAME3,
S_AXE1,
S_AXE2,
S_AXE3,
S_MARIOBUSH1,
S_MARIOBUSH2,
S_TOAD,
// Nights-specific stuff
S_NIGHTSDRONE_MAN1,
S_NIGHTSDRONE_MAN2,
S_NIGHTSDRONE_SPARKLING1,
S_NIGHTSDRONE_SPARKLING2,
S_NIGHTSDRONE_SPARKLING3,
S_NIGHTSDRONE_SPARKLING4,
S_NIGHTSDRONE_SPARKLING5,
S_NIGHTSDRONE_SPARKLING6,
S_NIGHTSDRONE_SPARKLING7,
S_NIGHTSDRONE_SPARKLING8,
S_NIGHTSDRONE_SPARKLING9,
S_NIGHTSDRONE_SPARKLING10,
S_NIGHTSDRONE_SPARKLING11,
S_NIGHTSDRONE_SPARKLING12,
S_NIGHTSDRONE_SPARKLING13,
S_NIGHTSDRONE_SPARKLING14,
S_NIGHTSDRONE_SPARKLING15,
S_NIGHTSDRONE_SPARKLING16,
S_NIGHTSDRONE_GOAL1,
S_NIGHTSDRONE_GOAL2,
S_NIGHTSDRONE_GOAL3,
S_NIGHTSDRONE_GOAL4,
S_NIGHTSPARKLE1,
S_NIGHTSPARKLE2,
S_NIGHTSPARKLE3,
S_NIGHTSPARKLE4,
S_NIGHTSPARKLESUPER1,
S_NIGHTSPARKLESUPER2,
S_NIGHTSPARKLESUPER3,
S_NIGHTSPARKLESUPER4,
S_NIGHTSLOOPHELPER,
// NiGHTS bumper
S_NIGHTSBUMPER1,
S_NIGHTSBUMPER2,
S_NIGHTSBUMPER3,
S_NIGHTSBUMPER4,
S_NIGHTSBUMPER5,
S_NIGHTSBUMPER6,
S_NIGHTSBUMPER7,
S_NIGHTSBUMPER8,
S_NIGHTSBUMPER9,
S_NIGHTSBUMPER10,
S_NIGHTSBUMPER11,
S_NIGHTSBUMPER12,
S_HOOP,
S_HOOP_XMASA,
S_HOOP_XMASB,
S_NIGHTSCORE10,
S_NIGHTSCORE20,
S_NIGHTSCORE30,
S_NIGHTSCORE40,
S_NIGHTSCORE50,
S_NIGHTSCORE60,
S_NIGHTSCORE70,
S_NIGHTSCORE80,
S_NIGHTSCORE90,
S_NIGHTSCORE100,
S_NIGHTSCORE10_2,
S_NIGHTSCORE20_2,
S_NIGHTSCORE30_2,
S_NIGHTSCORE40_2,
S_NIGHTSCORE50_2,
S_NIGHTSCORE60_2,
S_NIGHTSCORE70_2,
S_NIGHTSCORE80_2,
S_NIGHTSCORE90_2,
S_NIGHTSCORE100_2,
// NiGHTS Paraloop Powerups
S_NIGHTSSUPERLOOP,
S_NIGHTSDRILLREFILL,
S_NIGHTSHELPER,
S_NIGHTSEXTRATIME,
S_NIGHTSLINKFREEZE,
S_EGGCAPSULE,
// Orbiting Chaos Emeralds
S_ORBITEM1,
S_ORBITEM2,
S_ORBITEM3,
S_ORBITEM4,
S_ORBITEM5,
S_ORBITEM6,
S_ORBITEM7,
S_ORBITEM8,
S_ORBIDYA1,
S_ORBIDYA2,
S_ORBIDYA3,
S_ORBIDYA4,
S_ORBIDYA5,
// "Flicky" helper
S_NIGHTOPIANHELPER1,
S_NIGHTOPIANHELPER2,
S_NIGHTOPIANHELPER3,
S_NIGHTOPIANHELPER4,
S_NIGHTOPIANHELPER5,
S_NIGHTOPIANHELPER6,
S_NIGHTOPIANHELPER7,
S_NIGHTOPIANHELPER8,
S_NIGHTOPIANHELPER9,
// Nightopian
S_PIAN_LOOK1,
S_PIAN_LOOK2,
S_PIAN_LOOK3,
S_PIAN_FLY1,
S_PIAN_FLY2,
S_PIAN_FLY3,
S_PIAN_SING,
// Shleep
S_SHLEEP1,
S_SHLEEP2,
S_SHLEEP3,
S_SHLEEP4,
S_SHLEEPBOUNCE1,
S_SHLEEPBOUNCE2,
S_SHLEEPBOUNCE3,
// Secret badniks and hazards, shhhh
S_PENGUINATOR_LOOK,
S_PENGUINATOR_WADDLE1,
S_PENGUINATOR_WADDLE2,
S_PENGUINATOR_WADDLE3,
S_PENGUINATOR_WADDLE4,
S_PENGUINATOR_SLIDE1,
S_PENGUINATOR_SLIDE2,
S_PENGUINATOR_SLIDE3,
S_PENGUINATOR_SLIDE4,
S_PENGUINATOR_SLIDE5,
S_POPHAT_LOOK,
S_POPHAT_SHOOT1,
S_POPHAT_SHOOT2,
S_POPHAT_SHOOT3,
S_POPHAT_SHOOT4,
S_POPSHOT,
S_POPSHOT_TRAIL,
S_HIVEELEMENTAL_LOOK,
S_HIVEELEMENTAL_PREPARE1,
S_HIVEELEMENTAL_PREPARE2,
S_HIVEELEMENTAL_SHOOT1,
S_HIVEELEMENTAL_SHOOT2,
S_HIVEELEMENTAL_DORMANT,
S_HIVEELEMENTAL_PAIN,
S_HIVEELEMENTAL_DIE1,
S_HIVEELEMENTAL_DIE2,
S_HIVEELEMENTAL_DIE3,
S_BUMBLEBORE_SPAWN,
S_BUMBLEBORE_LOOK1,
S_BUMBLEBORE_LOOK2,
S_BUMBLEBORE_FLY1,
S_BUMBLEBORE_FLY2,
S_BUMBLEBORE_RAISE,
S_BUMBLEBORE_FALL1,
S_BUMBLEBORE_FALL2,
S_BUMBLEBORE_STUCK1,
S_BUMBLEBORE_STUCK2,
S_BUMBLEBORE_DIE,
S_BUGGLEIDLE,
S_BUGGLEFLY,
S_SMASHSPIKE_FLOAT,
S_SMASHSPIKE_EASE1,
S_SMASHSPIKE_EASE2,
S_SMASHSPIKE_FALL,
S_SMASHSPIKE_STOMP1,
S_SMASHSPIKE_STOMP2,
S_SMASHSPIKE_RISE1,
S_SMASHSPIKE_RISE2,
S_CACO_LOOK,
S_CACO_WAKE1,
S_CACO_WAKE2,
S_CACO_WAKE3,
S_CACO_WAKE4,
S_CACO_ROAR,
S_CACO_CHASE,
S_CACO_CHASE_REPEAT,
S_CACO_RANDOM,
S_CACO_PREPARE_SOUND,
S_CACO_PREPARE1,
S_CACO_PREPARE2,
S_CACO_PREPARE3,
S_CACO_SHOOT_SOUND,
S_CACO_SHOOT1,
S_CACO_SHOOT2,
S_CACO_CLOSE,
S_CACO_DIE_FLAGS,
S_CACO_DIE_GIB1,
S_CACO_DIE_GIB2,
S_CACO_DIE_SCREAM,
S_CACO_DIE_SHATTER,
S_CACO_DIE_FALL,
S_CACOSHARD_RANDOMIZE,
S_CACOSHARD1_1,
S_CACOSHARD1_2,
S_CACOSHARD2_1,
S_CACOSHARD2_2,
S_CACOFIRE1,
S_CACOFIRE2,
S_CACOFIRE3,
S_CACOFIRE_EXPLODE1,
S_CACOFIRE_EXPLODE2,
S_CACOFIRE_EXPLODE3,
S_CACOFIRE_EXPLODE4,
S_SPINBOBERT_MOVE_FLIPUP,
S_SPINBOBERT_MOVE_UP,
S_SPINBOBERT_MOVE_FLIPDOWN,
S_SPINBOBERT_MOVE_DOWN,
S_SPINBOBERT_FIRE_MOVE,
S_SPINBOBERT_FIRE_GHOST,
S_SPINBOBERT_FIRE_TRAIL1,
S_SPINBOBERT_FIRE_TRAIL2,
S_SPINBOBERT_FIRE_TRAIL3,
S_HANGSTER_LOOK,
S_HANGSTER_SWOOP1,
S_HANGSTER_SWOOP2,
S_HANGSTER_ARC1,
S_HANGSTER_ARC2,
S_HANGSTER_ARC3,
S_HANGSTER_FLY1,
S_HANGSTER_FLY2,
S_HANGSTER_FLY3,
S_HANGSTER_FLY4,
S_HANGSTER_FLYREPEAT,
S_HANGSTER_ARCUP1,
S_HANGSTER_ARCUP2,
S_HANGSTER_ARCUP3,
S_HANGSTER_RETURN1,
S_HANGSTER_RETURN2,
S_HANGSTER_RETURN3,
S_CRUMBLE1,
S_CRUMBLE2,
// Spark
S_SPRK1,
S_SPRK2,
S_SPRK3,
// Robot Explosion
S_XPLD_FLICKY,
S_XPLD1,
S_XPLD2,
S_XPLD3,
S_XPLD4,
S_XPLD5,
S_XPLD6,
S_XPLD_EGGTRAP,
// Underwater Explosion
S_WPLD1,
S_WPLD2,
S_WPLD3,
S_WPLD4,
S_WPLD5,
S_WPLD6,
S_DUST1,
S_DUST2,
S_DUST3,
S_DUST4,
S_ROCKSPAWN,
S_ROCKCRUMBLEA,
S_ROCKCRUMBLEB,
S_ROCKCRUMBLEC,
S_ROCKCRUMBLED,
S_ROCKCRUMBLEE,
S_ROCKCRUMBLEF,
S_ROCKCRUMBLEG,
S_ROCKCRUMBLEH,
S_ROCKCRUMBLEI,
S_ROCKCRUMBLEJ,
S_ROCKCRUMBLEK,
S_ROCKCRUMBLEL,
S_ROCKCRUMBLEM,
S_ROCKCRUMBLEN,
S_ROCKCRUMBLEO,
S_ROCKCRUMBLEP,
// Level debris
S_GFZDEBRIS,
S_BRICKDEBRIS,
S_WOODDEBRIS,
S_REDBRICKDEBRIS, // for CEZ3
S_BLUEBRICKDEBRIS, // for CEZ3
S_YELLOWBRICKDEBRIS, // for CEZ3
S_NAMECHECK,
S_FIRSTFREESLOT,
S_LASTFREESLOT = S_FIRSTFREESLOT + NUMSTATEFREESLOTS - 1,
NUMSTATES
} statenum_t;
typedef struct
{
spritenum_t sprite;
UINT32 frame; // we use the upper 16 bits for translucency and other shade effects
INT32 tics;
actionf_t action;
INT32 var1;
INT32 var2;
statenum_t nextstate;
UINT16 sprite2;
} state_t;
extern state_t states[NUMSTATES];
extern char sprnames[NUMSPRITES + 1][5];
extern char spr2names[NUMPLAYERSPRITES][5];
extern playersprite_t spr2defaults[NUMPLAYERSPRITES];
extern state_t *astate;
extern playersprite_t free_spr2;
typedef enum mobj_type
{
MT_NULL,
MT_UNKNOWN,
MT_THOK, // Thok! mobj
MT_PLAYER,
MT_TAILSOVERLAY, // c:
MT_METALJETFUME,
// Enemies
MT_BLUECRAWLA, // Crawla (Blue)
MT_REDCRAWLA, // Crawla (Red)
MT_GFZFISH, // SDURF
MT_GOLDBUZZ, // Buzz (Gold)
MT_REDBUZZ, // Buzz (Red)
MT_JETTBOMBER, // Jetty-Syn Bomber
MT_JETTGUNNER, // Jetty-Syn Gunner
MT_CRAWLACOMMANDER, // Crawla Commander
MT_DETON, // Deton
MT_SKIM, // Skim mine dropper
MT_TURRET, // Industrial Turret
MT_POPUPTURRET, // Pop-Up Turret
MT_SPINCUSHION, // Spincushion
MT_CRUSHSTACEAN, // Crushstacean
MT_CRUSHCLAW, // Big meaty claw
MT_CRUSHCHAIN, // Chain
MT_BANPYURA, // Banpyura
MT_BANPSPRING, // Banpyura spring
MT_JETJAW, // Jet Jaw
MT_SNAILER, // Snailer
MT_VULTURE, // BASH
MT_POINTY, // Pointy
MT_POINTYBALL, // Pointy Ball
MT_ROBOHOOD, // Robo-Hood
MT_FACESTABBER, // Castlebot Facestabber
MT_FACESTABBERSPEAR, // Castlebot Facestabber spear aura
MT_EGGGUARD, // Egg Guard
MT_EGGSHIELD, // Egg Guard's shield
MT_GSNAPPER, // Green Snapper
MT_SNAPPER_LEG, // Green Snapper leg
MT_SNAPPER_HEAD, // Green Snapper head
MT_MINUS, // Minus
MT_MINUSDIRT, // Minus dirt
MT_SPRINGSHELL, // Spring Shell
MT_YELLOWSHELL, // Spring Shell (yellow)
MT_UNIDUS, // Unidus
MT_UNIBALL, // Unidus Ball
MT_CANARIVORE, // Canarivore
MT_CANARIVORE_GAS, // Canarivore gas
MT_PYREFLY, // Pyre Fly
MT_PYREFLY_FIRE, // Pyre Fly fire
MT_PTERABYTESPAWNER, // Pterabyte spawner
MT_PTERABYTEWAYPOINT, // Pterabyte waypoint
MT_PTERABYTE, // Pterabyte
MT_DRAGONBOMBER, // Dragonbomber
MT_DRAGONWING, // Dragonbomber wing
MT_DRAGONTAIL, // Dragonbomber tail segment
MT_DRAGONMINE, // Dragonbomber mine
// Generic Boss Items
MT_BOSSEXPLODE,
MT_SONIC3KBOSSEXPLODE,
MT_BOSSFLYPOINT,
MT_EGGTRAP,
MT_BOSS3WAYPOINT,
MT_BOSS9GATHERPOINT,
MT_BOSSJUNK,
// Boss 1
MT_EGGMOBILE,
MT_JETFUME1,
MT_EGGMOBILE_BALL,
MT_EGGMOBILE_TARGET,
MT_EGGMOBILE_FIRE,
// Boss 2
MT_EGGMOBILE2,
MT_EGGMOBILE2_POGO,
MT_GOOP,
MT_GOOPTRAIL,
// Boss 3
MT_EGGMOBILE3,
MT_FAKEMOBILE,
MT_SHOCKWAVE,
// Boss 4
MT_EGGMOBILE4,
MT_EGGMOBILE4_MACE,
MT_JETFLAME,
MT_EGGROBO1,
MT_EGGROBO1JET,
// Boss 5
MT_FANG,
MT_BROKENROBOT,
MT_VWREF,
MT_VWREB,
MT_PROJECTORLIGHT,
MT_FBOMB,
MT_TNTDUST, // also used by barrel
MT_FSGNA,
MT_FSGNB,
MT_FANGWAYPOINT,
// Black Eggman (Boss 7)
MT_BLACKEGGMAN,
MT_BLACKEGGMAN_HELPER,
MT_BLACKEGGMAN_GOOPFIRE,
MT_BLACKEGGMAN_MISSILE,
// New Very-Last-Minute 2.1 Brak Eggman (Cy-Brak-demon)
MT_CYBRAKDEMON,
MT_CYBRAKDEMON_ELECTRIC_BARRIER,
MT_CYBRAKDEMON_MISSILE,
MT_CYBRAKDEMON_FLAMESHOT,
MT_CYBRAKDEMON_FLAMEREST,
MT_CYBRAKDEMON_TARGET_RETICULE,
MT_CYBRAKDEMON_TARGET_DOT,
MT_CYBRAKDEMON_NAPALM_BOMB_LARGE,
MT_CYBRAKDEMON_NAPALM_BOMB_SMALL,
MT_CYBRAKDEMON_NAPALM_FLAMES,
MT_CYBRAKDEMON_VILE_EXPLOSION,
// Metal Sonic (Boss 9)
MT_METALSONIC_RACE,
MT_METALSONIC_BATTLE,
MT_MSSHIELD_FRONT,
MT_MSGATHER,
// Collectible Items
MT_RING,
MT_FLINGRING, // Lost ring
MT_BLUESPHERE, // Blue sphere for special stages
MT_FLINGBLUESPHERE, // Lost blue sphere
MT_BOMBSPHERE,
MT_REDTEAMRING, //Rings collectable by red team.
MT_BLUETEAMRING, //Rings collectable by blue team.
MT_TOKEN, // Special Stage token for special stage
MT_REDFLAG, // Red CTF Flag
MT_BLUEFLAG, // Blue CTF Flag
MT_EMBLEM,
MT_EMERALD1,
MT_EMERALD2,
MT_EMERALD3,
MT_EMERALD4,
MT_EMERALD5,
MT_EMERALD6,
MT_EMERALD7,
MT_EMERHUNT, // Emerald Hunt
MT_EMERALDSPAWN, // Emerald spawner w/ delay
MT_FLINGEMERALD, // Lost emerald
// Springs and others
MT_FAN,
MT_STEAM,
MT_BUMPER,
MT_BALLOON,
MT_YELLOWSPRING,
MT_REDSPRING,
MT_BLUESPRING,
MT_YELLOWDIAG,
MT_REDDIAG,
MT_BLUEDIAG,
MT_YELLOWHORIZ,
MT_REDHORIZ,
MT_BLUEHORIZ,
MT_BOOSTERSEG,
MT_BOOSTERROLLER,
MT_YELLOWBOOSTER,
MT_REDBOOSTER,
// Interactive Objects
MT_BUBBLES, // Bubble source
MT_SIGN, // Level end sign
MT_SPIKEBALL, // Spike Ball
MT_SPINFIRE,
MT_SPIKE,
MT_WALLSPIKE,
MT_WALLSPIKEBASE,
MT_STARPOST,
MT_BIGMINE,
MT_BLASTEXECUTOR,
MT_CANNONLAUNCHER,
// Monitor miscellany
MT_BOXSPARKLE,
// Monitor boxes -- regular
MT_RING_BOX,
MT_PITY_BOX,
MT_ATTRACT_BOX,
MT_FORCE_BOX,
MT_ARMAGEDDON_BOX,
MT_WHIRLWIND_BOX,
MT_ELEMENTAL_BOX,
MT_SNEAKERS_BOX,
MT_INVULN_BOX,
MT_1UP_BOX,
MT_EGGMAN_BOX,
MT_MIXUP_BOX,
MT_MYSTERY_BOX,
MT_GRAVITY_BOX,
MT_RECYCLER_BOX,
MT_SCORE1K_BOX,
MT_SCORE10K_BOX,
MT_FLAMEAURA_BOX,
MT_BUBBLEWRAP_BOX,
MT_THUNDERCOIN_BOX,
// Monitor boxes -- repeating (big) boxes
MT_PITY_GOLDBOX,
MT_ATTRACT_GOLDBOX,
MT_FORCE_GOLDBOX,
MT_ARMAGEDDON_GOLDBOX,
MT_WHIRLWIND_GOLDBOX,
MT_ELEMENTAL_GOLDBOX,
MT_SNEAKERS_GOLDBOX,
MT_INVULN_GOLDBOX,
MT_EGGMAN_GOLDBOX,
MT_GRAVITY_GOLDBOX,
MT_FLAMEAURA_GOLDBOX,
MT_BUBBLEWRAP_GOLDBOX,
MT_THUNDERCOIN_GOLDBOX,
// Monitor boxes -- special
MT_RING_REDBOX,
MT_RING_BLUEBOX,
// Monitor icons
MT_RING_ICON,
MT_PITY_ICON,
MT_ATTRACT_ICON,
MT_FORCE_ICON,
MT_ARMAGEDDON_ICON,
MT_WHIRLWIND_ICON,
MT_ELEMENTAL_ICON,
MT_SNEAKERS_ICON,
MT_INVULN_ICON,
MT_1UP_ICON,
MT_EGGMAN_ICON,
MT_MIXUP_ICON,
MT_GRAVITY_ICON,
MT_RECYCLER_ICON,
MT_SCORE1K_ICON,
MT_SCORE10K_ICON,
MT_FLAMEAURA_ICON,
MT_BUBBLEWRAP_ICON,
MT_THUNDERCOIN_ICON,
// Projectiles
MT_ROCKET,
MT_LASER,
MT_TORPEDO,
MT_TORPEDO2, // silent
MT_ENERGYBALL,
MT_MINE, // Skim/Jetty-Syn mine
MT_JETTBULLET, // Jetty-Syn Bullet
MT_TURRETLASER,
MT_CANNONBALL, // Cannonball
MT_CANNONBALLDECOR, // Decorative/still cannonball
MT_ARROW, // Arrow
MT_DEMONFIRE, // Glaregoyle fire
// The letter
MT_LETTER,
// Tutorial Scenery
MT_TUTORIALPLANT,
MT_TUTORIALLEAF,
MT_TUTORIALFLOWER,
MT_TUTORIALFLOWERF,
// Greenflower Scenery
MT_GFZFLOWER1,
MT_GFZFLOWER2,
MT_GFZFLOWER3,
MT_BLUEBERRYBUSH,
MT_BERRYBUSH,
MT_BUSH,
// Trees (both GFZ and misc)
MT_GFZTREE,
MT_GFZBERRYTREE,
MT_GFZCHERRYTREE,
MT_CHECKERTREE,
MT_CHECKERSUNSETTREE,
MT_FHZTREE, // Frozen Hillside
MT_FHZPINKTREE,
MT_POLYGONTREE,
MT_BUSHTREE,
MT_BUSHREDTREE,
MT_SPRINGTREE,
// Techno Hill Scenery
MT_THZFLOWER1,
MT_THZFLOWER2,
MT_THZFLOWER3,
MT_THZTREE, // Steam whistle tree/bush
MT_THZTREEBRANCH, // branch of said tree
MT_ALARM,
// Deep Sea Scenery
MT_GARGOYLE, // Deep Sea Gargoyle
MT_BIGGARGOYLE, // Deep Sea Gargoyle (Big)
MT_SEAWEED, // DSZ Seaweed
MT_WATERDRIP, // Dripping Water source
MT_WATERDROP, // Water drop from dripping water
MT_CORAL1, // Coral
MT_CORAL2,
MT_CORAL3,
MT_CORAL4,
MT_CORAL5,
MT_BLUECRYSTAL, // Blue Crystal
MT_KELP, // Kelp
MT_ANIMALGAETOP, // Animated algae top
MT_ANIMALGAESEG, // Animated algae segment
MT_DSZSTALAGMITE, // Deep Sea 1 Stalagmite
MT_DSZ2STALAGMITE, // Deep Sea 2 Stalagmite
MT_LIGHTBEAM, // DSZ Light beam
// Castle Eggman Scenery
MT_CHAIN, // CEZ Chain
MT_FLAME, // Flame (has corona)
MT_FLAMEPARTICLE,
MT_EGGSTATUE, // Eggman Statue
MT_MACEPOINT, // Mace rotation point
MT_CHAINMACEPOINT, // Combination of chains and maces point
MT_SPRINGBALLPOINT, // Spring ball point
MT_CHAINPOINT, // Mace chain
MT_HIDDEN_SLING, // Spin mace chain (activatable)
MT_FIREBARPOINT, // Firebar
MT_CUSTOMMACEPOINT, // Custom mace
MT_SMALLMACECHAIN, // Small Mace Chain
MT_BIGMACECHAIN, // Big Mace Chain
MT_SMALLMACE, // Small Mace
MT_BIGMACE, // Big Mace
MT_SMALLGRABCHAIN, // Small Grab Chain
MT_BIGGRABCHAIN, // Big Grab Chain
MT_BLUESPRINGBALL, // Blue spring on a ball
MT_YELLOWSPRINGBALL, // Yellow spring on a ball
MT_REDSPRINGBALL, // Red spring on a ball
MT_SMALLFIREBAR, // Small Firebar
MT_BIGFIREBAR, // Big Firebar
MT_CEZFLOWER, // Flower
MT_CEZPOLE1, // Pole (with red banner)
MT_CEZPOLE2, // Pole (with blue banner)
MT_CEZBANNER1, // Banner (red)
MT_CEZBANNER2, // Banner (blue)
MT_PINETREE, // Pine Tree
MT_CEZBUSH1, // Bush 1
MT_CEZBUSH2, // Bush 2
MT_CANDLE, // Candle
MT_CANDLEPRICKET, // Candle pricket
MT_FLAMEHOLDER, // Flame holder
MT_FIRETORCH, // Fire torch
MT_WAVINGFLAG1, // Waving flag (red)
MT_WAVINGFLAG2, // Waving flag (blue)
MT_WAVINGFLAGSEG1, // Waving flag segment (red)
MT_WAVINGFLAGSEG2, // Waving flag segment (blue)
MT_CRAWLASTATUE, // Crawla statue
MT_FACESTABBERSTATUE, // Facestabber statue
MT_SUSPICIOUSFACESTABBERSTATUE, // :eggthinking:
MT_BRAMBLES, // Brambles
// Arid Canyon Scenery
MT_BIGTUMBLEWEED,
MT_LITTLETUMBLEWEED,
MT_CACTI1, // Tiny Red Flower Cactus
MT_CACTI2, // Small Red Flower Cactus
MT_CACTI3, // Tiny Blue Flower Cactus
MT_CACTI4, // Small Blue Flower Cactus
MT_CACTI5, // Prickly Pear
MT_CACTI6, // Barrel Cactus
MT_CACTI7, // Tall Barrel Cactus
MT_CACTI8, // Armed Cactus
MT_CACTI9, // Ball Cactus
MT_CACTI10, // Tiny Cactus
MT_CACTI11, // Small Cactus
MT_CACTITINYSEG, // Tiny Cactus Segment
MT_CACTISMALLSEG, // Small Cactus Segment
MT_ARIDSIGN_CAUTION, // Caution Sign
MT_ARIDSIGN_CACTI, // Cacti Sign
MT_ARIDSIGN_SHARPTURN, // Sharp Turn Sign
MT_OILLAMP,
MT_TNTBARREL,
MT_PROXIMITYTNT,
MT_DUSTDEVIL,
MT_DUSTLAYER,
MT_ARIDDUST,
MT_MINECART,
MT_MINECARTSEG,
MT_MINECARTSPAWNER,
MT_MINECARTEND,
MT_MINECARTENDSOLID,
MT_MINECARTSIDEMARK,
MT_MINECARTSPARK,
MT_SALOONDOOR,
MT_SALOONDOORCENTER,
MT_TRAINCAMEOSPAWNER,
MT_TRAINSEG,
MT_TRAINDUSTSPAWNER,
MT_TRAINSTEAMSPAWNER,
MT_MINECARTSWITCHPOINT,
// Red Volcano Scenery
MT_FLAMEJET,
MT_VERTICALFLAMEJET,
MT_FLAMEJETFLAME,
MT_FJSPINAXISA, // Counter-clockwise
MT_FJSPINAXISB, // Clockwise
MT_FLAMEJETFLAMEB, // Blade's flame
MT_LAVAFALL,
MT_LAVAFALL_LAVA,
MT_LAVAFALLROCK,
MT_ROLLOUTSPAWN,
MT_ROLLOUTROCK,
MT_BIGFERNLEAF,
MT_BIGFERN,
MT_JUNGLEPALM,
MT_TORCHFLOWER,
MT_WALLVINE_LONG,
MT_WALLVINE_SHORT,
// Dark City Scenery
// Egg Rock Scenery
// Azure Temple Scenery
MT_GLAREGOYLE,
MT_GLAREGOYLEUP,
MT_GLAREGOYLEDOWN,
MT_GLAREGOYLELONG,
MT_TARGET, // AKA Red Crystal
MT_GREENFLAME,
MT_BLUEGARGOYLE,
// Stalagmites
MT_STALAGMITE0,
MT_STALAGMITE1,
MT_STALAGMITE2,
MT_STALAGMITE3,
MT_STALAGMITE4,
MT_STALAGMITE5,
MT_STALAGMITE6,
MT_STALAGMITE7,
MT_STALAGMITE8,
MT_STALAGMITE9,
// Christmas Scenery
MT_XMASPOLE,
MT_CANDYCANE,
MT_SNOWMAN, // normal
MT_SNOWMANHAT, // with hat + scarf
MT_LAMPPOST1, // normal
MT_LAMPPOST2, // with snow
MT_HANGSTAR,
MT_MISTLETOE,
// Xmas GFZ bushes
MT_XMASBLUEBERRYBUSH,
MT_XMASBERRYBUSH,
MT_XMASBUSH,
// FHZ
MT_FHZICE1,
MT_FHZICE2,
MT_ROSY,
MT_CDLHRT,
// Halloween Scenery
// Pumpkins
MT_JACKO1,
MT_JACKO2,
MT_JACKO3,
// Dr Seuss Trees
MT_HHZTREE_TOP,
MT_HHZTREE_PART,
// Misc
MT_HHZSHROOM,
MT_HHZGRASS,
MT_HHZTENTACLE1,
MT_HHZTENTACLE2,
MT_HHZSTALAGMITE_TALL,
MT_HHZSTALAGMITE_SHORT,
// Botanic Serenity scenery
MT_BSZTALLFLOWER_RED,
MT_BSZTALLFLOWER_PURPLE,
MT_BSZTALLFLOWER_BLUE,
MT_BSZTALLFLOWER_CYAN,
MT_BSZTALLFLOWER_YELLOW,
MT_BSZTALLFLOWER_ORANGE,
MT_BSZFLOWER_RED,
MT_BSZFLOWER_PURPLE,
MT_BSZFLOWER_BLUE,
MT_BSZFLOWER_CYAN,
MT_BSZFLOWER_YELLOW,
MT_BSZFLOWER_ORANGE,
MT_BSZSHORTFLOWER_RED,
MT_BSZSHORTFLOWER_PURPLE,
MT_BSZSHORTFLOWER_BLUE,
MT_BSZSHORTFLOWER_CYAN,
MT_BSZSHORTFLOWER_YELLOW,
MT_BSZSHORTFLOWER_ORANGE,
MT_BSZTULIP_RED,
MT_BSZTULIP_PURPLE,
MT_BSZTULIP_BLUE,
MT_BSZTULIP_CYAN,
MT_BSZTULIP_YELLOW,
MT_BSZTULIP_ORANGE,
MT_BSZCLUSTER_RED,
MT_BSZCLUSTER_PURPLE,
MT_BSZCLUSTER_BLUE,
MT_BSZCLUSTER_CYAN,
MT_BSZCLUSTER_YELLOW,
MT_BSZCLUSTER_ORANGE,
MT_BSZBUSH_RED,
MT_BSZBUSH_PURPLE,
MT_BSZBUSH_BLUE,
MT_BSZBUSH_CYAN,
MT_BSZBUSH_YELLOW,
MT_BSZBUSH_ORANGE,
MT_BSZVINE_RED,
MT_BSZVINE_PURPLE,
MT_BSZVINE_BLUE,
MT_BSZVINE_CYAN,
MT_BSZVINE_YELLOW,
MT_BSZVINE_ORANGE,
MT_BSZSHRUB,
MT_BSZCLOVER,
MT_BIG_PALMTREE_TRUNK,
MT_BIG_PALMTREE_TOP,
MT_PALMTREE_TRUNK,
MT_PALMTREE_TOP,
// Misc scenery
MT_DBALL,
MT_EGGSTATUE2,
// Powerup Indicators
MT_ELEMENTAL_ORB, // Elemental shield mobj
MT_ATTRACT_ORB, // Attract shield mobj
MT_FORCE_ORB, // Force shield mobj
MT_ARMAGEDDON_ORB, // Armageddon shield mobj
MT_WHIRLWIND_ORB, // Whirlwind shield mobj
MT_PITY_ORB, // Pity shield mobj
MT_FLAMEAURA_ORB, // Flame shield mobj
MT_BUBBLEWRAP_ORB, // Bubble shield mobj
MT_THUNDERCOIN_ORB, // Thunder shield mobj
MT_THUNDERCOIN_SPARK, // Thunder spark
MT_IVSP, // Invincibility sparkles
MT_SUPERSPARK, // Super Sonic Spark
// Flickies
MT_FLICKY_01, // Bluebird
MT_FLICKY_01_CENTER,
MT_FLICKY_02, // Rabbit
MT_FLICKY_02_CENTER,
MT_FLICKY_03, // Chicken
MT_FLICKY_03_CENTER,
MT_FLICKY_04, // Seal
MT_FLICKY_04_CENTER,
MT_FLICKY_05, // Pig
MT_FLICKY_05_CENTER,
MT_FLICKY_06, // Chipmunk
MT_FLICKY_06_CENTER,
MT_FLICKY_07, // Penguin
MT_FLICKY_07_CENTER,
MT_FLICKY_08, // Fish
MT_FLICKY_08_CENTER,
MT_FLICKY_09, // Ram
MT_FLICKY_09_CENTER,
MT_FLICKY_10, // Puffin
MT_FLICKY_10_CENTER,
MT_FLICKY_11, // Cow
MT_FLICKY_11_CENTER,
MT_FLICKY_12, // Rat
MT_FLICKY_12_CENTER,
MT_FLICKY_13, // Bear
MT_FLICKY_13_CENTER,
MT_FLICKY_14, // Dove
MT_FLICKY_14_CENTER,
MT_FLICKY_15, // Cat
MT_FLICKY_15_CENTER,
MT_FLICKY_16, // Canary
MT_FLICKY_16_CENTER,
MT_SECRETFLICKY_01, // Spider
MT_SECRETFLICKY_01_CENTER,
MT_SECRETFLICKY_02, // Bat
MT_SECRETFLICKY_02_CENTER,
MT_SEED,
// Environmental Effects
MT_RAIN, // Rain
MT_SNOWFLAKE, // Snowflake
MT_SPLISH, // Water splish!
MT_LAVASPLISH, // Lava splish!
MT_SMOKE,
MT_SMALLBUBBLE, // small bubble
MT_MEDIUMBUBBLE, // medium bubble
MT_EXTRALARGEBUBBLE, // extra large bubble
MT_WATERZAP,
MT_SPINDUST, // Spindash dust
MT_TFOG,
MT_PARTICLE,
MT_PARTICLEGEN, // For fans, etc.
// Game Indicators
MT_SCORE, // score logo
MT_DROWNNUMBERS, // Drowning Timer
MT_GOTEMERALD, // Chaos Emerald (intangible)
MT_LOCKON, // Target
MT_LOCKONINF, // In-level Target
MT_TAG, // Tag Sign
MT_GOTFLAG, // Got Flag sign
MT_FINISHFLAG, // Finish flag
// Ambient Sounds
MT_AMBIENT,
MT_CORK,
MT_LHRT,
// Ring Weapons
MT_REDRING,
MT_BOUNCERING,
MT_RAILRING,
MT_INFINITYRING,
MT_AUTOMATICRING,
MT_EXPLOSIONRING,
MT_SCATTERRING,
MT_GRENADERING,
MT_BOUNCEPICKUP,
MT_RAILPICKUP,
MT_AUTOPICKUP,
MT_EXPLODEPICKUP,
MT_SCATTERPICKUP,
MT_GRENADEPICKUP,
MT_THROWNBOUNCE,
MT_THROWNINFINITY,
MT_THROWNAUTOMATIC,
MT_THROWNSCATTER,
MT_THROWNEXPLOSION,
MT_THROWNGRENADE,
// Mario-specific stuff
MT_COIN,
MT_FLINGCOIN,
MT_GOOMBA,
MT_BLUEGOOMBA,
MT_FIREFLOWER,
MT_FIREBALL,
MT_FIREBALLTRAIL,
MT_SHELL,
MT_PUMA,
MT_PUMATRAIL,
MT_HAMMER,
MT_KOOPA,
MT_KOOPAFLAME,
MT_AXE,
MT_MARIOBUSH1,
MT_MARIOBUSH2,
MT_TOAD,
// NiGHTS Stuff
MT_AXIS,
MT_AXISTRANSFER,
MT_AXISTRANSFERLINE,
MT_NIGHTSDRONE,
MT_NIGHTSDRONE_MAN,
MT_NIGHTSDRONE_SPARKLING,
MT_NIGHTSDRONE_GOAL,
MT_NIGHTSPARKLE,
MT_NIGHTSLOOPHELPER,
MT_NIGHTSBUMPER, // NiGHTS Bumper
MT_HOOP,
MT_HOOPCOLLIDE, // Collision detection for NiGHTS hoops
MT_HOOPCENTER, // Center of a hoop
MT_NIGHTSCORE,
MT_NIGHTSCHIP, // NiGHTS Chip
MT_FLINGNIGHTSCHIP, // Lost NiGHTS Chip
MT_NIGHTSSTAR, // NiGHTS Star
MT_FLINGNIGHTSSTAR, // Lost NiGHTS Star
MT_NIGHTSSUPERLOOP,
MT_NIGHTSDRILLREFILL,
MT_NIGHTSHELPER,
MT_NIGHTSEXTRATIME,
MT_NIGHTSLINKFREEZE,
MT_EGGCAPSULE,
MT_IDEYAANCHOR,
MT_NIGHTOPIANHELPER, // the actual helper object that orbits you
MT_PIAN, // decorative singing friend
MT_SHLEEP, // almost-decorative sleeping enemy
// Secret badniks and hazards, shhhh
MT_PENGUINATOR,
MT_POPHAT,
MT_POPSHOT,
MT_POPSHOT_TRAIL,
MT_HIVEELEMENTAL,
MT_BUMBLEBORE,
MT_BUGGLE,
MT_SMASHINGSPIKEBALL,
MT_CACOLANTERN,
MT_CACOSHARD,
MT_CACOFIRE,
MT_SPINBOBERT,
MT_SPINBOBERT_FIRE1,
MT_SPINBOBERT_FIRE2,
MT_HANGSTER,
// Utility Objects
MT_TELEPORTMAN,
MT_ALTVIEWMAN,
MT_CRUMBLEOBJ, // Sound generator for crumbling platform
MT_TUBEWAYPOINT,
MT_PUSH,
MT_GHOST,
MT_OVERLAY,
MT_ANGLEMAN,
MT_POLYANCHOR,
MT_POLYSPAWN,
// Skybox objects
MT_SKYBOX,
// Debris
MT_SPARK, //spark
MT_EXPLODE, // Robot Explosion
MT_UWEXPLODE, // Underwater Explosion
MT_DUST,
MT_ROCKSPAWNER,
MT_FALLINGROCK,
MT_ROCKCRUMBLE1,
MT_ROCKCRUMBLE2,
MT_ROCKCRUMBLE3,
MT_ROCKCRUMBLE4,
MT_ROCKCRUMBLE5,
MT_ROCKCRUMBLE6,
MT_ROCKCRUMBLE7,
MT_ROCKCRUMBLE8,
MT_ROCKCRUMBLE9,
MT_ROCKCRUMBLE10,
MT_ROCKCRUMBLE11,
MT_ROCKCRUMBLE12,
MT_ROCKCRUMBLE13,
MT_ROCKCRUMBLE14,
MT_ROCKCRUMBLE15,
MT_ROCKCRUMBLE16,
// Level debris
MT_GFZDEBRIS,
MT_BRICKDEBRIS,
MT_WOODDEBRIS,
MT_REDBRICKDEBRIS, // for CEZ3
MT_BLUEBRICKDEBRIS, // for CEZ3
MT_YELLOWBRICKDEBRIS, // for CEZ3
MT_NAMECHECK,
MT_RAY, // General purpose mobj
MT_FIRSTFREESLOT,
MT_LASTFREESLOT = MT_FIRSTFREESLOT + NUMMOBJFREESLOTS - 1,
NUMMOBJTYPES
} mobjtype_t;
typedef struct
{
INT32 doomednum;
statenum_t spawnstate;
INT32 spawnhealth;
statenum_t seestate;
sfxenum_t seesound;
INT32 reactiontime;
sfxenum_t attacksound;
statenum_t painstate;
INT32 painchance;
sfxenum_t painsound;
statenum_t meleestate;
statenum_t missilestate;
statenum_t deathstate;
statenum_t xdeathstate;
sfxenum_t deathsound;
fixed_t speed;
fixed_t radius;
fixed_t height;
INT32 dispoffset;
INT32 mass;
INT32 damage;
sfxenum_t activesound;
UINT32 flags;
statenum_t raisestate;
} mobjinfo_t;
extern mobjinfo_t mobjinfo[NUMMOBJTYPES];
void P_PatchInfoTables(void);
void P_BackupTables(void);
void P_ResetData(INT32 flags);
#endif