"""Constants and types representing Doom's states array.

The states array lists the states (animation frames) which are used to animate
the in-game things. In the Doom source code the equivalent definitions are
found in info.h.
"""

from __future__ import absolute_import

from deh9000 import c

class state_t(c.Struct):
	"""Struct type for the state table that controls AI and animations.

	Every in-game object has a current state that controls how it currently
	appears (sprite number and frame). Animation occurs by jumping to a new
	state (nextstate) after a delay (tics), and AI is implemented by
	invoking an action pointer that is associated with the state.

	In Dehacked these are called "Frames".
	"""
	DEHACKED_NAME = "Frame"

	sprite    = c.StructField("Sprite number")
	frame     = c.StructField("Sprite subnumber")
	tics      = c.StructField("Duration")
	action    = c.StructField(None)
	nextstate = c.StructField("Next frame")
	misc1     = c.StructField("Unknown 1")
	misc2     = c.StructField("Unknown 2")


statenum_t = c.Enum([
	"S_NULL",
	"S_LIGHTDONE",
	"S_PUNCH",
	"S_PUNCHDOWN",
	"S_PUNCHUP",
	"S_PUNCH1",
	"S_PUNCH2",
	"S_PUNCH3",
	"S_PUNCH4",
	"S_PUNCH5",
	"S_PISTOL",
	"S_PISTOLDOWN",
	"S_PISTOLUP",
	"S_PISTOL1",
	"S_PISTOL2",
	"S_PISTOL3",
	"S_PISTOL4",
	"S_PISTOLFLASH",
	"S_SGUN",
	"S_SGUNDOWN",
	"S_SGUNUP",
	"S_SGUN1",
	"S_SGUN2",
	"S_SGUN3",
	"S_SGUN4",
	"S_SGUN5",
	"S_SGUN6",
	"S_SGUN7",
	"S_SGUN8",
	"S_SGUN9",
	"S_SGUNFLASH1",
	"S_SGUNFLASH2",
	"S_DSGUN",
	"S_DSGUNDOWN",
	"S_DSGUNUP",
	"S_DSGUN1",
	"S_DSGUN2",
	"S_DSGUN3",
	"S_DSGUN4",
	"S_DSGUN5",
	"S_DSGUN6",
	"S_DSGUN7",
	"S_DSGUN8",
	"S_DSGUN9",
	"S_DSGUN10",
	"S_DSNR1",
	"S_DSNR2",
	"S_DSGUNFLASH1",
	"S_DSGUNFLASH2",
	"S_CHAIN",
	"S_CHAINDOWN",
	"S_CHAINUP",
	"S_CHAIN1",
	"S_CHAIN2",
	"S_CHAIN3",
	"S_CHAINFLASH1",
	"S_CHAINFLASH2",
	"S_MISSILE",
	"S_MISSILEDOWN",
	"S_MISSILEUP",
	"S_MISSILE1",
	"S_MISSILE2",
	"S_MISSILE3",
	"S_MISSILEFLASH1",
	"S_MISSILEFLASH2",
	"S_MISSILEFLASH3",
	"S_MISSILEFLASH4",
	"S_SAW",
	"S_SAWB",
	"S_SAWDOWN",
	"S_SAWUP",
	"S_SAW1",
	"S_SAW2",
	"S_SAW3",
	"S_PLASMA",
	"S_PLASMADOWN",
	"S_PLASMAUP",
	"S_PLASMA1",
	"S_PLASMA2",
	"S_PLASMAFLASH1",
	"S_PLASMAFLASH2",
	"S_BFG",
	"S_BFGDOWN",
	"S_BFGUP",
	"S_BFG1",
	"S_BFG2",
	"S_BFG3",
	"S_BFG4",
	"S_BFGFLASH1",
	"S_BFGFLASH2",
	"S_BLOOD1",
	"S_BLOOD2",
	"S_BLOOD3",
	"S_PUFF1",
	"S_PUFF2",
	"S_PUFF3",
	"S_PUFF4",
	"S_TBALL1",
	"S_TBALL2",
	"S_TBALLX1",
	"S_TBALLX2",
	"S_TBALLX3",
	"S_RBALL1",
	"S_RBALL2",
	"S_RBALLX1",
	"S_RBALLX2",
	"S_RBALLX3",
	"S_PLASBALL",
	"S_PLASBALL2",
	"S_PLASEXP",
	"S_PLASEXP2",
	"S_PLASEXP3",
	"S_PLASEXP4",
	"S_PLASEXP5",
	"S_ROCKET",
	"S_BFGSHOT",
	"S_BFGSHOT2",
	"S_BFGLAND",
	"S_BFGLAND2",
	"S_BFGLAND3",
	"S_BFGLAND4",
	"S_BFGLAND5",
	"S_BFGLAND6",
	"S_BFGEXP",
	"S_BFGEXP2",
	"S_BFGEXP3",
	"S_BFGEXP4",
	"S_EXPLODE1",
	"S_EXPLODE2",
	"S_EXPLODE3",
	"S_TFOG",
	"S_TFOG01",
	"S_TFOG02",
	"S_TFOG2",
	"S_TFOG3",
	"S_TFOG4",
	"S_TFOG5",
	"S_TFOG6",
	"S_TFOG7",
	"S_TFOG8",
	"S_TFOG9",
	"S_TFOG10",
	"S_IFOG",
	"S_IFOG01",
	"S_IFOG02",
	"S_IFOG2",
	"S_IFOG3",
	"S_IFOG4",
	"S_IFOG5",
	"S_PLAY",
	"S_PLAY_RUN1",
	"S_PLAY_RUN2",
	"S_PLAY_RUN3",
	"S_PLAY_RUN4",
	"S_PLAY_ATK1",
	"S_PLAY_ATK2",
	"S_PLAY_PAIN",
	"S_PLAY_PAIN2",
	"S_PLAY_DIE1",
	"S_PLAY_DIE2",
	"S_PLAY_DIE3",
	"S_PLAY_DIE4",
	"S_PLAY_DIE5",
	"S_PLAY_DIE6",
	"S_PLAY_DIE7",
	"S_PLAY_XDIE1",
	"S_PLAY_XDIE2",
	"S_PLAY_XDIE3",
	"S_PLAY_XDIE4",
	"S_PLAY_XDIE5",
	"S_PLAY_XDIE6",
	"S_PLAY_XDIE7",
	"S_PLAY_XDIE8",
	"S_PLAY_XDIE9",
	"S_POSS_STND",
	"S_POSS_STND2",
	"S_POSS_RUN1",
	"S_POSS_RUN2",
	"S_POSS_RUN3",
	"S_POSS_RUN4",
	"S_POSS_RUN5",
	"S_POSS_RUN6",
	"S_POSS_RUN7",
	"S_POSS_RUN8",
	"S_POSS_ATK1",
	"S_POSS_ATK2",
	"S_POSS_ATK3",
	"S_POSS_PAIN",
	"S_POSS_PAIN2",
	"S_POSS_DIE1",
	"S_POSS_DIE2",
	"S_POSS_DIE3",
	"S_POSS_DIE4",
	"S_POSS_DIE5",
	"S_POSS_XDIE1",
	"S_POSS_XDIE2",
	"S_POSS_XDIE3",
	"S_POSS_XDIE4",
	"S_POSS_XDIE5",
	"S_POSS_XDIE6",
	"S_POSS_XDIE7",
	"S_POSS_XDIE8",
	"S_POSS_XDIE9",
	"S_POSS_RAISE1",
	"S_POSS_RAISE2",
	"S_POSS_RAISE3",
	"S_POSS_RAISE4",
	"S_SPOS_STND",
	"S_SPOS_STND2",
	"S_SPOS_RUN1",
	"S_SPOS_RUN2",
	"S_SPOS_RUN3",
	"S_SPOS_RUN4",
	"S_SPOS_RUN5",
	"S_SPOS_RUN6",
	"S_SPOS_RUN7",
	"S_SPOS_RUN8",
	"S_SPOS_ATK1",
	"S_SPOS_ATK2",
	"S_SPOS_ATK3",
	"S_SPOS_PAIN",
	"S_SPOS_PAIN2",
	"S_SPOS_DIE1",
	"S_SPOS_DIE2",
	"S_SPOS_DIE3",
	"S_SPOS_DIE4",
	"S_SPOS_DIE5",
	"S_SPOS_XDIE1",
	"S_SPOS_XDIE2",
	"S_SPOS_XDIE3",
	"S_SPOS_XDIE4",
	"S_SPOS_XDIE5",
	"S_SPOS_XDIE6",
	"S_SPOS_XDIE7",
	"S_SPOS_XDIE8",
	"S_SPOS_XDIE9",
	"S_SPOS_RAISE1",
	"S_SPOS_RAISE2",
	"S_SPOS_RAISE3",
	"S_SPOS_RAISE4",
	"S_SPOS_RAISE5",
	"S_VILE_STND",
	"S_VILE_STND2",
	"S_VILE_RUN1",
	"S_VILE_RUN2",
	"S_VILE_RUN3",
	"S_VILE_RUN4",
	"S_VILE_RUN5",
	"S_VILE_RUN6",
	"S_VILE_RUN7",
	"S_VILE_RUN8",
	"S_VILE_RUN9",
	"S_VILE_RUN10",
	"S_VILE_RUN11",
	"S_VILE_RUN12",
	"S_VILE_ATK1",
	"S_VILE_ATK2",
	"S_VILE_ATK3",
	"S_VILE_ATK4",
	"S_VILE_ATK5",
	"S_VILE_ATK6",
	"S_VILE_ATK7",
	"S_VILE_ATK8",
	"S_VILE_ATK9",
	"S_VILE_ATK10",
	"S_VILE_ATK11",
	"S_VILE_HEAL1",
	"S_VILE_HEAL2",
	"S_VILE_HEAL3",
	"S_VILE_PAIN",
	"S_VILE_PAIN2",
	"S_VILE_DIE1",
	"S_VILE_DIE2",
	"S_VILE_DIE3",
	"S_VILE_DIE4",
	"S_VILE_DIE5",
	"S_VILE_DIE6",
	"S_VILE_DIE7",
	"S_VILE_DIE8",
	"S_VILE_DIE9",
	"S_VILE_DIE10",
	"S_FIRE1",
	"S_FIRE2",
	"S_FIRE3",
	"S_FIRE4",
	"S_FIRE5",
	"S_FIRE6",
	"S_FIRE7",
	"S_FIRE8",
	"S_FIRE9",
	"S_FIRE10",
	"S_FIRE11",
	"S_FIRE12",
	"S_FIRE13",
	"S_FIRE14",
	"S_FIRE15",
	"S_FIRE16",
	"S_FIRE17",
	"S_FIRE18",
	"S_FIRE19",
	"S_FIRE20",
	"S_FIRE21",
	"S_FIRE22",
	"S_FIRE23",
	"S_FIRE24",
	"S_FIRE25",
	"S_FIRE26",
	"S_FIRE27",
	"S_FIRE28",
	"S_FIRE29",
	"S_FIRE30",
	"S_SMOKE1",
	"S_SMOKE2",
	"S_SMOKE3",
	"S_SMOKE4",
	"S_SMOKE5",
	"S_TRACER",
	"S_TRACER2",
	"S_TRACEEXP1",
	"S_TRACEEXP2",
	"S_TRACEEXP3",
	"S_SKEL_STND",
	"S_SKEL_STND2",
	"S_SKEL_RUN1",
	"S_SKEL_RUN2",
	"S_SKEL_RUN3",
	"S_SKEL_RUN4",
	"S_SKEL_RUN5",
	"S_SKEL_RUN6",
	"S_SKEL_RUN7",
	"S_SKEL_RUN8",
	"S_SKEL_RUN9",
	"S_SKEL_RUN10",
	"S_SKEL_RUN11",
	"S_SKEL_RUN12",
	"S_SKEL_FIST1",
	"S_SKEL_FIST2",
	"S_SKEL_FIST3",
	"S_SKEL_FIST4",
	"S_SKEL_MISS1",
	"S_SKEL_MISS2",
	"S_SKEL_MISS3",
	"S_SKEL_MISS4",
	"S_SKEL_PAIN",
	"S_SKEL_PAIN2",
	"S_SKEL_DIE1",
	"S_SKEL_DIE2",
	"S_SKEL_DIE3",
	"S_SKEL_DIE4",
	"S_SKEL_DIE5",
	"S_SKEL_DIE6",
	"S_SKEL_RAISE1",
	"S_SKEL_RAISE2",
	"S_SKEL_RAISE3",
	"S_SKEL_RAISE4",
	"S_SKEL_RAISE5",
	"S_SKEL_RAISE6",
	"S_FATSHOT1",
	"S_FATSHOT2",
	"S_FATSHOTX1",
	"S_FATSHOTX2",
	"S_FATSHOTX3",
	"S_FATT_STND",
	"S_FATT_STND2",
	"S_FATT_RUN1",
	"S_FATT_RUN2",
	"S_FATT_RUN3",
	"S_FATT_RUN4",
	"S_FATT_RUN5",
	"S_FATT_RUN6",
	"S_FATT_RUN7",
	"S_FATT_RUN8",
	"S_FATT_RUN9",
	"S_FATT_RUN10",
	"S_FATT_RUN11",
	"S_FATT_RUN12",
	"S_FATT_ATK1",
	"S_FATT_ATK2",
	"S_FATT_ATK3",
	"S_FATT_ATK4",
	"S_FATT_ATK5",
	"S_FATT_ATK6",
	"S_FATT_ATK7",
	"S_FATT_ATK8",
	"S_FATT_ATK9",
	"S_FATT_ATK10",
	"S_FATT_PAIN",
	"S_FATT_PAIN2",
	"S_FATT_DIE1",
	"S_FATT_DIE2",
	"S_FATT_DIE3",
	"S_FATT_DIE4",
	"S_FATT_DIE5",
	"S_FATT_DIE6",
	"S_FATT_DIE7",
	"S_FATT_DIE8",
	"S_FATT_DIE9",
	"S_FATT_DIE10",
	"S_FATT_RAISE1",
	"S_FATT_RAISE2",
	"S_FATT_RAISE3",
	"S_FATT_RAISE4",
	"S_FATT_RAISE5",
	"S_FATT_RAISE6",
	"S_FATT_RAISE7",
	"S_FATT_RAISE8",
	"S_CPOS_STND",
	"S_CPOS_STND2",
	"S_CPOS_RUN1",
	"S_CPOS_RUN2",
	"S_CPOS_RUN3",
	"S_CPOS_RUN4",
	"S_CPOS_RUN5",
	"S_CPOS_RUN6",
	"S_CPOS_RUN7",
	"S_CPOS_RUN8",
	"S_CPOS_ATK1",
	"S_CPOS_ATK2",
	"S_CPOS_ATK3",
	"S_CPOS_ATK4",
	"S_CPOS_PAIN",
	"S_CPOS_PAIN2",
	"S_CPOS_DIE1",
	"S_CPOS_DIE2",
	"S_CPOS_DIE3",
	"S_CPOS_DIE4",
	"S_CPOS_DIE5",
	"S_CPOS_DIE6",
	"S_CPOS_DIE7",
	"S_CPOS_XDIE1",
	"S_CPOS_XDIE2",
	"S_CPOS_XDIE3",
	"S_CPOS_XDIE4",
	"S_CPOS_XDIE5",
	"S_CPOS_XDIE6",
	"S_CPOS_RAISE1",
	"S_CPOS_RAISE2",
	"S_CPOS_RAISE3",
	"S_CPOS_RAISE4",
	"S_CPOS_RAISE5",
	"S_CPOS_RAISE6",
	"S_CPOS_RAISE7",
	"S_TROO_STND",
	"S_TROO_STND2",
	"S_TROO_RUN1",
	"S_TROO_RUN2",
	"S_TROO_RUN3",
	"S_TROO_RUN4",
	"S_TROO_RUN5",
	"S_TROO_RUN6",
	"S_TROO_RUN7",
	"S_TROO_RUN8",
	"S_TROO_ATK1",
	"S_TROO_ATK2",
	"S_TROO_ATK3",
	"S_TROO_PAIN",
	"S_TROO_PAIN2",
	"S_TROO_DIE1",
	"S_TROO_DIE2",
	"S_TROO_DIE3",
	"S_TROO_DIE4",
	"S_TROO_DIE5",
	"S_TROO_XDIE1",
	"S_TROO_XDIE2",
	"S_TROO_XDIE3",
	"S_TROO_XDIE4",
	"S_TROO_XDIE5",
	"S_TROO_XDIE6",
	"S_TROO_XDIE7",
	"S_TROO_XDIE8",
	"S_TROO_RAISE1",
	"S_TROO_RAISE2",
	"S_TROO_RAISE3",
	"S_TROO_RAISE4",
	"S_TROO_RAISE5",
	"S_SARG_STND",
	"S_SARG_STND2",
	"S_SARG_RUN1",
	"S_SARG_RUN2",
	"S_SARG_RUN3",
	"S_SARG_RUN4",
	"S_SARG_RUN5",
	"S_SARG_RUN6",
	"S_SARG_RUN7",
	"S_SARG_RUN8",
	"S_SARG_ATK1",
	"S_SARG_ATK2",
	"S_SARG_ATK3",
	"S_SARG_PAIN",
	"S_SARG_PAIN2",
	"S_SARG_DIE1",
	"S_SARG_DIE2",
	"S_SARG_DIE3",
	"S_SARG_DIE4",
	"S_SARG_DIE5",
	"S_SARG_DIE6",
	"S_SARG_RAISE1",
	"S_SARG_RAISE2",
	"S_SARG_RAISE3",
	"S_SARG_RAISE4",
	"S_SARG_RAISE5",
	"S_SARG_RAISE6",
	"S_HEAD_STND",
	"S_HEAD_RUN1",
	"S_HEAD_ATK1",
	"S_HEAD_ATK2",
	"S_HEAD_ATK3",
	"S_HEAD_PAIN",
	"S_HEAD_PAIN2",
	"S_HEAD_PAIN3",
	"S_HEAD_DIE1",
	"S_HEAD_DIE2",
	"S_HEAD_DIE3",
	"S_HEAD_DIE4",
	"S_HEAD_DIE5",
	"S_HEAD_DIE6",
	"S_HEAD_RAISE1",
	"S_HEAD_RAISE2",
	"S_HEAD_RAISE3",
	"S_HEAD_RAISE4",
	"S_HEAD_RAISE5",
	"S_HEAD_RAISE6",
	"S_BRBALL1",
	"S_BRBALL2",
	"S_BRBALLX1",
	"S_BRBALLX2",
	"S_BRBALLX3",
	"S_BOSS_STND",
	"S_BOSS_STND2",
	"S_BOSS_RUN1",
	"S_BOSS_RUN2",
	"S_BOSS_RUN3",
	"S_BOSS_RUN4",
	"S_BOSS_RUN5",
	"S_BOSS_RUN6",
	"S_BOSS_RUN7",
	"S_BOSS_RUN8",
	"S_BOSS_ATK1",
	"S_BOSS_ATK2",
	"S_BOSS_ATK3",
	"S_BOSS_PAIN",
	"S_BOSS_PAIN2",
	"S_BOSS_DIE1",
	"S_BOSS_DIE2",
	"S_BOSS_DIE3",
	"S_BOSS_DIE4",
	"S_BOSS_DIE5",
	"S_BOSS_DIE6",
	"S_BOSS_DIE7",
	"S_BOSS_RAISE1",
	"S_BOSS_RAISE2",
	"S_BOSS_RAISE3",
	"S_BOSS_RAISE4",
	"S_BOSS_RAISE5",
	"S_BOSS_RAISE6",
	"S_BOSS_RAISE7",
	"S_BOS2_STND",
	"S_BOS2_STND2",
	"S_BOS2_RUN1",
	"S_BOS2_RUN2",
	"S_BOS2_RUN3",
	"S_BOS2_RUN4",
	"S_BOS2_RUN5",
	"S_BOS2_RUN6",
	"S_BOS2_RUN7",
	"S_BOS2_RUN8",
	"S_BOS2_ATK1",
	"S_BOS2_ATK2",
	"S_BOS2_ATK3",
	"S_BOS2_PAIN",
	"S_BOS2_PAIN2",
	"S_BOS2_DIE1",
	"S_BOS2_DIE2",
	"S_BOS2_DIE3",
	"S_BOS2_DIE4",
	"S_BOS2_DIE5",
	"S_BOS2_DIE6",
	"S_BOS2_DIE7",
	"S_BOS2_RAISE1",
	"S_BOS2_RAISE2",
	"S_BOS2_RAISE3",
	"S_BOS2_RAISE4",
	"S_BOS2_RAISE5",
	"S_BOS2_RAISE6",
	"S_BOS2_RAISE7",
	"S_SKULL_STND",
	"S_SKULL_STND2",
	"S_SKULL_RUN1",
	"S_SKULL_RUN2",
	"S_SKULL_ATK1",
	"S_SKULL_ATK2",
	"S_SKULL_ATK3",
	"S_SKULL_ATK4",
	"S_SKULL_PAIN",
	"S_SKULL_PAIN2",
	"S_SKULL_DIE1",
	"S_SKULL_DIE2",
	"S_SKULL_DIE3",
	"S_SKULL_DIE4",
	"S_SKULL_DIE5",
	"S_SKULL_DIE6",
	"S_SPID_STND",
	"S_SPID_STND2",
	"S_SPID_RUN1",
	"S_SPID_RUN2",
	"S_SPID_RUN3",
	"S_SPID_RUN4",
	"S_SPID_RUN5",
	"S_SPID_RUN6",
	"S_SPID_RUN7",
	"S_SPID_RUN8",
	"S_SPID_RUN9",
	"S_SPID_RUN10",
	"S_SPID_RUN11",
	"S_SPID_RUN12",
	"S_SPID_ATK1",
	"S_SPID_ATK2",
	"S_SPID_ATK3",
	"S_SPID_ATK4",
	"S_SPID_PAIN",
	"S_SPID_PAIN2",
	"S_SPID_DIE1",
	"S_SPID_DIE2",
	"S_SPID_DIE3",
	"S_SPID_DIE4",
	"S_SPID_DIE5",
	"S_SPID_DIE6",
	"S_SPID_DIE7",
	"S_SPID_DIE8",
	"S_SPID_DIE9",
	"S_SPID_DIE10",
	"S_SPID_DIE11",
	"S_BSPI_STND",
	"S_BSPI_STND2",
	"S_BSPI_SIGHT",
	"S_BSPI_RUN1",
	"S_BSPI_RUN2",
	"S_BSPI_RUN3",
	"S_BSPI_RUN4",
	"S_BSPI_RUN5",
	"S_BSPI_RUN6",
	"S_BSPI_RUN7",
	"S_BSPI_RUN8",
	"S_BSPI_RUN9",
	"S_BSPI_RUN10",
	"S_BSPI_RUN11",
	"S_BSPI_RUN12",
	"S_BSPI_ATK1",
	"S_BSPI_ATK2",
	"S_BSPI_ATK3",
	"S_BSPI_ATK4",
	"S_BSPI_PAIN",
	"S_BSPI_PAIN2",
	"S_BSPI_DIE1",
	"S_BSPI_DIE2",
	"S_BSPI_DIE3",
	"S_BSPI_DIE4",
	"S_BSPI_DIE5",
	"S_BSPI_DIE6",
	"S_BSPI_DIE7",
	"S_BSPI_RAISE1",
	"S_BSPI_RAISE2",
	"S_BSPI_RAISE3",
	"S_BSPI_RAISE4",
	"S_BSPI_RAISE5",
	"S_BSPI_RAISE6",
	"S_BSPI_RAISE7",
	"S_ARACH_PLAZ",
	"S_ARACH_PLAZ2",
	"S_ARACH_PLEX",
	"S_ARACH_PLEX2",
	"S_ARACH_PLEX3",
	"S_ARACH_PLEX4",
	"S_ARACH_PLEX5",
	"S_CYBER_STND",
	"S_CYBER_STND2",
	"S_CYBER_RUN1",
	"S_CYBER_RUN2",
	"S_CYBER_RUN3",
	"S_CYBER_RUN4",
	"S_CYBER_RUN5",
	"S_CYBER_RUN6",
	"S_CYBER_RUN7",
	"S_CYBER_RUN8",
	"S_CYBER_ATK1",
	"S_CYBER_ATK2",
	"S_CYBER_ATK3",
	"S_CYBER_ATK4",
	"S_CYBER_ATK5",
	"S_CYBER_ATK6",
	"S_CYBER_PAIN",
	"S_CYBER_DIE1",
	"S_CYBER_DIE2",
	"S_CYBER_DIE3",
	"S_CYBER_DIE4",
	"S_CYBER_DIE5",
	"S_CYBER_DIE6",
	"S_CYBER_DIE7",
	"S_CYBER_DIE8",
	"S_CYBER_DIE9",
	"S_CYBER_DIE10",
	"S_PAIN_STND",
	"S_PAIN_RUN1",
	"S_PAIN_RUN2",
	"S_PAIN_RUN3",
	"S_PAIN_RUN4",
	"S_PAIN_RUN5",
	"S_PAIN_RUN6",
	"S_PAIN_ATK1",
	"S_PAIN_ATK2",
	"S_PAIN_ATK3",
	"S_PAIN_ATK4",
	"S_PAIN_PAIN",
	"S_PAIN_PAIN2",
	"S_PAIN_DIE1",
	"S_PAIN_DIE2",
	"S_PAIN_DIE3",
	"S_PAIN_DIE4",
	"S_PAIN_DIE5",
	"S_PAIN_DIE6",
	"S_PAIN_RAISE1",
	"S_PAIN_RAISE2",
	"S_PAIN_RAISE3",
	"S_PAIN_RAISE4",
	"S_PAIN_RAISE5",
	"S_PAIN_RAISE6",
	"S_SSWV_STND",
	"S_SSWV_STND2",
	"S_SSWV_RUN1",
	"S_SSWV_RUN2",
	"S_SSWV_RUN3",
	"S_SSWV_RUN4",
	"S_SSWV_RUN5",
	"S_SSWV_RUN6",
	"S_SSWV_RUN7",
	"S_SSWV_RUN8",
	"S_SSWV_ATK1",
	"S_SSWV_ATK2",
	"S_SSWV_ATK3",
	"S_SSWV_ATK4",
	"S_SSWV_ATK5",
	"S_SSWV_ATK6",
	"S_SSWV_PAIN",
	"S_SSWV_PAIN2",
	"S_SSWV_DIE1",
	"S_SSWV_DIE2",
	"S_SSWV_DIE3",
	"S_SSWV_DIE4",
	"S_SSWV_DIE5",
	"S_SSWV_XDIE1",
	"S_SSWV_XDIE2",
	"S_SSWV_XDIE3",
	"S_SSWV_XDIE4",
	"S_SSWV_XDIE5",
	"S_SSWV_XDIE6",
	"S_SSWV_XDIE7",
	"S_SSWV_XDIE8",
	"S_SSWV_XDIE9",
	"S_SSWV_RAISE1",
	"S_SSWV_RAISE2",
	"S_SSWV_RAISE3",
	"S_SSWV_RAISE4",
	"S_SSWV_RAISE5",
	"S_KEENSTND",
	"S_COMMKEEN",
	"S_COMMKEEN2",
	"S_COMMKEEN3",
	"S_COMMKEEN4",
	"S_COMMKEEN5",
	"S_COMMKEEN6",
	"S_COMMKEEN7",
	"S_COMMKEEN8",
	"S_COMMKEEN9",
	"S_COMMKEEN10",
	"S_COMMKEEN11",
	"S_COMMKEEN12",
	"S_KEENPAIN",
	"S_KEENPAIN2",
	"S_BRAIN",
	"S_BRAIN_PAIN",
	"S_BRAIN_DIE1",
	"S_BRAIN_DIE2",
	"S_BRAIN_DIE3",
	"S_BRAIN_DIE4",
	"S_BRAINEYE",
	"S_BRAINEYESEE",
	"S_BRAINEYE1",
	"S_SPAWN1",
	"S_SPAWN2",
	"S_SPAWN3",
	"S_SPAWN4",
	"S_SPAWNFIRE1",
	"S_SPAWNFIRE2",
	"S_SPAWNFIRE3",
	"S_SPAWNFIRE4",
	"S_SPAWNFIRE5",
	"S_SPAWNFIRE6",
	"S_SPAWNFIRE7",
	"S_SPAWNFIRE8",
	"S_BRAINEXPLODE1",
	"S_BRAINEXPLODE2",
	"S_BRAINEXPLODE3",
	"S_ARM1",
	"S_ARM1A",
	"S_ARM2",
	"S_ARM2A",
	"S_BAR1",
	"S_BAR2",
	"S_BEXP",
	"S_BEXP2",
	"S_BEXP3",
	"S_BEXP4",
	"S_BEXP5",
	"S_BBAR1",
	"S_BBAR2",
	"S_BBAR3",
	"S_BON1",
	"S_BON1A",
	"S_BON1B",
	"S_BON1C",
	"S_BON1D",
	"S_BON1E",
	"S_BON2",
	"S_BON2A",
	"S_BON2B",
	"S_BON2C",
	"S_BON2D",
	"S_BON2E",
	"S_BKEY",
	"S_BKEY2",
	"S_RKEY",
	"S_RKEY2",
	"S_YKEY",
	"S_YKEY2",
	"S_BSKULL",
	"S_BSKULL2",
	"S_RSKULL",
	"S_RSKULL2",
	"S_YSKULL",
	"S_YSKULL2",
	"S_STIM",
	"S_MEDI",
	"S_SOUL",
	"S_SOUL2",
	"S_SOUL3",
	"S_SOUL4",
	"S_SOUL5",
	"S_SOUL6",
	"S_PINV",
	"S_PINV2",
	"S_PINV3",
	"S_PINV4",
	"S_PSTR",
	"S_PINS",
	"S_PINS2",
	"S_PINS3",
	"S_PINS4",
	"S_MEGA",
	"S_MEGA2",
	"S_MEGA3",
	"S_MEGA4",
	"S_SUIT",
	"S_PMAP",
	"S_PMAP2",
	"S_PMAP3",
	"S_PMAP4",
	"S_PMAP5",
	"S_PMAP6",
	"S_PVIS",
	"S_PVIS2",
	"S_CLIP",
	"S_AMMO",
	"S_ROCK",
	"S_BROK",
	"S_CELL",
	"S_CELP",
	"S_SHEL",
	"S_SBOX",
	"S_BPAK",
	"S_BFUG",
	"S_MGUN",
	"S_CSAW",
	"S_LAUN",
	"S_PLAS",
	"S_SHOT",
	"S_SHOT2",
	"S_COLU",
	"S_STALAG",
	"S_BLOODYTWITCH",
	"S_BLOODYTWITCH2",
	"S_BLOODYTWITCH3",
	"S_BLOODYTWITCH4",
	"S_DEADTORSO",
	"S_DEADBOTTOM",
	"S_HEADSONSTICK",
	"S_GIBS",
	"S_HEADONASTICK",
	"S_HEADCANDLES",
	"S_HEADCANDLES2",
	"S_DEADSTICK",
	"S_LIVESTICK",
	"S_LIVESTICK2",
	"S_MEAT2",
	"S_MEAT3",
	"S_MEAT4",
	"S_MEAT5",
	"S_STALAGTITE",
	"S_TALLGRNCOL",
	"S_SHRTGRNCOL",
	"S_TALLREDCOL",
	"S_SHRTREDCOL",
	"S_CANDLESTIK",
	"S_CANDELABRA",
	"S_SKULLCOL",
	"S_TORCHTREE",
	"S_BIGTREE",
	"S_TECHPILLAR",
	"S_EVILEYE",
	"S_EVILEYE2",
	"S_EVILEYE3",
	"S_EVILEYE4",
	"S_FLOATSKULL",
	"S_FLOATSKULL2",
	"S_FLOATSKULL3",
	"S_HEARTCOL",
	"S_HEARTCOL2",
	"S_BLUETORCH",
	"S_BLUETORCH2",
	"S_BLUETORCH3",
	"S_BLUETORCH4",
	"S_GREENTORCH",
	"S_GREENTORCH2",
	"S_GREENTORCH3",
	"S_GREENTORCH4",
	"S_REDTORCH",
	"S_REDTORCH2",
	"S_REDTORCH3",
	"S_REDTORCH4",
	"S_BTORCHSHRT",
	"S_BTORCHSHRT2",
	"S_BTORCHSHRT3",
	"S_BTORCHSHRT4",
	"S_GTORCHSHRT",
	"S_GTORCHSHRT2",
	"S_GTORCHSHRT3",
	"S_GTORCHSHRT4",
	"S_RTORCHSHRT",
	"S_RTORCHSHRT2",
	"S_RTORCHSHRT3",
	"S_RTORCHSHRT4",
	"S_HANGNOGUTS",
	"S_HANGBNOBRAIN",
	"S_HANGTLOOKDN",
	"S_HANGTSKULL",
	"S_HANGTLOOKUP",
	"S_HANGTNOBRAIN",
	"S_COLONGIBS",
	"S_SMALLPOOL",
	"S_BRAINSTEM",
	"S_TECHLAMP",
	"S_TECHLAMP2",
	"S_TECHLAMP3",
	"S_TECHLAMP4",
	"S_TECH2LAMP",
	"S_TECH2LAMP2",
	"S_TECH2LAMP3",
	"S_TECH2LAMP4",
])

statenum_t.create_globals(globals())

# To match the Doom source, but if you're really a Python programmer you
# probably shouldn't be using this.
NUMSTATES = len(statenum_t)

