-- Freeslots --

-- SPRITES
freeslot("SPR_DMIC", "SPR_BOOM", "SPR_KBEX", "SPR_KBIN")
freeslot("SPR_CHFS", "SPR_CHAU", "SPR_UWFS", "SPR_WCFS")
freeslot("SPR_REBO", "SPR_IWAV", "SPR_ASHR", "SPR_EPIL", "SPR_VCHA", 
"SPR_ESPK", "SPR_CASH", "SPR_SUCC", "SPR2_FINT", "SPR_FAUR", "SPR_LRAY", 
"SPR_VFLM", "SPR2_FGLI", "SPR2_FLAN", "SPR_DAUR", "SPR2_FMLE", "SPR2_FMLL", 
"SPR2_FSPI", "SPR2_FBNC", "SPR2_SINT", "SPR_VTSU", "SPR_VSTB", "SPR_FOUT", 
"SPR_RSH1", "SPR_RSH2")

-- STATES
freeslot("S_MICDROP", "S_MICDROP_FIN", "S_MDAIR", "S_MDAIR_FIN", 
"S_DROPPEDMIC", "S_MICSHOCKWAVE", "S_KABOOMBOX", "S_AUTODETONATE", 
"S_KBBSETUP", "S_KBBACTIVATE", "S_KBBACTIVATE_FIN", "S_KBBINDICATOR")
freeslot("S_FLAMESTINGER", "S_FLAMESTINGER_CONT", "S_CHARGEDFS", "S_WATERFS", 
"S_WATERFS_CONT", "S_WATERCFS", "S_WALKSHOOT", "S_WALKSHOOT_FIN", "S_RUNSHOOT", 
"S_RUNSHOOT_FIN", "S_EMBER_DRIP")
freeslot("S_THRUSTJUMP_PREP", "S_THRUSTJUMP_GO")
freeslot("S_REBOUND", "S_PLAY_IMPACTLAND", "S_DUALSHREDDER", 
"S_PLAY_FINISHERLAND", "S_VOIDYAURA_CHARGING", "S_PLAY_CHARGESTAND", 
"S_CHARGEDSHREDDER", "S_SUCCFX", "S_VACCHITBOX", "S_EARTHSCORCHER", 
"S_EARTHSCORCHER_FLAME", "S_FRENZY_CHARGEDSHREDDER", "S_FRENZY_SUCCFX", 
"S_VOIDYBLACKHOLE", "S_STABEXPL", "S_BASIC_WINGGUARD", "S_BASIC_WINGGUARD_FIN", 
"S_FRENZY_WINGGUARD", "S_FRENZY_WINGGUARD_FIN", "S_DASHAURA", "S_TWIN_GLIDE", 
"S_TWIN_LAND", "S_REALITYSHREDDER_SPAWN", "S_REALITYSHREDDER", 
"S_REALITYSHREDDER_DIE")
for i = 1,6
	freeslot("S_BOOMBOX_EXPL"..i)
	freeslot("S_EMBER_DIE"..i)
	freeslot("S_PLAY_FRENZY_TRANS"..i)
end
for i = 1,5
	freeslot("S_CHARGEDFS_DIE"..i)
	freeslot("S_WATERCFS_DIE"..i)
	freeslot("S_FRENZY_ENERGYPILLAR"..i)
	freeslot("S_ENERGYTSUNAMI"..i)
	freeslot("S_FRENZYEXPL_DIE"..i)
end
for i = 1,4
	freeslot("S_CHARGEAURA"..i)
	freeslot("S_MBSPINDASH"..i)
	freeslot("S_PLAY_CRESCENTDANCER"..i)
	freeslot("S_PLAY_VACUUMGULLET"..i)
	freeslot("S_PLAY_CRESCENTREAPER"..i)
	freeslot("S_PLAY_VORTEXGULLET"..i)
end
for i = 1,2
	freeslot("S_WATERFS_TRAIL"..i)
	freeslot("S_IMPACTWAVE"..i)
	freeslot("S_SHREDDERR"..i)
	freeslot("S_SHREDDERL"..i)
	freeslot("S_PLAY_FRENZY_INTRO"..i)
	freeslot("S_FRENZY_SHREDDERR"..i)
	freeslot("S_FRENZY_SHREDDERL"..i)
	freeslot("S_FRENZY_ENERGYBALL"..i)
end
for i = 1,3
	freeslot("S_BASIC_GROUNDRIGHT"..i)
	freeslot("S_BASIC_GROUNDLEFT"..i)
	freeslot("S_BASIC_GROUNDFINISHA"..i)
	freeslot("S_BASIC_GROUNDFINISHB"..i)
	freeslot("S_BASIC_AIRRIGHT"..i)
	freeslot("S_BASIC_AIRLEFT"..i)
	freeslot("S_BASIC_AIRFINISHA"..i)
	freeslot("S_ENERGYPILLAR"..i)
	freeslot("S_BASIC_AIRFINISHB"..i)
	freeslot("S_VOIDYAURA_CHARGED"..i)
	freeslot("S_PLAY_EARTHSPIKER"..i)
	freeslot("S_VOIDYSPIKE"..i)
	freeslot("S_PLAY_VACUUMREVERT"..i)
	freeslot("S_FRENZY_GROUNDRIGHT"..i)
	freeslot("S_FRENZY_GROUNDLEFT"..i)
	freeslot("S_FRENZY_GROUNDFINISHA"..i)
	freeslot("S_FRENZY_GROUNDFINISHB"..i)
	freeslot("S_FRENZY_AIRRIGHT"..i)
	freeslot("S_FRENZY_AIRLEFT"..i)
	freeslot("S_FRENZY_AIRFINISHA"..i)
	freeslot("S_FRENZY_AIRFINISHB"..i)
	freeslot("S_PLAY_EARTHSCORCHER"..i)
	freeslot("S_PLAY_VORTEXREVERT"..i)
	freeslot("S_PLAY_SUPER_INTRO"..i)
	freeslot("S_TWIN_GROUNDRIGHT"..i)
	freeslot("S_TWIN_GROUNDLEFT"..i)
	freeslot("S_TWIN_AIRRIGHT"..i)
	freeslot("S_TWIN_AIRLEFT"..i)
	freeslot("S_TWIN_DASH"..i)
end
for i = 1,8
	freeslot("S_FRENZYAURA"..i)
end
for i = 1,7
	freeslot("S_FRENZY_DUALSHREDDER"..i)
end
for i = 1,9
	freeslot("S_FRENZY_ENERGYBALLEXPL"..i)
end
for i = 1,10
	freeslot("S_FRENZYEXPL"..i)
end

-- OBJECTS
freeslot("MT_DROPPEDMIC", "MT_SHOCKWAVE1", "MT_SHOCKWAVE2", "MT_KABOOMBOX")
freeslot("MT_FLAMESTINGER", "MT_CHARGEDFS", "MT_EMBERCHARGEAURA", "MT_WATERFS", 
"MT_WATERFS_TRAIL", "MT_WATERCFS")
freeslot("MT_REBOUND", "MT_IMPACTSHOCKWAVE", "MT_RIGHTSHREDDER", 
"MT_LEFTSHREDDER", "MT_DUALSHREDDER", "MT_ENERGYPILLAR", "MT_VOIDYCHARGEAURA", 
"MT_VOIDYCHARGEFLASH", "MT_VOIDYSPIKE", "MT_CRESCENTDANCER", "MT_SUCCFX", 
"MT_VACCHITBOX", "MT_VOIDYROCK", "MT_FRENZYAURA", "MT_FRENZY_RIGHTSHREDDER", 
"MT_FRENZY_LEFTSHREDDER", "MT_FRENZY_DUALSHREDDER", "MT_FRENZY_ENERGYBALL", 
"MT_FRENZY_ENERGYPILLAR", "MT_EARTHSCORCHER", "MT_EARTHSCORCHER_FLAME", 
"MT_CRESCENTREAPER", "MT_FRENZY_SUCCFX", "MT_VOIDYBLACKHOLE", 
"MT_ENERGYTSUNAMI", "MT_STABEXPL", "MT_VOIDYCLONE", "MT_DASHAURA", 
"MT_FRENZYEXPLOSION")

-- SOUNDS
freeslot("sfx_burnin")
freeslot("sfx_mospin", "sfx_mojump", "sfx_moskid", "sfx_moddsh", "sfx_mosoup")
freeslot("sfx_vowall", "sfx_claw1", "sfx_claw2", "sfx_upper", "sfx_aschrg", 
"sfx_aschgd", "sfx_cdance", "sfx_fready", "sfx_frenzy", "sfx_drkaur", 
"sfx_xclaw1", "sfx_xfinsh", "sfx_ewatr", "sfx_succ", "sfx_clndsh", "sfx_void", 
"sfx_bhole", "sfx_vupitm")
freeslot("sfx_morjmp")

sfxinfo[sfx_burnin].caption = "Fire aura"

sfxinfo[sfx_mospin].caption = "Game Gear Spindash"
sfxinfo[sfx_mojump].caption = "Wheelie jump"
sfxinfo[sfx_moskid].caption = "Small tire skid"
sfxinfo[sfx_moddsh].caption = "Charging spin"
sfxinfo[sfx_mosoup].caption = "Revving engine"

sfxinfo[sfx_vowall].caption = "Heavy impact"
sfxinfo[sfx_claw1].caption = "Atom Shredder"
sfxinfo[sfx_claw2].caption = "Finisher slash"
sfxinfo[sfx_upper].caption = "Uppercut"
sfxinfo[sfx_aschrg].caption = "Charging energy"
sfxinfo[sfx_aschgd].caption = "Fully charged"
sfxinfo[sfx_cdance].caption = "Quick slash"
sfxinfo[sfx_fready].caption = "Frenzy Install ready"
sfxinfo[sfx_frenzy].caption = "Frenzy!"
sfxinfo[sfx_drkaur].caption = "Dark aura"
sfxinfo[sfx_xclaw1].caption = "Molecule Shredder"
sfxinfo[sfx_xfinsh].caption = "Condensed energy"
sfxinfo[sfx_ewatr].caption = "Energy wave"
sfxinfo[sfx_succ].caption = "Heavy suction"
sfxinfo[sfx_clndsh].caption = "Shadow clone dash"
sfxinfo[sfx_void].caption = "Void!"
sfxinfo[sfx_bhole].caption = "Black hole"
sfxinfo[sfx_vupitm].caption = "Collected upgrade"

-- SKINCOLORS
freeslot("SKINCOLOR_BLAZING1", "SKINCOLOR_BLAZING2", "SKINCOLOR_BLAZING3", "SKINCOLOR_BLAZING4", "SKINCOLOR_BLAZING5")
freeslot("SKINCOLOR_ABYSSAL1", "SKINCOLOR_ABYSSAL2", "SKINCOLOR_ABYSSAL3", "SKINCOLOR_ABYSSAL4", "SKINCOLOR_ABYSSAL5")


states[S_MICDROP] = {SPR_PLAY, SPR2_MLEE|FF_SPR2ENDSTATE, 2, A_ForceStop, S_MICDROP_FIN, 0, S_MICDROP}
states[S_MICDROP_FIN] = {SPR_PLAY, SPR2_MLEE, 15, A_ForceStop, S_PLAY_STND, 0, S_PLAY_STND}

states[S_MDAIR] = {SPR_PLAY, SPR2_MLEL|FF_SPR2ENDSTATE, 2, nil, S_MDAIR_FIN, 0, S_MDAIR}
states[S_MDAIR_FIN] = {SPR_PLAY, SPR2_MLEL, 15, nil, S_PLAY_FALL, 0, S_PLAY_FALL}

states[S_DROPPEDMIC] = {SPR_DMIC, A, -1, A_DropMine, 0, 0, S_NULL}

states[S_MICSHOCKWAVE] = {SPR_NULL, A, 4, nil, 0, 0, S_NULL}

states[S_KBBSETUP] = {SPR_PLAY, SPR2_BNCE|FF_SPR2ENDSTATE, 10, A_ForceStop, 0, 0, S_PLAY_STND}

states[S_KABOOMBOX] = {SPR_BOOM, A, -1, nil, 0, 0, S_KABOOMBOX}
states[S_BOOMBOX_EXPL1] = {SPR_KBEX, A, 1, A_SetObjectFlags, MF_NOGRAVITY|MF_PAIN, 0, S_BOOMBOX_EXPL2}
states[S_BOOMBOX_EXPL2] = {SPR_KBEX, A, 1, A_Scream, 0, 0, S_BOOMBOX_EXPL3}
states[S_BOOMBOX_EXPL3] = {SPR_KBEX, FF_FULLBRIGHT|FF_ANIMATE, 14, nil, 6, 2, S_NULL}
states[S_BOOMBOX_EXPL4] = {SPR_KBEX, A, 1, A_SetObjectFlags, MF_NOGRAVITY|MF_PAIN, 0, S_BOOMBOX_EXPL5}
states[S_BOOMBOX_EXPL5] = {SPR_KBEX, A, 1, A_Scream, 0, 0, S_BOOMBOX_EXPL6}
states[S_BOOMBOX_EXPL6] = {SPR_KBEX, FF_FULLBRIGHT|FF_ANIMATE, 14, nil, 6, 2, S_NULL}
states[S_AUTODETONATE] = {SPR_BOOM, B, 10, A_Pain, 0, 0, S_BOOMBOX_EXPL4}

states[S_KBBACTIVATE] = {SPR_PLAY, SPR2_CLNG|FF_SPR2ENDSTATE, 3, A_ForceStop, S_KBBACTIVATE_FIN, 0, S_KBBACTIVATE}
states[S_KBBACTIVATE_FIN] = {SPR_PLAY, SPR2_CLNG, 15, A_ForceStop, S_PLAY_FALL, 0, S_PLAY_FALL}

states[S_KBBINDICATOR] = {SPR_KBIN, FF_FULLBRIGHT|FF_ANIMATE|0, -1, nil, 4, 4, S_NULL}

states[S_FLAMESTINGER] = {SPR_FBLL, FF_FULLBRIGHT, 1, A_FireShot, 0, 0, S_FLAMESTINGER_CONT}
states[S_FLAMESTINGER_CONT] = {SPR_FBLL, FF_FULLBRIGHT, 1, A_SpawnObjectRelative, 0, MT_FIREBALLTRAIL, S_FLAMESTINGER_CONT}

states[S_CHARGEDFS] = {SPR_CHFS, A, 30, A_FireShot, 0, 0, S_CHARGEDFS_DIE1}
states[S_CHARGEDFS_DIE1] = {SPR_CHFS, A|FF_TRANS20, 2, nil, 0, 0, S_CHARGEDFS_DIE2}
states[S_CHARGEDFS_DIE2] = {SPR_CHFS, A|FF_TRANS40, 2, nil, 0, 0, S_CHARGEDFS_DIE3}
states[S_CHARGEDFS_DIE3] = {SPR_CHFS, A|FF_TRANS60, 2, nil, 0, 0, S_CHARGEDFS_DIE4}
states[S_CHARGEDFS_DIE4] = {SPR_CHFS, A|FF_TRANS80, 2, nil, 0, 0, S_CHARGEDFS_DIE5}
states[S_CHARGEDFS_DIE5] = {SPR_CHFS, B, 2, nil, 0, 0, S_NULL}

states[S_CHARGEAURA1] = {SPR_CHAU, A|FF_TRANS50, 5, nil, 0, 0, S_CHARGEAURA2}
states[S_CHARGEAURA2] = {SPR_CHAU, B|FF_TRANS50, 5, nil, 0, 0, S_CHARGEAURA1}
states[S_CHARGEAURA3] = {SPR_CHAU, C|FF_TRANS30, 5, nil, 0, 0, S_CHARGEAURA4}
states[S_CHARGEAURA4] = {SPR_CHAU, D|FF_TRANS30, 5, nil, 0, 0, S_CHARGEAURA3}

states[S_WATERFS] = {SPR_UWFS, FF_FULLBRIGHT, 1, A_FireShot, 0, 0, S_WATERFS_CONT}
states[S_WATERFS_CONT] = {SPR_UWFS, FF_FULLBRIGHT, 1, A_SpawnObjectRelative, 0, MT_WATERFS_TRAIL, S_WATERFS_CONT}

states[S_WATERFS_TRAIL1] = {SPR_UWFS, 1|FF_FULLBRIGHT|FF_TRANS50, 1, A_SetScale, FRACUNIT*3/4, 0, S_WATERFS_TRAIL2}
states[S_WATERFS_TRAIL2] = {SPR_UWFS, 1|FF_FULLBRIGHT|FF_TRANS50, 8, A_SetScale, FRACUNIT/6, 1, S_NULL}

states[S_WATERCFS] = {SPR_WCFS, A, 30, A_FireShot, 0, 0, S_WATERCFS_DIE1}
states[S_WATERCFS_DIE1] = {SPR_WCFS, A|FF_TRANS20, 2, nil, 0, 0, S_WATERCFS_DIE2}
states[S_WATERCFS_DIE2] = {SPR_WCFS, A|FF_TRANS40, 2, nil, 0, 0, S_WATERCFS_DIE3}
states[S_WATERCFS_DIE3] = {SPR_WCFS, A|FF_TRANS60, 2, nil, 0, 0, S_WATERCFS_DIE4}
states[S_WATERCFS_DIE4] = {SPR_WCFS, A|FF_TRANS80, 2, nil, 0, 0, S_WATERCFS_DIE5}
states[S_WATERCFS_DIE5] = {SPR_WCFS, B, 2, nil, 0, 0, S_NULL}

states[S_WALKSHOOT] = {SPR_PLAY, SPR2_MLEE|FF_SPR2ENDSTATE, 2, nil, S_WALKSHOOT_FIN, 0, S_WALKSHOOT}
states[S_WALKSHOOT_FIN] = {SPR_PLAY, SPR2_MLEE, 15, nil, S_PLAY_WALK, 0, S_PLAY_WALK}

states[S_RUNSHOOT] = {SPR_PLAY, SPR2_MLEL|FF_SPR2ENDSTATE, 2, nil, S_RUNSHOOT_FIN, 0, S_RUNSHOOT}
states[S_RUNSHOOT_FIN] = {SPR_PLAY, SPR2_MLEL, 15, nil, S_PLAY_RUN, 0, S_PLAY_RUN}

states[S_EMBER_DIE1] = {SPR_PLAY, SPR2_CLNG|A, 0, nil, 0, 0, S_EMBER_DIE2}
states[S_EMBER_DIE2] = {SPR_PLAY, SPR2_CLNG|FF_ANIMATE|FF_GLOBALANIM|B, 10, nil, 1, 1, S_EMBER_DIE3}
states[S_EMBER_DIE3] = {SPR_PLAY, SPR2_CLNG|FF_ANIMATE|B, 0, A_ZThrust, 0, 0, S_EMBER_DIE4}
states[S_EMBER_DIE4] = {SPR_PLAY, SPR2_CLNG|FF_ANIMATE|B, 0, A_PlaySound, sfx_s3k9c, 0, S_EMBER_DIE5}
states[S_EMBER_DIE5] = {SPR_PLAY, SPR2_CLNG|FF_ANIMATE|FF_GLOBALANIM|B|TR_TRANS30, 10, nil, 1, 0, S_EMBER_DIE6}
states[S_EMBER_DIE6] = {SPR_PLAY, SPR2_CLNG|FF_ANIMATE|FF_GLOBALANIM|B|TR_TRANS70, 10, nil, 1, 0, S_NULL}

states[S_EMBER_DRIP] = {SPR_PLAY, SPR2_BNCE, 1, nil, 0, 0, S_EMBER_DRIP}

states[S_MBSPINDASH1] = {SPR_PLAY, SPR2_RUN_1, 1, nil, 0, 0, S_MBSPINDASH2}
states[S_MBSPINDASH2] = {SPR_PLAY, SPR2_RUN_2, 1, nil, 0, 0, S_MBSPINDASH3}
states[S_MBSPINDASH3] = {SPR_PLAY, SPR2_RUN_3, 1, nil, 0, 0, S_MBSPINDASH4}
states[S_MBSPINDASH4] = {SPR_PLAY, SPR2_RUN_4, 1, nil, 0, 0, S_MBSPINDASH1}

states[S_THRUSTJUMP_PREP] = {SPR_PLAY, SPR2_RUN_|A, -1, nil, 0, 0, S_THRUSTJUMP_GO}
states[S_THRUSTJUMP_GO] = {SPR_PLAY, SPR2_RUN_|FF_SPR2ENDSTATE, 2, nil, S_THRUSTJUMP_GO, 0, S_PLAY_RUN}

states[S_REBOUND] = {SPR_REBO, FF_PAPERSPRITE|A, -1, nil, 0, 0, S_NULL}

states[S_PLAY_IMPACTLAND] = {SPR_PLAY, SPR2_LAND, 15, A_ForceStop, S_PLAY_STND, 0, S_PLAY_STND}

states[S_IMPACTWAVE1] = {SPR_IWAV, A|FF_FULLBRIGHT|FF_PAPERSPRITE, 4, A_Boss3ShockThink, 4, 2, S_IMPACTWAVE2}
states[S_IMPACTWAVE2] = {SPR_IWAV, B|FF_FULLBRIGHT|FF_PAPERSPRITE, 4, A_Boss3ShockThink, 4, 2, S_IMPACTWAVE1}

states[S_BASIC_GROUNDRIGHT1] = {SPR_PLAY, SPR2_MLEE, 2, A_ForceStop, 0, 0, S_BASIC_GROUNDRIGHT2}
states[S_BASIC_GROUNDRIGHT2] = {SPR_PLAY, SPR2_MLEE, 2, A_ForceStop, 0, 0, S_BASIC_GROUNDRIGHT3}
states[S_BASIC_GROUNDRIGHT3] = {SPR_PLAY, SPR2_MLEE, 15, A_ForceStop, 0, 0, S_PLAY_STND}
states[S_BASIC_GROUNDLEFT1] = {SPR_PLAY, SPR2_MLEE, 2, A_ForceStop, 0, 0, S_BASIC_GROUNDLEFT2}
states[S_BASIC_GROUNDLEFT2] = {SPR_PLAY, SPR2_MLEE, 2, A_ForceStop, 0, 0, S_BASIC_GROUNDLEFT3}
states[S_BASIC_GROUNDLEFT3] = {SPR_PLAY, SPR2_MLEE, 15, A_ForceStop, 0, 0, S_PLAY_STND}
states[S_BASIC_GROUNDFINISHA1] = {SPR_PLAY, SPR2_MLEE, 2, A_ForceStop, 0, 0, S_BASIC_GROUNDFINISHA2}
states[S_BASIC_GROUNDFINISHA2] = {SPR_PLAY, SPR2_MLEE, 2, A_ForceStop, 0, 0, S_BASIC_GROUNDFINISHA3}
states[S_BASIC_GROUNDFINISHA3] = {SPR_PLAY, SPR2_MLEE, 15, A_ForceStop, 0, 0, S_PLAY_STND}
states[S_BASIC_GROUNDFINISHB1] = {SPR_PLAY, SPR2_MLEE, 2, A_ForceStop, 0, 0, S_BASIC_GROUNDFINISHB2}
states[S_BASIC_GROUNDFINISHB2] = {SPR_PLAY, SPR2_MLEE, 2, A_ForceStop, 0, 0, S_BASIC_GROUNDFINISHB3}
states[S_BASIC_GROUNDFINISHB3] = {SPR_PLAY, SPR2_MLEE, 15, A_ForceStop, 0, 0, S_PLAY_STND}

states[S_SHREDDERR1] = {SPR_ASHR, A|FF_FULLBRIGHT, 2, nil, 0, 0, S_SHREDDERR2}
states[S_SHREDDERR2] = {SPR_ASHR, B|FF_FULLBRIGHT, 2, nil, 0, 0, S_NULL}

states[S_SHREDDERL1] = {SPR_ASHR, C|FF_FULLBRIGHT, 2, nil, 0, 0, S_SHREDDERL2}
states[S_SHREDDERL2] = {SPR_ASHR, D|FF_FULLBRIGHT, 2, nil, 0, 0, S_NULL}

states[S_DUALSHREDDER] = {SPR_ASHR, E|FF_FULLBRIGHT, 15, nil, 0, 0, S_NULL}

states[S_BASIC_AIRRIGHT1] = {SPR_PLAY, SPR2_MLEL, 2, A_ForceStop, 0, 0, S_BASIC_AIRRIGHT2}
states[S_BASIC_AIRRIGHT2] = {SPR_PLAY, SPR2_MLEL, 2, A_ForceStop, 0, 0, S_BASIC_AIRRIGHT3}
states[S_BASIC_AIRRIGHT3] = {SPR_PLAY, SPR2_MLEL, 15, A_ForceStop, 0, 0, S_PLAY_FALL}
states[S_BASIC_AIRLEFT1] = {SPR_PLAY, SPR2_MLEL, 2, A_ForceStop, 0, 0, S_BASIC_AIRLEFT2}
states[S_BASIC_AIRLEFT2] = {SPR_PLAY, SPR2_MLEL, 2, A_ForceStop, 0, 0, S_BASIC_AIRLEFT3}
states[S_BASIC_AIRLEFT3] = {SPR_PLAY, SPR2_MLEL, 15, A_ForceStop, 0, 0, S_PLAY_FALL}
states[S_BASIC_AIRFINISHA1] = {SPR_PLAY, SPR2_MLEL, 8, A_ForceStop, 0, 0, S_BASIC_AIRFINISHA2}
states[S_BASIC_AIRFINISHA2] = {SPR_PLAY, SPR2_MLEL, 2, A_ForceStop, 0, 0, S_BASIC_AIRFINISHA3}
states[S_BASIC_AIRFINISHA3] = {SPR_PLAY, SPR2_MLEL, 15, A_ForceStop, 0, 0, S_PLAY_FALL}
states[S_BASIC_AIRFINISHB1] = {SPR_PLAY, SPR2_MLEL, 2, A_ForceStop, 0, 0, S_BASIC_AIRFINISHB2}
states[S_BASIC_AIRFINISHB2] = {SPR_PLAY, SPR2_MLEL, 2, nil, 0, 0, S_BASIC_AIRFINISHB3}
states[S_BASIC_AIRFINISHB3] = {SPR_PLAY, SPR2_MLEL, 15, nil, 0, 0, S_PLAY_FALL}

states[S_PLAY_FINISHERLAND] = {SPR_PLAY, SPR2_LAND, 15, A_ForceStop, S_PLAY_STND, 0, S_PLAY_STND}

states[S_ENERGYPILLAR1] = {SPR_EPIL, A|FF_FULLBRIGHT, 3, nil, 0, 0, S_ENERGYPILLAR2}
states[S_ENERGYPILLAR2] = {SPR_EPIL, B|FF_FULLBRIGHT, 3, nil, 0, 0, S_ENERGYPILLAR3}
states[S_ENERGYPILLAR3] = {SPR_EPIL, C|FF_FULLBRIGHT, 3, nil, 0, 0, S_NULL}

states[S_VOIDYAURA_CHARGING] = {SPR_VCHA, A|FF_FULLBRIGHT|FF_TRANS50, -1, nil, 0, 0, S_NULL}

states[S_VOIDYAURA_CHARGED1] = {SPR_VCHA, B|FF_FULLBRIGHT|FF_TRANS50, 3, nil, 0, 0, S_VOIDYAURA_CHARGED2}
states[S_VOIDYAURA_CHARGED2] = {SPR_VCHA, C|FF_FULLBRIGHT|FF_TRANS50, 3, nil, 0, 0, S_VOIDYAURA_CHARGED3}
states[S_VOIDYAURA_CHARGED3] = {SPR_VCHA, D|FF_FULLBRIGHT|FF_TRANS50, 3, nil, 0, 0, S_NULL}

states[S_PLAY_EARTHSPIKER1] = {SPR_PLAY, SPR2_MLEE, 2, A_ForceStop, 0, 0, S_PLAY_EARTHSPIKER2}
states[S_PLAY_EARTHSPIKER2] = {SPR_PLAY, SPR2_MLEE, 2, A_ForceStop, 0, 0, S_PLAY_EARTHSPIKER3}
states[S_PLAY_EARTHSPIKER3] = {SPR_PLAY, SPR2_MLEE, 15, A_ForceStop, 0, 0, S_PLAY_STND}

states[S_VOIDYSPIKE1] = {SPR_ESPK, A|FF_FULLBRIGHT, 4, nil, 0, 0, S_VOIDYSPIKE2}
states[S_VOIDYSPIKE2] = {SPR_ESPK, B|FF_FULLBRIGHT, 10, nil, 0, 0, S_VOIDYSPIKE3}
states[S_VOIDYSPIKE3] = {SPR_ESPK, A|FF_FULLBRIGHT, 4, nil, 0, 0, S_NULL}

states[S_PLAY_CRESCENTDANCER1] = {SPR_PLAY, SPR2_MLEL, 2, nil, 0, 0, S_PLAY_CRESCENTDANCER2}
states[S_PLAY_CRESCENTDANCER2] = {SPR_PLAY, SPR2_MLEL, 2, nil, 0, 0, S_PLAY_CRESCENTDANCER3}
states[S_PLAY_CRESCENTDANCER3] = {SPR_PLAY, SPR2_MLEL, 2, nil, 0, 0, S_PLAY_CRESCENTDANCER4}
states[S_PLAY_CRESCENTDANCER4] = {SPR_PLAY, SPR2_MLEL, 2, nil, 0, 0, S_PLAY_FALL}

states[S_CHARGEDSHREDDER] = {SPR_CASH, A|FF_FULLBRIGHT, -1, A_FireShot, 0, 0, S_NULL}

states[S_PLAY_CHARGESTAND] = {SPR_PLAY, SPR2_SPIN|FF_ANIMATE, 15, nil, 0, 7, S_PLAY_STND}

states[S_PLAY_VACUUMGULLET1] = {SPR_PLAY, SPR2_MLEE, 2, nil, 0, 0, S_PLAY_VACUUMGULLET2}
states[S_PLAY_VACUUMGULLET2] = {SPR_PLAY, SPR2_MLEE, 2, nil, 0, 0, S_PLAY_VACUUMGULLET3}
states[S_PLAY_VACUUMGULLET3] = {SPR_PLAY, SPR2_MLEE, 5, nil, 0, 0, S_PLAY_VACUUMGULLET4}
states[S_PLAY_VACUUMGULLET4] = {SPR_PLAY, SPR2_MLEE, 3, nil, 0, 0, S_PLAY_VACUUMGULLET3}

states[S_SUCCFX] = {SPR_SUCC, TR_TRANS70|FF_PAPERSPRITE|FF_FULLBRIGHT|FF_ANIMATE|A, 13, nil, 3, 3, S_SUCCFX}

states[S_VACCHITBOX] = {SPR_NULL, A, -1, nil, 0, 0, S_NULL}

states[S_PLAY_VACUUMREVERT1] = {SPR_PLAY, SPR2_MLEE, 2, A_ForceStop, 0, 0, S_PLAY_VACUUMREVERT2}
states[S_PLAY_VACUUMREVERT2] = {SPR_PLAY, SPR2_MLEE, 5, A_ForceStop, 0, 0, S_PLAY_VACUUMREVERT3}
states[S_PLAY_VACUUMREVERT3] = {SPR_PLAY, SPR2_MLEE, 15, A_ForceStop, 0, 0, S_PLAY_STND}

states[S_PLAY_FRENZY_INTRO1] = {SPR_PLAY, SPR2_FINT|A, 5, nil, 0, 0, S_PLAY_FRENZY_INTRO2}
states[S_PLAY_FRENZY_INTRO2] = {SPR_PLAY, SPR2_FINT|A, 15, nil, 0, 0, S_PLAY_FRENZY_TRANS1}

states[S_PLAY_FRENZY_TRANS1] = {SPR_PLAY, SPR2_TALB|FF_ANIMATE, 7, nil, 0, 4, S_PLAY_FRENZY_TRANS2}
states[S_PLAY_FRENZY_TRANS2] = {SPR_PLAY, SPR2_TALB, 3, nil, 0, 0, S_PLAY_FRENZY_TRANS3}
states[S_PLAY_FRENZY_TRANS3] = {SPR_PLAY, SPR2_TALB, 2, nil, 0, 0, S_PLAY_FRENZY_TRANS4}
states[S_PLAY_FRENZY_TRANS4] = {SPR_PLAY, SPR2_TALB, 2, nil, 0, 0, S_PLAY_FRENZY_TRANS5}
states[S_PLAY_FRENZY_TRANS5] = {SPR_PLAY, SPR2_TALB, 2, nil, 0, 0, S_PLAY_FRENZY_TRANS6}
states[S_PLAY_FRENZY_TRANS6] = {SPR_PLAY, SPR2_TALB, 19, nil, 0, 0, S_PLAY_STND}

states[S_FRENZYAURA1] = {SPR_FAUR, A|FF_FULLBRIGHT|FF_TRANS30, 1, nil, 0, 0, S_FRENZYAURA2}
states[S_FRENZYAURA2] = {SPR_FAUR, B|FF_FULLBRIGHT|FF_TRANS30, 1, nil, 0, 0, S_FRENZYAURA3}
states[S_FRENZYAURA3] = {SPR_FAUR, C|FF_FULLBRIGHT|FF_TRANS30, 1, nil, 0, 0, S_FRENZYAURA4}
states[S_FRENZYAURA4] = {SPR_FAUR, D|FF_FULLBRIGHT|FF_TRANS30, 1, nil, 0, 0, S_FRENZYAURA5}
states[S_FRENZYAURA5] = {SPR_FAUR, E|FF_FULLBRIGHT|FF_TRANS30, 1, nil, 0, 0, S_FRENZYAURA6}
states[S_FRENZYAURA6] = {SPR_FAUR, F|FF_FULLBRIGHT|FF_TRANS30, 1, nil, 0, 0, S_FRENZYAURA7}
states[S_FRENZYAURA7] = {SPR_FAUR, G|FF_FULLBRIGHT|FF_TRANS30, 1, nil, 0, 0, S_FRENZYAURA8}
states[S_FRENZYAURA8] = {SPR_FAUR, H|FF_FULLBRIGHT|FF_TRANS30, 1, nil, 0, 0, S_FRENZYAURA1}

states[S_FRENZY_GROUNDRIGHT1] = {SPR_PLAY, SPR2_FMLE, 2, A_ForceStop, 0, 0, S_FRENZY_GROUNDRIGHT2}
states[S_FRENZY_GROUNDRIGHT2] = {SPR_PLAY, SPR2_FMLE, 2, A_ForceStop, 0, 0, S_FRENZY_GROUNDRIGHT3}
states[S_FRENZY_GROUNDRIGHT3] = {SPR_PLAY, SPR2_FMLE, 15, A_ForceStop, 0, 0, S_PLAY_STND}
states[S_FRENZY_GROUNDLEFT1] = {SPR_PLAY, SPR2_FMLE, 2, A_ForceStop, 0, 0, S_FRENZY_GROUNDLEFT2}
states[S_FRENZY_GROUNDLEFT2] = {SPR_PLAY, SPR2_FMLE, 2, A_ForceStop, 0, 0, S_FRENZY_GROUNDLEFT3}
states[S_FRENZY_GROUNDLEFT3] = {SPR_PLAY, SPR2_FMLE, 15, A_ForceStop, 0, 0, S_PLAY_STND}
states[S_FRENZY_GROUNDFINISHA1] = {SPR_PLAY, SPR2_FMLE, 2, A_ForceStop, 0, 0, S_FRENZY_GROUNDFINISHA2}
states[S_FRENZY_GROUNDFINISHA2] = {SPR_PLAY, SPR2_FMLE, 8, A_ForceStop, 0, 0, S_FRENZY_GROUNDFINISHA3}
states[S_FRENZY_GROUNDFINISHA3] = {SPR_PLAY, SPR2_FMLE, 15, A_ForceStop, 0, 0, S_PLAY_STND}
states[S_FRENZY_GROUNDFINISHB1] = {SPR_PLAY, SPR2_FMLE, 2, A_ForceStop, 0, 0, S_FRENZY_GROUNDFINISHB2}
states[S_FRENZY_GROUNDFINISHB2] = {SPR_PLAY, SPR2_FMLE, 2, A_ForceStop, 0, 0, S_FRENZY_GROUNDFINISHB3}
states[S_FRENZY_GROUNDFINISHB3] = {SPR_PLAY, SPR2_FMLE, 15, A_ForceStop, 0, 0, S_PLAY_STND}

states[S_FRENZY_SHREDDERR1] = {SPR_ASHR, F|FF_FULLBRIGHT, 2, nil, 0, 0, S_FRENZY_SHREDDERR2}
states[S_FRENZY_SHREDDERR2] = {SPR_ASHR, G|FF_FULLBRIGHT, 2, nil, 0, 0, S_NULL}

states[S_FRENZY_SHREDDERL1] = {SPR_ASHR, H|FF_FULLBRIGHT, 2, nil, 0, 0, S_FRENZY_SHREDDERL2}
states[S_FRENZY_SHREDDERL2] = {SPR_ASHR, I|FF_FULLBRIGHT, 2, nil, 0, 0, S_NULL}

states[S_FRENZY_DUALSHREDDER1] = {SPR_ASHR, J|FF_FULLBRIGHT|FF_FLOORSPRITE, 2, nil, 0, 0, S_FRENZY_DUALSHREDDER2}
states[S_FRENZY_DUALSHREDDER2] = {SPR_ASHR, K|FF_FULLBRIGHT|FF_FLOORSPRITE, 2, nil, 0, 0, S_FRENZY_DUALSHREDDER3}
states[S_FRENZY_DUALSHREDDER3] = {SPR_ASHR, L|FF_FULLBRIGHT|FF_FLOORSPRITE, 2, nil, 0, 0, S_FRENZY_DUALSHREDDER4}
states[S_FRENZY_DUALSHREDDER4] = {SPR_ASHR, M|FF_FULLBRIGHT|FF_FLOORSPRITE, 2, nil, 0, 0, S_FRENZY_DUALSHREDDER5}
states[S_FRENZY_DUALSHREDDER5] = {SPR_ASHR, J|FF_FULLBRIGHT|FF_FLOORSPRITE|FF_TRANS40, 2, nil, 0, 0, S_FRENZY_DUALSHREDDER6}
states[S_FRENZY_DUALSHREDDER6] = {SPR_ASHR, J|FF_FULLBRIGHT|FF_FLOORSPRITE|FF_TRANS80, 2, nil, 0, 0, S_FRENZY_DUALSHREDDER7}
states[S_FRENZY_DUALSHREDDER7] = {SPR_NULL, A, 2, nil, 0, 0, S_NULL}

states[S_ENERGYTSUNAMI1] = {SPR_VTSU, A|FF_FULLBRIGHT, 3, nil, 0, 0, S_ENERGYTSUNAMI2}
states[S_ENERGYTSUNAMI2] = {SPR_VTSU, B|FF_FULLBRIGHT, 3, nil, 0, 0, S_ENERGYTSUNAMI3}
states[S_ENERGYTSUNAMI3] = {SPR_VTSU, C|FF_FULLBRIGHT, 3, nil, 0, 0, S_ENERGYTSUNAMI4}
states[S_ENERGYTSUNAMI4] = {SPR_VTSU, B|FF_FULLBRIGHT, 3, nil, 0, 0, S_ENERGYTSUNAMI5}
states[S_ENERGYTSUNAMI5] = {SPR_VTSU, A|FF_FULLBRIGHT, 3, nil, 0, 0, S_NULL}

states[S_FRENZY_AIRRIGHT1] = {SPR_PLAY, SPR2_FMLL, 2, A_ForceStop, 0, 0, S_FRENZY_AIRRIGHT2}
states[S_FRENZY_AIRRIGHT2] = {SPR_PLAY, SPR2_FMLL, 2, A_ForceStop, 0, 0, S_FRENZY_AIRRIGHT3}
states[S_FRENZY_AIRRIGHT3] = {SPR_PLAY, SPR2_FMLL, 15, A_ForceStop, 0, 0, S_PLAY_FALL}
states[S_FRENZY_AIRLEFT1] = {SPR_PLAY, SPR2_FMLL, 2, A_ForceStop, 0, 0, S_FRENZY_AIRLEFT2}
states[S_FRENZY_AIRLEFT2] = {SPR_PLAY, SPR2_FMLL, 2, A_ForceStop, 0, 0, S_FRENZY_AIRLEFT3}
states[S_FRENZY_AIRLEFT3] = {SPR_PLAY, SPR2_FMLL, 15, A_ForceStop, 0, 0, S_PLAY_FALL}
states[S_FRENZY_AIRFINISHA1] = {SPR_PLAY, SPR2_FMLL, 8, A_ForceStop, 0, 0, S_FRENZY_AIRFINISHA2}
states[S_FRENZY_AIRFINISHA2] = {SPR_PLAY, SPR2_FMLL, 2, A_ForceStop, 0, 0, S_FRENZY_AIRFINISHA3}
states[S_FRENZY_AIRFINISHA3] = {SPR_PLAY, SPR2_FMLL, 15, A_ForceStop, 0, 0, S_PLAY_FALL}
states[S_FRENZY_AIRFINISHB1] = {SPR_PLAY, SPR2_FMLL, 2, A_ForceStop, 0, 0, S_FRENZY_AIRFINISHB2}
states[S_FRENZY_AIRFINISHB2] = {SPR_PLAY, SPR2_FMLL, -1, nil, 0, 0, S_FRENZY_AIRFINISHB2}
states[S_FRENZY_AIRFINISHB3] = {SPR_PLAY, SPR2_FMLL, 1, nil, 0, 0, S_PLAY_ROLL}

states[S_FRENZY_ENERGYBALL1] = {SPR_EPIL, FF_FULLBRIGHT|D, 1, A_LobShot, 0, 0, S_FRENZY_ENERGYBALL2}
states[S_FRENZY_ENERGYBALL2] = {SPR_EPIL, FF_FULLBRIGHT|FF_ANIMATE|D, 10, nil, 4, 4, S_FRENZY_ENERGYBALL2}
states[S_FRENZY_ENERGYBALLEXPL1] = {SPR_EPIL, I|FF_FULLBRIGHT, 1, A_SetObjectFlags, MF_NOGRAVITY|MF_NOBLOCKMAP|MF_NOCLIPHEIGHT, 0, S_FRENZY_ENERGYBALLEXPL2}
states[S_FRENZY_ENERGYBALLEXPL2] = {SPR_EPIL, J|FF_FULLBRIGHT, 1, A_Scream, 0, 0, S_FRENZY_ENERGYBALLEXPL3}
states[S_FRENZY_ENERGYBALLEXPL3] = {SPR_EPIL, K|FF_FULLBRIGHT, 1, nil, 0, 0, S_FRENZY_ENERGYBALLEXPL4}
states[S_FRENZY_ENERGYBALLEXPL4] = {SPR_EPIL, L|FF_FULLBRIGHT, 1, nil, 0, 0, S_FRENZY_ENERGYBALLEXPL5}
states[S_FRENZY_ENERGYBALLEXPL5] = {SPR_EPIL, M|FF_FULLBRIGHT, 1, nil, 0, 0, S_FRENZY_ENERGYBALLEXPL6}
states[S_FRENZY_ENERGYBALLEXPL6] = {SPR_EPIL, N|FF_FULLBRIGHT, 1, nil, 0, 0, S_FRENZY_ENERGYBALLEXPL7}
states[S_FRENZY_ENERGYBALLEXPL7] = {SPR_EPIL, O|FF_FULLBRIGHT, 1, nil, 0, 0, S_FRENZY_ENERGYBALLEXPL8}
states[S_FRENZY_ENERGYBALLEXPL8] = {SPR_EPIL, P|FF_FULLBRIGHT, 1, nil, 0, 0, S_FRENZY_ENERGYBALLEXPL9}
states[S_FRENZY_ENERGYBALLEXPL9] = {SPR_EPIL, Q|FF_FULLBRIGHT, 1, nil, 0, 0, S_NULL}

states[S_FRENZY_ENERGYPILLAR1] = {SPR_LRAY, A|FF_FULLBRIGHT, 3, nil, 0, 0, S_FRENZY_ENERGYPILLAR2}
states[S_FRENZY_ENERGYPILLAR2] = {SPR_LRAY, B|FF_FULLBRIGHT, 3, nil, 0, 0, S_FRENZY_ENERGYPILLAR3}
states[S_FRENZY_ENERGYPILLAR3] = {SPR_LRAY, C|FF_FULLBRIGHT, 3, nil, 0, 0, S_FRENZY_ENERGYPILLAR4}
states[S_FRENZY_ENERGYPILLAR4] = {SPR_LRAY, B|FF_FULLBRIGHT, 3, nil, 0, 0, S_FRENZY_ENERGYPILLAR5}
states[S_FRENZY_ENERGYPILLAR5] = {SPR_LRAY, A|FF_FULLBRIGHT, 3, nil, 0, 0, S_NULL}

states[S_STABEXPL] = {SPR_VSTB, A|FF_FULLBRIGHT, -1, nil, 0, 0, S_NULL}

states[S_PLAY_EARTHSCORCHER1] = {SPR_PLAY, SPR2_FMLE, 2, A_ForceStop, 0, 0, S_PLAY_EARTHSCORCHER2}
states[S_PLAY_EARTHSCORCHER2] = {SPR_PLAY, SPR2_FMLE, 2, A_ForceStop, 0, 0, S_PLAY_EARTHSCORCHER3}
states[S_PLAY_EARTHSCORCHER3] = {SPR_PLAY, SPR2_FMLE, 15, A_ForceStop, 0, 0, S_PLAY_STND}

states[S_EARTHSCORCHER] = {SPR_ESPK, C|FF_FULLBRIGHT, -1, A_FireShot, 0, 0, S_EARTHSCORCHER}
states[S_EARTHSCORCHER_FLAME] = {SPR_VFLM, FF_FULLBRIGHT|FF_ANIMATE|A, 100, nil, 7, 3, S_NULL}

states[S_PLAY_CRESCENTREAPER1] = {SPR_PLAY, SPR2_FMLL, 2, nil, 0, 0, S_PLAY_CRESCENTREAPER2}
states[S_PLAY_CRESCENTREAPER2] = {SPR_PLAY, SPR2_FMLL, 2, nil, 0, 0, S_PLAY_CRESCENTREAPER3}
states[S_PLAY_CRESCENTREAPER3] = {SPR_PLAY, SPR2_FMLL, 2, nil, 0, 0, S_PLAY_CRESCENTREAPER4}
states[S_PLAY_CRESCENTREAPER4] = {SPR_PLAY, SPR2_FMLL, 2, nil, 0, 0, S_PLAY_FALL}

states[S_FRENZY_CHARGEDSHREDDER] = {SPR_CASH, B|FF_FULLBRIGHT, 30, A_FireShot, 0, 0, S_NULL}

states[S_PLAY_VORTEXGULLET1] = {SPR_PLAY, SPR2_FMLE, 2, nil, 0, 0, S_PLAY_VORTEXGULLET2}
states[S_PLAY_VORTEXGULLET2] = {SPR_PLAY, SPR2_FMLE, 2, nil, 0, 0, S_PLAY_VORTEXGULLET3}
states[S_PLAY_VORTEXGULLET3] = {SPR_PLAY, SPR2_FMLE, 5, nil, 0, 0, S_PLAY_VORTEXGULLET4}
states[S_PLAY_VORTEXGULLET4] = {SPR_PLAY, SPR2_FMLE, 3, nil, 0, 0, S_PLAY_VORTEXGULLET3}

states[S_FRENZY_SUCCFX] = {SPR_SUCC, TR_TRANS70|FF_FLOORSPRITE|FF_FULLBRIGHT|FF_ANIMATE|A, 13, nil, 3, 3, S_FRENZY_SUCCFX}

states[S_PLAY_VORTEXREVERT1] = {SPR_PLAY, SPR2_FMLE, 2, A_ForceStop, 0, 0, S_PLAY_VORTEXREVERT2}
states[S_PLAY_VORTEXREVERT2] = {SPR_PLAY, SPR2_FMLE, 5, A_ForceStop, 0, 0, S_PLAY_VORTEXREVERT3}
states[S_PLAY_VORTEXREVERT3] = {SPR_PLAY, SPR2_FMLE, 15, A_ForceStop, 0, 0, S_PLAY_STND}

states[S_PLAY_SUPER_INTRO1] = {SPR_PLAY, SPR2_SINT|A, 5, nil, 0, 0, S_PLAY_SUPER_INTRO2}
states[S_PLAY_SUPER_INTRO2] = {SPR_PLAY, SPR2_SINT|A, 15, nil, 0, 0, S_PLAY_SUPER_INTRO3}
states[S_PLAY_SUPER_INTRO3] = {SPR_PLAY, SPR2_SINT|A, 1, nil, 0, 0, S_PLAY_FALL}

states[S_VOIDYBLACKHOLE] = {SPR_THOK, A|FF_FULLBRIGHT|FF_TRANS80, -1, nil, 0, 0, S_NULL}

states[S_BASIC_WINGGUARD] = {SPR_PLAY, SPR2_BNCE|FF_SPR2ENDSTATE, 2, nil, S_BASIC_WINGGUARD_FIN, 0, S_BASIC_WINGGUARD}
states[S_BASIC_WINGGUARD_FIN] = {SPR_PLAY, SPR2_BNCE, 15, nil, S_PLAY_STND, 0, S_PLAY_STND}
states[S_FRENZY_WINGGUARD] = {SPR_PLAY, SPR2_FBNC|FF_SPR2ENDSTATE, 2, nil, S_FRENZY_WINGGUARD_FIN, 0, S_FRENZY_WINGGUARD}
states[S_FRENZY_WINGGUARD_FIN] = {SPR_PLAY, SPR2_FBNC, 15, nil, S_PLAY_STND, 0, S_PLAY_STND}

states[S_TWIN_GROUNDRIGHT1] = {SPR_PLAY, SPR2_TWIN, 2, A_ForceStop, 0, 0, S_TWIN_GROUNDRIGHT2}
states[S_TWIN_GROUNDRIGHT2] = {SPR_PLAY, SPR2_TWIN, 2, A_ForceStop, 0, 0, S_TWIN_GROUNDRIGHT3}
states[S_TWIN_GROUNDRIGHT3] = {SPR_PLAY, SPR2_TWIN, 15, A_ForceStop, 0, 0, S_NULL}
states[S_TWIN_GROUNDLEFT1] = {SPR_PLAY, SPR2_TWIN, 2, A_ForceStop, 0, 0, S_TWIN_GROUNDLEFT2}
states[S_TWIN_GROUNDLEFT2] = {SPR_PLAY, SPR2_TWIN, 2, A_ForceStop, 0, 0, S_TWIN_GROUNDLEFT3}
states[S_TWIN_GROUNDLEFT3] = {SPR_PLAY, SPR2_TWIN, 15, A_ForceStop, 0, 0, S_NULL}
states[S_TWIN_DASH1] = {SPR_PLAY, SPR2_TWIN, 3, A_ForceStop, 0, 0, S_TWIN_DASH2}
states[S_TWIN_DASH2] = {SPR_PLAY, SPR2_TWIN, 2, nil, 0, 0, S_TWIN_DASH3}
states[S_TWIN_DASH3] = {SPR_PLAY, SPR2_TWIN, 15, nil, 0, 0, S_NULL}
states[S_TWIN_AIRRIGHT1] = {SPR_PLAY, SPR2_TWIN, 2, A_ForceStop, 0, 0, S_TWIN_AIRRIGHT2}
states[S_TWIN_AIRRIGHT2] = {SPR_PLAY, SPR2_TWIN, 2, A_ForceStop, 0, 0, S_TWIN_AIRRIGHT3}
states[S_TWIN_AIRRIGHT3] = {SPR_PLAY, SPR2_TWIN, 15, A_ForceStop, 0, 0, S_NULL}
states[S_TWIN_AIRLEFT1] = {SPR_PLAY, SPR2_TWIN, 2, A_ForceStop, 0, 0, S_TWIN_AIRLEFT2}
states[S_TWIN_AIRLEFT2] = {SPR_PLAY, SPR2_TWIN, 2, A_ForceStop, 0, 0, S_TWIN_AIRLEFT3}
states[S_TWIN_AIRLEFT3] = {SPR_PLAY, SPR2_TWIN, 15, A_ForceStop, 0, 0, S_NULL}
states[S_TWIN_GLIDE] = {SPR_PLAY, SPR2_TWIN, 2, nil, 0, 0, S_TWIN_GLIDE}
states[S_TWIN_LAND] = {SPR_PLAY, SPR2_TWIN, 7, nil, 0, 0, S_NULL}

states[S_DASHAURA] = {SPR_DAUR, FF_FULLBRIGHT|TR_TRANS50|A, 17, nil, 1, 4, S_NULL}

states[S_FRENZYEXPL1] = {SPR_FOUT, A|FF_FULLBRIGHT, 2, nil, 0, 0, S_FRENZYEXPL2}
states[S_FRENZYEXPL2] = {SPR_FOUT, B|FF_FULLBRIGHT, 2, nil, 0, 0, S_FRENZYEXPL3}
states[S_FRENZYEXPL3] = {SPR_FOUT, C|FF_FULLBRIGHT, 2, nil, 0, 0, S_FRENZYEXPL4}
states[S_FRENZYEXPL4] = {SPR_FOUT, D|FF_FULLBRIGHT, 2, nil, 0, 0, S_FRENZYEXPL5}
states[S_FRENZYEXPL5] = {SPR_FOUT, E|FF_FULLBRIGHT, 2, nil, 0, 0, S_FRENZYEXPL6}
states[S_FRENZYEXPL6] = {SPR_FOUT, F|FF_FULLBRIGHT, 2, nil, 0, 0, S_FRENZYEXPL7}
states[S_FRENZYEXPL7] = {SPR_FOUT, G|FF_FULLBRIGHT, 2, nil, 0, 0, S_FRENZYEXPL8}
states[S_FRENZYEXPL8] = {SPR_FOUT, H|FF_FULLBRIGHT, 2, nil, 0, 0, S_FRENZYEXPL9}
states[S_FRENZYEXPL9] = {SPR_FOUT, I|FF_FULLBRIGHT, 2, nil, 0, 0, S_FRENZYEXPL10}
states[S_FRENZYEXPL10] = {SPR_FOUT, J|FF_FULLBRIGHT, 2, nil, 0, 0, S_NULL}
states[S_FRENZYEXPL_DIE1] = {SPR_FOUT, J|FF_TRANS20, 2, nil, 0, 0, S_FRENZYEXPL_DIE2}
states[S_FRENZYEXPL_DIE2] = {SPR_FOUT, J|FF_TRANS40, 2, nil, 0, 0, S_FRENZYEXPL_DIE3}
states[S_FRENZYEXPL_DIE3] = {SPR_FOUT, J|FF_TRANS60, 2, nil, 0, 0, S_FRENZYEXPL_DIE4}
states[S_FRENZYEXPL_DIE4] = {SPR_FOUT, J|FF_TRANS80, 2, nil, 0, 0, S_FRENZYEXPL_DIE5}
states[S_FRENZYEXPL_DIE5] = {SPR_FOUT, K, 2, nil, 0, 0, S_NULL}

states[S_REALITYSHREDDER_SPAWN] = {SPR_RSH1, FF_FULLBRIGHT|FF_ANIMATE|A, 8, nil, 3, 3, S_REALITYSHREDDER}
states[S_REALITYSHREDDER] = {SPR_RSH2, FF_FULLBRIGHT|FF_ANIMATE|A, 175, nil, 1, 5, S_REALITYSHREDDER_DIE}
states[S_REALITYSHREDDER_DIE] = {SPR_RSH1, FF_FULLBRIGHT|FF_ANIMATE|D, 8, nil, 3, 3, S_NULL}

mobjinfo[MT_DROPPEDMIC] = {
	spawnstate = S_DROPPEDMIC,
	spawnhealth = 1,
	height = 8*FRACUNIT,
	radius = 11*FRACUNIT,
	speed = 20*FRACUNIT,
	deathstate = S_XPLD1,
	deathsound = sfx_bsnipe,
	flags = MF_NOBLOCKMAP|MF_MISSILE
}

mobjinfo[MT_SHOCKWAVE1] = {
	spawnstate = S_MICSHOCKWAVE,
	spawnhealth = 1,
	height = 50*FRACUNIT,
	radius = 200*FRACUNIT,
	speed = 0*FRACUNIT,
	deathstate = S_NULL,
	flags = MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOBLOCKMAP
}

mobjinfo[MT_SHOCKWAVE2] = {
	spawnstate = S_MICSHOCKWAVE,
	spawnhealth = 1,
	height = 50*FRACUNIT,
	radius = 400*FRACUNIT,
	speed = 0*FRACUNIT,
	deathstate = S_NULL,
	flags = MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOBLOCKMAP
}

mobjinfo[MT_KABOOMBOX] = {
	spawnstate = S_KABOOMBOX,
	spawnhealth = 1,
	height = 32*FRACUNIT,
	radius = 10*FRACUNIT,
	speed = 0*FRACUNIT,
	deathstate = S_BOOMBOX_EXPL1,
	deathsound = sfx_s3k4e,
	flags = MF_SOLID|MF_SLIDEME|MF_PUSHABLE|MF_SHOOTABLE|MF_SPRING,
	painchance = 1,
	damage = 0,
	raisestate = S_AUTODETONATE,
	painsound = sfx_s3k44
}

mobjinfo[MT_FLAMESTINGER] = {
	spawnstate = S_FLAMESTINGER,
	spawnhealth = 1000,
	seesound = sfx_s1ae,
	reactiontime = 8,
	speed = 80*FRACUNIT,
	radius = 4*FRACUNIT,
	height = 8*FRACUNIT,
	mass = DMG_FIRE,
	flags = MF_FIRE|MF_MISSILE|MF_NOGRAVITY,
}

mobjinfo[MT_CHARGEDFS] = {
	spawnstate = S_CHARGEDFS,
	spawnhealth = 1000,
	seesound = sfx_koopfr,
	reactiontime = 8,
	speed = 40*FRACUNIT,
	radius = 60*FRACUNIT,
	height = 120*FRACUNIT,
	mass = DMG_FIRE,
	flags = MF_FIRE|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOBLOCKMAP,
}

mobjinfo[MT_EMBERCHARGEAURA] = {
	spawnstate = S_INVISIBLE,
	spawnhealth = 1000,
	reactiontime = 8,
	speed = 8,
	radius = 16*FRACUNIT,
	height = 48*FRACUNIT,
	mass = 16,
	flags = MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY,
}

mobjinfo[MT_WATERFS] = {
	spawnstate = S_WATERFS,
	spawnhealth = 1000,
	seesound = sfx_splish,
	reactiontime = 8,
	speed = 40*FRACUNIT,
	radius = 4*FRACUNIT,
	height = 8*FRACUNIT,
	mass = DMG_FIRE,
	flags = MF_MISSILE|MF_NOGRAVITY,
}

mobjinfo[MT_WATERFS_TRAIL] = {
	spawnstate = S_WATERFS_TRAIL1,
	spawnhealth = 1000,
	reactiontime = 8,
	radius = 16*FRACUNIT,
	height = 16*FRACUNIT,
	damage = 1,
	flags = MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_RUNSPAWNFUNC,
}

mobjinfo[MT_WATERCFS] = {
	spawnstate = S_WATERCFS,
	spawnhealth = 1000,
	seesound = sfx_befire,
	reactiontime = 8,
	speed = 20*FRACUNIT,
	radius = 60*FRACUNIT,
	height = 120*FRACUNIT,
	mass = DMG_FIRE,
	flags = MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOBLOCKMAP,
}

mobjinfo[MT_REBOUND] = {
	doomednum = -1,
	spawnstate = S_REBOUND,
	flags = MF_NOCLIP|MF_SCENERY|MF_NOGRAVITY
}

mobjinfo[MT_IMPACTSHOCKWAVE] = {
	doomednum = -1,
	spawnstate = S_IMPACTWAVE1,
	spawnhealth = 1000,
	deathstate = S_SPRK1,
	speed = 60*FRACUNIT,
	radius = 50*FRACUNIT,
	height = 50*FRACUNIT,
	damage = 1,
	flags = MF_NOBLOCKMAP|MF_MISSILE|MF_NOGRAVITY|MF_PAPERCOLLISION|MF_NOCLIPHEIGHT
}

mobjinfo[MT_RIGHTSHREDDER] = {
	doomednum = -1,
	spawnstate = S_SHREDDERR1,
	spawnhealth = 1000,
	reactiontime = 8,
	speed = 0*FRACUNIT,
	radius = 25*FRACUNIT,
	height = 128*FRACUNIT,
	deathstate = S_NULL,
	damage = 1,
	flags = MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOBLOCKMAP
}

mobjinfo[MT_LEFTSHREDDER] = {
	doomednum = -1,
	spawnstate = S_SHREDDERL1,
	spawnhealth = 1000,
	reactiontime = 8,
	speed = 0*FRACUNIT,
	radius = 25*FRACUNIT,
	height = 128*FRACUNIT,
	deathstate = S_NULL,
	damage = 1,
	flags = MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOBLOCKMAP
}

mobjinfo[MT_DUALSHREDDER] = {
	doomednum = -1,
	spawnstate = S_DUALSHREDDER,
	spawnhealth = 1000,
	reactiontime = 8,
	speed = 12*FRACUNIT,
	radius = 50*FRACUNIT,
	height = 160*FRACUNIT,
	deathstate = S_NULL,
	damage = 1,
	flags = MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOBLOCKMAP
}

mobjinfo[MT_ENERGYPILLAR] = {
	doomednum = -1,
	spawnstate = S_ENERGYPILLAR1,
	spawnhealth = 1,
	height = 300*FRACUNIT,
	radius = 30*FRACUNIT,
	speed = 0*FRACUNIT,
	deathstate = S_NULL,
	damage = 1,
	flags = MF_NOGRAVITY|MF_NOBLOCKMAP
}

mobjinfo[MT_VOIDYCHARGEAURA] = {
	spawnstate = S_VOIDYAURA_CHARGING,
	spawnhealth = 1000,
	reactiontime = 8,
	speed = 8,
	radius = 16*FRACUNIT,
	height = 48*FRACUNIT,
	mass = 16,
	flags = MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY,
}

mobjinfo[MT_VOIDYCHARGEFLASH] = {
	spawnstate = S_VOIDYAURA_CHARGED1,
	spawnhealth = 1000,
	reactiontime = 8,
	speed = 8,
	radius = 16*FRACUNIT,
	height = 48*FRACUNIT,
	mass = 16,
	flags = MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY,
}

mobjinfo[MT_VOIDYSPIKE] = {
	doomednum = -1,
	spawnstate = S_VOIDYSPIKE1,
	spawnhealth = 1000,
	reactiontime = 8,
	speed = 0*FRACUNIT,
	radius = 100*FRACUNIT,
	height = 250*FRACUNIT,
	deathstate = S_NULL,
	damage = 2,
	flags = MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOCLIP
}

mobjinfo[MT_CRESCENTDANCER] = {
	doomednum = -1,
	spawnstate = S_CHARGEDSHREDDER,
	spawnhealth = 1000,
	deathstate = S_SPRK1,
	speed = 60*FRACUNIT,
	radius = 50*FRACUNIT,
	height = 80*FRACUNIT,
	damage = 1,
	flags = MF_NOBLOCKMAP|MF_MISSILE|MF_NOGRAVITY
}

mobjinfo[MT_SUCCFX] = {
	doomednum = -1,
	spawnstate = S_SUCCFX,
	radius = 30*FRACUNIT,
	height = 100*FRACUNIT,
	flags = MF_NOBLOCKMAP|MF_NOCLIPHEIGHT|MF_NOGRAVITY
}

mobjinfo[MT_VACCHITBOX] = {
	spawnstate = S_VACCHITBOX,
	spawnhealth = 1,
	height = 30*FRACUNIT,
	radius = 48*FRACUNIT,
	speed = 0*FRACUNIT,
	deathstate = S_NULL,
	flags = MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOBLOCKMAP
}

mobjinfo[MT_VOIDYROCK] = {
	doomednum = -1,
	spawnstate = S_ROCKCRUMBLEA,
	spawnhealth = 1000,
	seesound = sfx_ambint,
	height = 16*FRACUNIT,
	radius = 8*FRACUNIT,
	speed = 0,
	dispoffset = 0,
	mass = 1000,
	damage = 8,
	actiesound = sfx_crumbl,
	flags = MF_NOBLOCKMAP|MF_NOCLIPHEIGHT|MF_SCENERY
}

mobjinfo[MT_FRENZYAURA] = {
	spawnstate = S_INVISIBLE,
	spawnhealth = 1000,
	reactiontime = 8,
	speed = 8,
	radius = 16*FRACUNIT,
	height = 48*FRACUNIT,
	mass = 16,
	flags = MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY
}

mobjinfo[MT_FRENZY_RIGHTSHREDDER] = {
	doomednum = -1,
	spawnstate = S_FRENZY_SHREDDERR1,
	spawnhealth = 1000,
	reactiontime = 8,
	speed = 0*FRACUNIT,
	radius = 50*FRACUNIT,
	height = 368*FRACUNIT,
	deathstate = S_NULL,
	damage = 1,
	flags = MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOBLOCKMAP
}

mobjinfo[MT_FRENZY_LEFTSHREDDER] = {
	doomednum = -1,
	spawnstate = S_FRENZY_SHREDDERL1,
	spawnhealth = 1000,
	reactiontime = 8,
	speed = 0*FRACUNIT,
	radius = 50*FRACUNIT,
	height = 368*FRACUNIT,
	deathstate = S_NULL,
	damage = 1,
	flags = MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOBLOCKMAP
}

mobjinfo[MT_FRENZY_DUALSHREDDER] = {
	doomednum = -1,
	spawnstate = S_FRENZY_DUALSHREDDER1,
	spawnhealth = 1000,
	reactiontime = 8,
	speed = 12*FRACUNIT,
	radius = 350*FRACUNIT,
	height = 100*FRACUNIT,
	deathstate = S_NULL,
	damage = 1,
	flags = MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOBLOCKMAP
}

mobjinfo[MT_FRENZY_ENERGYBALL] = {
	spawnstate = S_FRENZY_ENERGYBALL1,
	spawnhealth = 1,
	height = 80*FRACUNIT,
	radius = 80*FRACUNIT,
	speed = 50*FRACUNIT,
	deathstate = S_FRENZY_ENERGYBALLEXPL1,
	deathsound = sfx_rail2,
	flags = MF_NOBLOCKMAP|MF_MISSILE
}

mobjinfo[MT_FRENZY_ENERGYPILLAR] = {
	doomednum = -1,
	spawnstate = S_FRENZY_ENERGYPILLAR1,
	spawnhealth = 1,
	height = 300*FRACUNIT,
	radius = 30*FRACUNIT,
	speed = 0*FRACUNIT,
	deathstate = S_NULL,
	damage = 1,
	flags = MF_NOGRAVITY|MF_NOBLOCKMAP|MF_NOCLIPHEIGHT
}

mobjinfo[MT_EARTHSCORCHER] = {
	doomednum = -1,
	spawnstate = S_EARTHSCORCHER,
	spawnhealth = 1,
	height = 240*FRACUNIT,
	radius = 80*FRACUNIT,
	speed = 30*FRACUNIT,
	deathstate = S_NULL,
	damage = 1,
	flags = MF_NOBLOCKMAP|MF_NOCLIPHEIGHT|MF_MISSILE
}

mobjinfo[MT_EARTHSCORCHER_FLAME] = {
	doomednum = -1,
	spawnstate = S_EARTHSCORCHER_FLAME,
	spawnhealth = 1000,
	height = 24*FRACUNIT,
	radius = 24*FRACUNIT,
	speed = 0*FRACUNIT,
	deathstate = S_NULL,
	damage = 1,
	flags = MF_NOBLOCKMAP
}

mobjinfo[MT_CRESCENTREAPER] = {
	doomednum = -1,
	spawnstate = S_FRENZY_CHARGEDSHREDDER,
	spawnhealth = 1,
	height = 300*FRACUNIT,
	radius = 100*FRACUNIT,
	speed = 100*FRACUNIT,
	deathstate = S_NULL,
	damage = 1,
	flags = MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT
}

mobjinfo[MT_FRENZY_SUCCFX] = {
	doomednum = -1,
	spawnstate = S_FRENZY_SUCCFX,
	radius = 30*FRACUNIT,
	height = 100*FRACUNIT,
	flags = MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY
}

mobjinfo[MT_VOIDYBLACKHOLE] = {
	doomednum = -1,
	spawnstate = S_VOIDYBLACKHOLE,
	radius = 30*FRACUNIT,
	height = 30*FRACUNIT,
	flags = MF_NOCLIPHEIGHT|MF_NOBLOCKMAP|MF_SCENERY|MF_NOGRAVITY
}

mobjinfo[MT_ENERGYTSUNAMI] = {
	doomednum = -1,
	spawnstate = S_ENERGYTSUNAMI1,
	spawnhealth = 1,
	height = 64*FRACUNIT,
	radius = 64*FRACUNIT,
	speed = 0*FRACUNIT,
	deathstate = S_NULL,
	damage = 1,
	flags = MF_NOGRAVITY|MF_NOBLOCKMAP
}

mobjinfo[MT_STABEXPL] = {
	spawnstate = S_STABEXPL,
	spawnhealth = 1,
	height = 48*FRACUNIT,
	radius = 16*FRACUNIT,
	speed = 0*FRACUNIT,
	deathstate = S_NULL,
	flags = MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT
}

mobjinfo[MT_VOIDYCLONE] = {
	doomednum = -1,
	spawnstate = S_THOK,
	spawnhealth = 1,
	height = 48*FRACUNIT,
	radius = 16*FRACUNIT,
	speed = 0,
	dispoffset = 1,
	mass = 1000,
	damage = 8,
	flags = MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_SCENERY
}

mobjinfo[MT_DASHAURA] = {
	doomednum = -1,
	spawnstate = S_DASHAURA,
	spawnhealth = 1,
	height = 48*FRACUNIT,
	radius = 16*FRACUNIT,
	speed = 0,
	dispoffset = 1,
	mass = 1000,
	damage = 8,
	flags = MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_SCENERY
}

mobjinfo[MT_FRENZYEXPLOSION] = {
	spawnstate = S_FRENZYEXPL1,
	spawnhealth = 1,
	height = 50*FRACUNIT,
	radius = 150*FRACUNIT,
	speed = 0*FRACUNIT,
	deathstate = S_NULL,
	flags = MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOBLOCKMAP
}

skincolors[SKINCOLOR_BLAZING1] = {
	name = "Super Blazing 1",
	ramp = {53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53},
	accessible = false
}
skincolors[SKINCOLOR_BLAZING2] = {
	name = "Super Blazing 2",
	ramp = {53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53},
	accessible = false
}
skincolors[SKINCOLOR_BLAZING3] = {
	name = "Super Blazing 3",
	ramp = {53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53},
	accessible = false
}
skincolors[SKINCOLOR_BLAZING4] = {
	name = "Super Blazing 4",
	ramp = {53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53},
	accessible = false
}
skincolors[SKINCOLOR_BLAZING5] = {
	name = "Super Blazing 5",
	ramp = {53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53},
	accessible = false
}

skincolors[SKINCOLOR_ABYSSAL1] = {
	name = "Super Abyssal 1",
	ramp = {254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254},
	accessible = false
}
skincolors[SKINCOLOR_ABYSSAL2] = {
	name = "Super Abyssal 2",
	ramp = {254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254},
	accessible = false
}
skincolors[SKINCOLOR_ABYSSAL3] = {
	name = "Super Abyssal 3",
	ramp = {254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254},
	accessible = false
}
skincolors[SKINCOLOR_ABYSSAL4] = {
	name = "Super Abyssal 4",
	ramp = {254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254},
	accessible = false
}
skincolors[SKINCOLOR_ABYSSAL5] = {
	name = "Super Abyssal 5",
	ramp = {254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254},
	accessible = false
}


if srb2p
	freeslot("SPR_UZUM", "SPR_NOTE", "SPR_DOUB")
	freeslot("SPR_SCAT", "SPR_ARRO", "SPR_JAVE")
	freeslot("SPR_HBIK", "SPR_MBUG")
	freeslot("SPR_SETH")
	freeslot("SPR_RUBY", "SPR_JBOM", "SPR_ROPE", "SPR_SERA", "SPR_GANO", "SPR_GSKL")
	
	
	freeslot("S_DUMMYMOTOBUG")
	freeslot("S_JUMPDETONATE")
	for i = 1,2
		freeslot("S_MUSICNOTE"..i)
	end
	for i = 1,5
		freeslot("S_SSHOT"..i)
	end
	for i = 1,3
		freeslot("S_JUMPBOMB"..i)
	end
	for i = 1,7
		freeslot("S_JUMPBOMB_EXPL"..i)
	end
	for i = 1,5
		freeslot("S_ARLE"..i)
	end
	
	
	freeslot("MT_DUMMYMOTOBUG", "MT_EXHAUST")
	freeslot("MT_JUMPBOMB")
	
	
	freeslot("sfx_gun", "sfx_embsa1", "sfx_embsa2")
	freeslot("sfx_lmpoil", "sfx_rope", "sfx_ropego", "sfx_bombs", "sfx_ganywd", 
	"sfx_ganymd", "sfx_ganhrt", "sfx_ganwek", "sfx_gannoo", "sfx_gandie", 
	"sfx_gankll", "sfx_ganchn", "sfx_ganpit", "sfx_ganmss", "sfx_gandod")
	freeslot("sfx_vdysa1", "sfx_vdysa2")
	
	states[S_MUSICNOTE1] = {SPR_NOTE, A, 3, nil, 0, 0, S_MUSICNOTE1}
	states[S_MUSICNOTE2] = {SPR_DOUB, A, 3, nil, 0, 0, S_MUSICNOTE2}
	
	states[S_SSHOT1] = {SPR_SHOT, A, 3, nil, 0, 0, S_SSHOT2}
	states[S_SSHOT2] = {SPR_SHOT, B, 3, nil, 0, 0, S_SSHOT3}
	states[S_SSHOT3] = {SPR_SHOT, E, 3, nil, 0, 0, S_SSHOT4}
	states[S_SSHOT4] = {SPR_SHOT, F, 3, nil, 0, 0, S_SSHOT5}
	states[S_SSHOT5] = {SPR_SHOT, G, 3, nil, 0, 0, S_NULL}
	
	states[S_DUMMYMOTOBUG] = {SPR_MBUG, A, -1, nil, 0, 0, S_DUMMYMOTOBUG}
	
	states[S_JUMPBOMB1] = {SPR_JBOM, A, 10, A_FireShot, 0, 0, S_JUMPBOMB2}
	states[S_JUMPBOMB2] = {SPR_JBOM, A, 1, A_SetObjectFlags, MF_SOLID|MF_SLIDEME|MF_NOGRAVITY|MF_SHOOTABLE|MF_SPRING, 0, S_JUMPBOMB3}
	states[S_JUMPBOMB3] = {SPR_JBOM, A, 50, A_ForceStop, 0, 0, S_JUMPBOMB_EXPL1}
	states[S_JUMPBOMB_EXPL1] = {SPR_BARX, A, 3, A_SetObjectFlags, MF_NOCLIP|MF_NOGRAVITY|MF_NOBLOCKMAP, 0, S_JUMPBOMB_EXPL2}
	states[S_JUMPBOMB_EXPL2] = {SPR_BARX, A, 1, A_Scream, 0, 0, S_JUMPBOMB_EXPL3}
	states[S_JUMPBOMB_EXPL3] = {SPR_BARX, B, 2, nil, 0, 0, S_JUMPBOMB_EXPL4}
	states[S_JUMPBOMB_EXPL4] = {SPR_BARX, B, 1, nil, 0, 0, S_JUMPBOMB_EXPL5}
	states[S_JUMPBOMB_EXPL5] = {SPR_BARX, C, 3, nil, 0, 0, S_JUMPBOMB_EXPL6}
	states[S_JUMPBOMB_EXPL6] = {SPR_BARX, D, 3, nil, 0, 0, S_JUMPBOMB_EXPL7}
	states[S_JUMPBOMB_EXPL7] = {SPR_NULL, A, 2*TICRATE, nil, 0, 0, S_NULL}
	states[S_JUMPDETONATE] = {SPR_JBOM, B, 10, A_Pain, 0, 0, S_JUMPBOMB_EXPL1}

	states[S_ARLE1] = {SPR_SERA, A|FF_FULLBRIGHT|TR_TRANS50, 2, nil, 0, 0, S_ARLE2}
	states[S_ARLE2] = {SPR_SERA, B|FF_FULLBRIGHT|TR_TRANS50, 5, nil, 0, 0, S_NULL}
	states[S_ARLE3] = {SPR_SERA, C|FF_FULLBRIGHT|TR_TRANS50, 2, nil, 0, 0, S_ARLE4}
	states[S_ARLE4] = {SPR_SERA, D|FF_FULLBRIGHT|TR_TRANS50, 2, nil, 0, 0, S_ARLE3}
	states[S_ARLE5] = {SPR_SERA, E|FF_FULLBRIGHT|TR_TRANS50, 5, nil, 0, 0, S_NULL}
	
	
	mobjinfo[MT_DUMMYMOTOBUG] = {
		spawnstate = S_DUMMYMOTOBUG,
		spawnhealth = 1,
		height = 2097152,
		radius = 1572864,
		speed = 7,
		deathstate = S_XPLD_FLICKY,
		deathsound = sfx_pop,
		flags = MF_SPECIAL|MF_SHOOTABLE|MF_ENEMY,
		mass = 100,
		painchance = 200,
		reactiontime = 32,
	}

	mobjinfo[MT_EXHAUST] = {
		-1,
		S_INVISIBLE,
		0,
		S_NULL,
		sfx_None,
		0,
		sfx_None,
		S_NULL,
		0,
		sfx_None,
		S_NULL,
		S_NULL,
		S_NULL,
		S_NULL,
		sfx_None,
		0,
		32 * FRACUNIT,
		32 * FRACUNIT,
		0,
		0,
		0,
		sfx_None,
		MF_NOBLOCKMAP|MF_NOGRAVITY,
		S_NULL
	}
	
	mobjinfo[MT_JUMPBOMB] = {
		spawnstate = S_JUMPBOMB1,
		spawnhealth = 1,
		height = 48*FRACUNIT,
		radius = 24*FRACUNIT,
		speed = 20*FRACUNIT,
		deathstate = S_JUMPBOMB_EXPL1,
		deathsound = sfx_s3k4e,
		flags = MF_SOLID|MF_SLIDEME|MF_NOGRAVITY,
		painchance = 1,
		damage = 0,
		mass = 11*FRACUNIT,
		painsound = sfx_s3k44
	}
end

freeslot("S_BASIC_ENTERSTANCE", "S_BATTLE_STANCE", "SPR_QPUL", "S_QUASARPULSE", 
"MT_QUASARPULSE", "sfx_qpulse", "S_BASIC_TAILSHOOT", "S_FRENZY_ENTERSTANCE", 
"SPR2_FCLN", "SPR_QSTR", "S_QUASARSTREAM", "MT_QUASARSTREAM", "S_STREAMTRAIL", 
"MT_STREAMTRAIL", "SPR2_FFIR", "S_FRENZY_TAILSHOOT", "S_FRENZY_TAILSHOOT_FIN", 
"S_PLAY_BATTLEFALL", "SPR2_FBFL", "SPR2_BLND", 
"S_PLAY_BATTLELAND", "SPR2_FBLD")

sfxinfo[sfx_qpulse].caption = "Energy Shot"

states[S_BASIC_ENTERSTANCE] = {SPR_PLAY, SPR2_MLEL, 3, nil, S_BATTLE_STANCE, 0, S_BATTLE_STANCE}
states[S_BATTLE_STANCE] = {SPR_PLAY, SPR2_CLNG, -1, A_ForceStop, 0, 0, S_BATTLE_STANCE}
states[S_QUASARPULSE] = {SPR_QPUL, FF_FULLBRIGHT|FF_ANIMATE|A, 10, nil, 1, 2, S_QUASARPULSE}
states[S_BASIC_TAILSHOOT] = {SPR_PLAY, SPR2_FIRE, 2, nil, S_BATTLE_STANCE, 0, S_BATTLE_STANCE}
states[S_FRENZY_ENTERSTANCE] = {SPR_PLAY, SPR2_FMLL, 3, nil, S_BATTLE_STANCE, 0, S_BATTLE_STANCE}
states[S_QUASARSTREAM] = {SPR_QSTR, FF_FULLBRIGHT|A, -1, nil, 0, 0, S_QUASARSTREAM}
states[S_STREAMTRAIL] = {SPR_THOK, FF_TRANS50, 8, nil, 0, 0, S_NULL}
states[S_FRENZY_TAILSHOOT] = {SPR_PLAY, SPR2_FFIR|FF_SPR2ENDSTATE, 2, nil, S_FRENZY_TAILSHOOT_FIN, 0, S_FRENZY_TAILSHOOT}
states[S_FRENZY_TAILSHOOT_FIN] = {SPR_PLAY, SPR2_FFIR, 15, nil, S_BATTLE_STANCE, 0, S_BATTLE_STANCE}
states[S_PLAY_BATTLEFALL] = {SPR_PLAY, SPR2_TIRE, 2, nil, 0, 0, S_PLAY_BATTLEFALL}
states[S_PLAY_BATTLELAND] = {SPR_PLAY, SPR2_BLND, 45, A_ForceStop, S_PLAY_STND, 0, S_PLAY_STND}

mobjinfo[MT_QUASARPULSE] = {
	spawnstate = S_QUASARPULSE,
	spawnhealth = 1000,
	seesound = sfx_qpulse,
	reactiontime = 8,
	speed = 100*FRACUNIT,
	radius = 2*FRACUNIT,
	height = 2*FRACUNIT,
	deathsound = sfx_s3k6d,
	flags = MF_MISSILE|MF_NOGRAVITY,
}

mobjinfo[MT_QUASARSTREAM] = {
	spawnstate = S_QUASARSTREAM,
	spawnhealth = 1000,
	seesound = sfx_s3k54,
	reactiontime = 8,
	speed = 100*FRACUNIT,
	radius = 2*FRACUNIT,
	height = 2*FRACUNIT,
	flags = MF_MISSILE|MF_NOGRAVITY,
}

mobjinfo[MT_STREAMTRAIL] = {
	spawnstate = S_STREAMTRAIL,
	spawnhealth = 1000,
	seesound = sfx_qpulse,
	reactiontime = 8,
	speed = 8,
	radius = 32*FRACUNIT,
	height = 64*FRACUNIT,
	mass = 16,
	flags = MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY,
}