// Emacs style mode select	 -*- C++ -*- 
//-----------------------------------------------------------------------------
//
// $Id:$
//
// Copyright (C) 1993-1996 by id Software, Inc.
//
// This source is available for distribution and/or modification
// only under the terms of the DOOM Source Code License as
// published by id Software. All rights reserved.
//
// The source is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
// for more details.
//
// DESCRIPTION:
//		Thing frame/state LUT,
//		generated by multigen utilitiy.
//		This one is the original DOOM version, preserved.
//
//-----------------------------------------------------------------------------

#ifndef __INFO_H__
#define __INFO_H__

// Needed for action function pointer handling.
#include "dthinker.h"
#include "farchive.h"

typedef enum
{
	SPR_TROO,
	SPR_SHTG,
	SPR_PUNG,
	SPR_PISG,
	SPR_PISF,
	SPR_SHTF,
	SPR_SHT2,
	SPR_CHGG,
	SPR_CHGF,
	SPR_MISG,
	SPR_MISF,
	SPR_SAWG,
	SPR_PLSG,
	SPR_PLSF,
	SPR_BFGG,
	SPR_BFGF,
	SPR_BLUD,
	SPR_PUFF,
	SPR_BAL1,
	SPR_BAL2,
	SPR_PLSS,
	SPR_PLSE,
	SPR_MISL,
	SPR_BFS1,
	SPR_BFE1,
	SPR_BFE2,
	SPR_TFOG,
	SPR_IFOG,
	SPR_PLAY,
	SPR_POSS,
	SPR_SPOS,
	SPR_VILE,
	SPR_FIRE,
	SPR_FATB,
	SPR_FBXP,
	SPR_SKEL,
	SPR_MANF,
	SPR_FATT,
	SPR_CPOS,
	SPR_SARG,
	SPR_HEAD,
	SPR_BAL7,
	SPR_BOSS,
	SPR_BOS2,
	SPR_SKUL,
	SPR_SPID,
	SPR_BSPI,
	SPR_APLS,
	SPR_APBX,
	SPR_CYBR,
	SPR_PAIN,
	SPR_SSWV,
	SPR_KEEN,
	SPR_BBRN,
	SPR_BOSF,
	SPR_ARM1,
	SPR_ARM2,
	SPR_BAR1,
	SPR_BEXP,
	SPR_FCAN,
	SPR_BON1,
	SPR_BON2,
	SPR_BKEY,
	SPR_RKEY,
	SPR_YKEY,
	SPR_BSKU,
	SPR_RSKU,
	SPR_YSKU,
	SPR_STIM,
	SPR_MEDI,
	SPR_SOUL,
	SPR_PINV,
	SPR_PSTR,
	SPR_PINS,
	SPR_MEGA,
	SPR_SUIT,
	SPR_PMAP,
	SPR_PVIS,
	SPR_CLIP,
	SPR_AMMO,
	SPR_ROCK,
	SPR_BROK,
	SPR_CELL,
	SPR_CELP,
	SPR_SHEL,
	SPR_SBOX,
	SPR_BPAK,
	SPR_BFUG,
	SPR_MGUN,
	SPR_CSAW,
	SPR_LAUN,
	SPR_PLAS,
	SPR_SHOT,
	SPR_SGN2,
	SPR_COLU,
	SPR_SMT2,
	SPR_GOR1,
	SPR_POL2,
	SPR_POL5,
	SPR_POL4,
	SPR_POL3,
	SPR_POL1,
	SPR_POL6,
	SPR_GOR2,
	SPR_GOR3,
	SPR_GOR4,
	SPR_GOR5,
	SPR_SMIT,
	SPR_COL1,
	SPR_COL2,
	SPR_COL3,
	SPR_COL4,
	SPR_CAND,
	SPR_CBRA,
	SPR_COL6,
	SPR_TRE1,
	SPR_TRE2,
	SPR_ELEC,
	SPR_CEYE,
	SPR_FSKU,
	SPR_COL5,
	SPR_TBLU,
	SPR_TGRN,
	SPR_TRED,
	SPR_SMBT,
	SPR_SMGT,
	SPR_SMRT,
	SPR_HDB1,
	SPR_HDB2,
	SPR_HDB3,
	SPR_HDB4,
	SPR_HDB5,
	SPR_HDB6,
	SPR_POB1,
	SPR_POB2,
	SPR_BRS1,
	SPR_TLMP,
	SPR_TLP2,
	SPR_TNT1,
	// [RH] Gibs
	SPR_GIB0,
	SPR_GIB1,
	SPR_GIB2,
	SPR_GIB3,
	SPR_GIB4,
	SPR_GIB5,
	SPR_GIB6,
	SPR_GIB7,
	// [RH] Dummy for unknown mapthing
	SPR_UNKN,
	SPR_TLGL,	// [BC]
	SPR_TURB,
	SPR_ARM3,
	SPR_COL7,
	SPR_COL8,
	SPR_COL9,
	SPR_ANTI,
	SPR_LSKU,
	SPR_SSKU,
	SPR_GSKU,
	SPR_LKEY,
	SPR_SKEY,
	SPR_GKEY,
	SPR_GLAU,
	SPR_RAIL,
	SPR_GRLG,
	SPR_GRLF,
	SPR_GREN,
	SPR_TIME,
	SPR_RLGG,
	SPR_RLGF,
	SPR_RLMS,
	SPR_POL7,
	SPR_POL8,
	SPR_POL9,
	SPR_SGRB,
	SPR_HOVR,
	SPR_IHED,
	SPR_MKEY,
	SPR_MSKU,
	SPR_INFR,
	SPR_RUN1,
	SPR_RUN2,
	SPR_RUN3,
	SPR_RUN4,
	SPR_RUN5,
	SPR_RUN6,
	SPR_RUN7,
	SPR_RUN8,
	SPR_RUN9,
	SPR_RUNA,
	SPR_RUNB,
	SPR_RUNC,
	SPR_BON3,
	SPR_BON4,
	SPR_RFOG,
	SPR_BHVR,
	SPR_GHVR,
	SPR_PIST,
	SPR_TRAK,
	SPR_INVS,
	SPR_CYBG,
	SPR_BSHD,
	SPR_YSHD,
	SPR_GSHD,
	SPR_PSHD,
	SPR_GPOS,
	SPR_GCOL,
	SPR_BFG2,
	SPR_BG2G,
	SPR_BG2F,
	SPR_TALK,
	SPR_DOOM,
	SPR_SRG2,
	SPR_STA1,
	SPR_STA2,
	SPR_STA3,
	SPR_STA4,
	SPR_STA5,
	SPR_EXCL,
	SPR_INCR,
	SPR_IMPR,
	SPR_MIMP,
	SPR_DOMN,
	SPR_TDOM,
	SPR_ACCU,
	SPR_PREC,
	SPR_LLAM,
	SPR_ARNO,
	SPR_HISY,
	SPR_BFLA,
	SPR_RFLA,

	NUMSPRITES

} spritenum_t;

inline FArchive &operator<< (FArchive &arc, spritenum_t i) { return arc << (WORD)i; }
inline FArchive &operator>> (FArchive &arc, spritenum_t &i) { return arc >> (WORD &)i; }

typedef 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,
	S_TNT1,
	// [RH] gibs
	S_GIB0,
	S_GIB1,
	S_GIB2,
	S_GIB3,
	S_GIB4,
	S_GIB5,
	S_GIB6,
	S_GIB7,
	S_AMBIENTSOUND,
	S_UNKNOWNTHING,
	S_BRIDGE1,
	S_BRIDGE2,
	S_BRIDGE3,
	S_BRIDGE4,
	S_BRIDGE5,
	S_SMT2, // [BC] ST stuff starts here
	S_TURB,
	S_TURB2,
	S_TURB3,
	S_TURB4,
	S_ARM3,
	S_ARM3A,
	S_COL7,
	S_COL8,
	S_COL9,
	S_COL9A,
	S_ANTI,
	S_ANTI2,
	S_ANTI3,
	S_ANTI4,
	S_LSKU,
	S_LSKU2,
	S_SSKU,
	S_SSKU2,
	S_GSKU,
	S_GSKU2,
	S_LKEY,
	S_LKEY2,
	S_SKEY,
	S_SKEY2,
	S_GKEY,
	S_GKEY2,
	S_GLAU,
	S_RAIL,
	S_GLAUNCHER,
	S_GLAUNCHERDOWN,
	S_GLAUNCHERUP,
	S_GLAUNCHER1,
	S_GLAUNCHER2,
	S_GLAUNCHER3,
	S_GLAUNCHERFLASH1,
	S_GLAUNCHERFLASH2,
	S_GLAUNCHERFLASH3,
	S_GLAUNCHERFLASH4,
	S_GRENADE,
	S_FREEZE,
	S_FREEZE2,
	S_FREEZE3,
	S_FREEZE4,
	S_RAILGUN,
	S_RAILGUNDOWN,
	S_RAILGUNUP,
	S_RAILGUN1,
	S_RAILGUN2,
	S_RAILGUN3,
	S_RAILGUN4,
	S_RAILGUN5,
	S_RAILGUN6,
	S_RAILGUN7,
	S_RAILGUN8,
	S_RAILGUN9,
	S_RAILGUN10,
	S_RAILGUN11,
	S_RAILGUN12,
	S_RAILGUNFLASH,
	S_DEATHSTICK,
	S_CHAINSTICK,
	S_TROOPSTICK,
	S_GRABBER,
	S_GRABBER2,
	S_GRABBER3,
	S_GRABBER4,
	S_HOVER,
	S_HOVER2,
	S_HOVER3,
	S_HOVER4,
	S_IMPHEAD,
	S_MCARD,
	S_MCARD2,
	S_MSKU,
	S_MSKU2,
	S_INFRA,
	S_INFRA2,
	S_RUN1,
	S_RUN1A,
	S_RUN1B,
	S_RUN1C,
	S_RUN1D,
	S_RUN2,
	S_RUN2A,
	S_RUN3,
	S_RUN3A,
	S_RUN4,
	S_RUN4A,
	S_RUN4B,
	S_RUN4C,
	S_RUN4D,
	S_RUN4E,
	S_RUN4F,
	S_RUN4G,
	S_RUN5,
	S_RUN5A,
	S_RUN6,
	S_RUN6A,
	S_RUN6B,
	S_RUN6C,
	S_RUN6D,
	S_RUN7,
	S_RUN7A,
	S_RUN7B,
	S_RUN7C,
	S_RUN8,
	S_RUN8A,
	S_RUN8B,
	S_RUN8C,
	S_RUN9,
	S_RUN9A,
	S_RUN9B,
	S_RUN9C,
	S_RUNA,
	S_RUNA2,
	S_RUNB,
	S_RUNB2,
	S_RUNB3,
	S_RUNB4,
	S_RUNC,
	S_RUNC2,
	S_BON3,
	S_BON3A,
	S_BON3B,
	S_BON3C,
	S_BON3D,
	S_BON3E,
	S_BON4,
	S_BON4A,
	S_BON4B,
	S_BON4C,
	S_BON4D,
	S_BON4E,
	S_RFOG,
	S_RFOG01,
	S_RFOG02,
	S_RFOG2,
	S_RFOG3,
	S_RFOG4,
	S_RFOG5,
	S_BHOVER,
	S_BHOVER2,
	S_BHOVER3,
	S_BHOVER4,
	S_GHOVER,
	S_GHOVER2,
	S_GHOVER3,
	S_GHOVER4,
	S_PIST,
	S_TRAK,
	S_TRAK2,
	S_TRAK3,
	S_TRAK4,
	S_TRAK5,
	S_TRAK6,
	S_INVS,
	S_INVS2,
	S_INVS3,
	S_INVS4,
	S_CYBRG_STND,
	S_CYBRG_STND2,
	S_CYBRG_RUN1,
	S_CYBRG_RUN2,
	S_CYBRG_RUN3,
	S_CYBRG_RUN4,
	S_CYBRG_ATK1,
	S_CYBRG_ATK2,
	S_CYBRG_PAIN,
	S_CYBRG_DIE1,
	S_CYBRG_DIE2,
	S_CYBRG_DIE3,
	S_CYBRG_DIE4,
	S_CYBRG_DIE5,
	S_CYBRG_DIE6,
	S_CYBRG_DIE7,
	S_CYBRG_DIE8,
	S_YSHRD,
	S_YSHRD2,
	S_YSHRD3,
	S_YSHRD4,
	S_YSHRD5,
	S_YSHRD6,
	S_YSHRD7,
	S_YSHRD8,
	S_YSHRD9,
	S_YSHRD10,
	S_YSHRD11,
	S_YSHRD12,
	S_YSHRD13,
	S_BSHRD,
	S_BSHRD2,
	S_BSHRD3,
	S_BSHRD4,
	S_BSHRD5,
	S_BSHRD6,
	S_PSHRD,
	S_PSHRD2,
	S_PSHRD3,
	S_PSHRD4,
	S_PSHRD5,
	S_PSHRD6,
	S_GSHRD,
	S_GSHRD2,
	S_GSHRD3,
	S_GSHRD4,
	S_GSHRD5,
	S_GSHRD6,
	S_GPOS_STND,
	S_GPOS_STND2,
	S_GPOS_RUN1,
	S_GPOS_RUN2,
	S_GPOS_RUN3,
	S_GPOS_RUN4,
	S_GPOS_RUN5,
	S_GPOS_RUN6,
	S_GPOS_RUN7,
	S_GPOS_RUN8,
	S_GPOS_ATK1,
	S_GPOS_ATK2,
	S_GPOS_ATK3,
	S_GPOS_PAIN,
	S_GPOS_PAIN2,
	S_GPOS_DIE1,
	S_GPOS_DIE2,
	S_GPOS_DIE3,
	S_GPOS_DIE4,
	S_GPOS_DIE5,
	S_GPOS_XDIE1,
	S_GPOS_XDIE2,
	S_GPOS_XDIE3,
	S_GPOS_XDIE4,
	S_GPOS_XDIE5,
	S_GPOS_XDIE6,
	S_GPOS_XDIE7,
	S_GPOS_XDIE8,
	S_GPOS_XDIE9,
	S_GPOS_RAISE1,
	S_GPOS_RAISE2,
	S_GPOS_RAISE3,
	S_GPOS_RAISE4,
	S_GCOL,
	S_BFGTWO,
	S_BFG10K,
	S_BFG10KDOWN,
	S_BFG10KUP,
	S_BFG10K1,
	S_BFG10K2,
	S_BFG10K3,
	S_BFG10KFLASH1,
	S_BFG10KFLASH2,
	S_BFG10KFLASH3,
	S_BFG10KFLASH4,
	S_CHAT,
	S_DOOM,
	S_DOOM2,
	S_DOOM3,
	S_DOOM4,
	S_SARG2_STND,
	S_SARG2_STND2,
	S_SARG2_RUN1,
	S_SARG2_RUN2,
	S_SARG2_RUN3,
	S_SARG2_RUN4,
	S_SARG2_RUN5,
	S_SARG2_RUN6,
	S_SARG2_RUN7,
	S_SARG2_RUN8,
	S_SARG2_ATK1,
	S_SARG2_ATK2,
	S_SARG2_ATK3,
	S_SARG2_PAIN,
	S_SARG2_PAIN2,
	S_SARG2_DIE1,
	S_SARG2_DIE2,
	S_SARG2_DIE3,
	S_SARG2_DIE4,
	S_SARG2_DIE5,
	S_SARG2_DIE6,
	S_SARG2_RAISE1,
	S_SARG2_RAISE2,
	S_SARG2_RAISE3,
	S_SARG2_RAISE4,
	S_SARG2_RAISE5,
	S_SARG2_RAISE6,
	S_DETONATE1,
	S_DETONATE2,
	S_DETONATE3,
	S_IMPSTATUE,
	S_DEMONSTATUE,
	S_ARCHSTATUE,
	S_BARONSTATUE,
	S_CYBERSTATUE,
	S_EXCELLENT,
	S_INCREDIBLE,
	S_IMPRESSIVE,
	S_MOST_IMPRESSIVE,
	S_DOMINATION,
	S_TOTAL_DOMINATION,
	S_ACCURACY,
	S_PRECISION,
	S_LLAMA,
	S_ULT_STND,
	S_ULT_STND2,
	S_ULT_RUN1,
	S_ULT_RUN2,
	S_ULT_RUN3,
	S_ULT_RUN4,
	S_ULT_RUN5,
	S_ULT_RUN6,
	S_ULT_RUN7,
	S_ULT_RUN8,
	S_ULT_ATK1,
	S_ULT_ATK2,
	S_ULT_ATK3,
	S_ULT_ATK4,
	S_ULT_ATK5,
	S_ULT_ATK6,
	S_ULT_ATK7,
	S_ULT_ATK8,
	S_ULT_ATK9,
	S_ULT_ATK10,
	S_ULT_BEAM1,
	S_ULT_BEAM2,
	S_ULT_BEAM3,
	S_ULT_BEAM4,
	S_ULT_BEAM5,
	S_ULT_BEAM6,
	S_ULT_BEAM7,
	S_ULT_BEAM8,
	S_ULT_BEAM9,
	S_ULT_BEAM10,
	S_ULT_BEAM11,
	S_ULT_BEAM12,
	S_ULT_PAIN,
	S_ULT_DIE1,
	S_ULT_DIE2,
	S_ULT_DIE3,
	S_ULT_DIE4,
	S_ULT_DIE5,
	S_ULT_DIE6,
	S_ULT_DIE7,
	S_ULT_DIE8,
	S_ULT_DIE9,
	S_ULT_DIE10,
	S_ARNOLD,
	S_ARNOLD2,
	S_ARNOLD3,
	S_ARNOLD4,
	S_HISSY,
	S_HISSYHAPPY,
	S_BFLAG,
	S_BFLAG2,
	S_RFLAG,
	S_RFLAG2,

	NUMSTATES
} statenum_t;

inline FArchive &operator<< (FArchive &arc, statenum_t i) { return arc << (WORD)i; }
inline FArchive &operator>> (FArchive &arc, statenum_t &i) { return arc >> (WORD &)i; }

typedef struct
{
	spritenum_t	sprite;
	int			frame;
	int			tics;
	actionf_t 	action;
	statenum_t	nextstate;
	int			misc1, misc2;
/*
	DState (spritenum_t sprite, int frame, int tics, acp2, statenum_t nextstate);
	DState (spritenum_t sprite, int frame, int tics, acp2, statenum_t nextstate, int misc1, int misc2);
	DState (spritenum_t sprite, int frame, int tics, acp1, statenum_t nextstate);
*/
} state_t;

extern state_t states[NUMSTATES];
extern char *sprnames[NUMSPRITES];

inline FArchive &operator<< (FArchive &arc, state_t *state)
{
	if (state)
		return arc << (WORD)(state - states);
	else
		return arc << (WORD)0xffff;
}

inline FArchive &operator>> (FArchive &arc, state_t *&state)
{
	WORD ofs;
	arc >> ofs;
	if (ofs == 0xffff)
		state = NULL;
	else
		state = states + ofs;
	return arc;
}

// [BC] I've changed a lot of these names so they can
// be more easily identified by their mobjtype
typedef enum {
	MT_PLAYER,
	MT_POSSESSED,
	MT_SHOTGUY,
	MT_VILE,
	MT_FIRE,
	MT_UNDEAD,
	MT_TRACER,
	MT_SMOKE,
	MT_FATSO,
	MT_FATSHOT,
	MT_CHAINGUY,
	MT_TROOP,
	MT_SERGEANT,
	MT_SHADOWS,
	MT_HEAD,
	MT_BRUISER,
	MT_BRUISERSHOT,
	MT_KNIGHT,
	MT_SKULL,
	MT_SPIDER,
	MT_BABY,
	MT_CYBER,	// [BC]
	MT_PAIN,
	MT_WOLFSS,
	MT_KEEN,
	MT_BOSSBRAIN,
	MT_BOSSSPIT,
	MT_BOSSTARGET,
	MT_SPAWNSHOT,
	MT_SPAWNFIRE,
	MT_BARREL,
	MT_TROOPSHOT,
	MT_HEADSHOT,
	MT_ROCKET,
	MT_PLASMA,
	MT_BFG,
	MT_ARACHPLAZ,
	MT_PUFF,
	MT_BLOOD,
	MT_TFOG,
	MT_IFOG,
	MT_TELEPORTMAN,
	MT_EXTRABFG,
	MT_ARMOR,
	MT_MEGAARMOR,
	MT_HTHBONUS,
	MT_ARMBONUS,
	MT_BKEY,
	MT_RKEY,
	MT_YKEY,
	MT_YSKU,
	MT_RSKU,
	MT_BSKU,
	MT_STIMPACK,
	MT_MEDKIT,
	MT_SOULSPHERE,
	MT_INV,
	MT_BERSERK,
	MT_INS,
	MT_RADSUIT,
	MT_COMPMAP,
	MT_LIGHTAMP,
	MT_MEGA,
	MT_CLIP,
	MT_AMMOBOX,
	MT_MISSILE,
	MT_MISSILEBOX,
	MT_CELL,
	MT_CELLPACK,
	MT_SHELLS,
	MT_SHELLBOX,
	MT_BACKPACK,
	MT_BFG9000,
	MT_CHAINGUN,
	MT_CHAINSAW,
	MT_ROCKETLAUNCHER,
	MT_PLASMAGUN,
	MT_SHOTGUN,
	MT_SUPERSHOTGUN,
	MT_MISC29,
	MT_MISC30,
	MT_MISC31,
	MT_MISC32,
	MT_MISC33,
	MT_MISC34,
	MT_MISC35,
	MT_MISC36,
	MT_MISC37,
	MT_MISC38,
	MT_MISC39,
	MT_MISC40,
	MT_MISC41,
	MT_MISC42,
	MT_MISC43,
	MT_MISC44,
	MT_MISC45,
	MT_MISC46,
	MT_MISC47,
	MT_MISC48,
	MT_MISC49,
	MT_MISC50,
	MT_MISC51,
	MT_MISC52,
	MT_MISC53,
	MT_MISC54,
	MT_MISC55,
	MT_MISC56,
	MT_MISC57,
	MT_MISC58,
	MT_MISC59,
	MT_MISC60,
	MT_MISC61,
	MT_MISC62,
	MT_MISC63,
	MT_MISC64,
	MT_MISC65,
	MT_MISC66,
	MT_MISC67,
	MT_MISC68,
	MT_MISC69,
	MT_MISC70,
	MT_MISC71,
	MT_MISC72,
	MT_MISC73,
	MT_MISC74,
	MT_MISC75,
	MT_MISC76,
	MT_MISC77,
	MT_MISC78,
	MT_MISC79,
	MT_MISC80,
	MT_MISC81,
	MT_MISC82,
	MT_MISC83,
	MT_MISC84,
	MT_MISC85,
	MT_MISC86,
	// [RH] Andy Baker's stealth monsters (next 12)
	MT_STEALTHBABY,
	MT_STEALTHVILE,
	MT_STEALTHBRUISER,
	MT_STEALTHHEAD,
	MT_STEALTHCHAINGUY,
	MT_STEALTHSERGEANT,
	MT_STEALTHKNIGHT,
	MT_STEALTHIMP,
	MT_STEALTHFATSO,
	MT_STEALTHUNDEAD,
	MT_STEALTHSHOTGUY,
	MT_STEALTHZOMBIE,
	// [RH] Gibs (code is disabled)
	MT_GIB0,
	MT_GIB1,
	MT_GIB2,
	MT_GIB3,
	MT_GIB4,
	MT_GIB5,
	MT_GIB6,
	MT_GIB7,
	// [RH] Miscellaneous things
	MT_UNKNOWNTHING,
	MT_MAPSPOT,
	MT_MAPSPOTGRAVITY,
	MT_BRIDGE,
	MT_PUSH,		// Boom's push thing
	MT_PULL,		// Boom's pull thing
	MT_PATHNODE,
	MT_AMBIENT,		// Ambient sounds
	MT_TELEPORTMAN2,// Teleport destination that pays attention to its height
	MT_CAMERA,		// Camera used for "cutscenes"
	MT_SPARK,		// Throws out sparks when activated
	MT_FOUNTAIN,	// Just a container for a particle fountain
	MT_NODE,		//Added by MC:
	MT_BOTTRACE,
	MT_WATERZONE,
	MT_SECRETTRIGGER,
	MT_STALAG,		// [BC]
	MT_TURBOSPHERE,
	MT_REDARMOR,
	MT_SHORTGRAYCOL,
	MT_TALLGRAYCOL,
	MT_BEATINGGRAYCOL,
	MT_3DBRIDGE32,
	MT_FLOATINGFEET,
	MT_LSKU,
	MT_SSKU,
	MT_GSKU,
	MT_LKEY,
	MT_SKEY,
	MT_GKEY,
	MT_GRENADELAUNCHER,
	MT_RAILGUN,
	MT_GRENADE,
	MT_TIMEFREEZER,
	MT_DEADCYBERDEMON,
	MT_RAILSHOT,
	MT_EXPLODINGBRIDGE,
	MT_DEATHSTICK,
	MT_CHAINSTICK,
	MT_TROOPSTICK,
	MT_SKELETONHAND,
	MT_HOVERSPHERE,
	MT_3DBRIDGE16,
	MT_3DBRIDGE8,
	MT_IMPHEAD,
	MT_MKEY,		// [BC] Mastercard?
	MT_MSKU,
	MT_INFRAGOGGLES,
	MT_STRENGTH,
	MT_RAGE,
	MT_DRAIN,
	MT_RESISTANCE,
	MT_REGENERATION,
	MT_PROSPERITY,
	MT_HIJUMP,
	MT_HASTE,
	MT_SPREAD,
	MT_REFLECTION,
	MT_MAXHTHBONUS,
	MT_MAXARMBONUS,
	MT_RFOG,
	MT_BLUEHOVERSPHERE,
	MT_PISTOL,
	MT_ANTIGRAVITYZONE,
	MT_ZEROGRAVITYZONE,
	MT_INFRATRACKER,
	MT_RETURNZONE,
	MT_INVISIBILITY,
	MT_SPECIALZONE,
	MT_YSHARD1,
	MT_YSHARD2,
	MT_YSHARD3,
	MT_YSHARD4,
	MT_BSHARD1,
	MT_BSHARD2,
	MT_PSHARD1,
	MT_PSHARD2,
	MT_GSHARD1,
	MT_GSHARD2,
	MT_SSGGUY,
	MT_SHRTGOTHICCOL,
	MT_BFG10000,
	MT_BFG10KSHOT,
	MT_FLOATYICON,
	MT_DOOMSPHERE,
	MT_DARKIMP,
	MT_CACOLANTERN,
	MT_HECTEBUS,
	MT_BOTPATH,
	MT_BOTBLUEGUARD,
	MT_BOTREDGUARD,
	MT_BOTBLUEPATH,
	MT_BOTREDPATH,
	MT_BOTBLUEGOAL,
	MT_BOTREDGOAL,
	MT_BOTSNIPE,
	MT_BLOODDEMON,
	MT_BOBSKULL,
	MT_SPRINGPADZONE,
	MT_IMPSTATUE,
	MT_DEMONSTATUE,
	MT_ARCHSTATUE,
	MT_BARONSTATUE,
	MT_CYBERSTATUE,
	MT_TRUEULTIMUS,
	MT_TERMINATOR,
	MT_BOSSSTINE,
	MT_SAUSAGESPIT,
	MT_CAGEDHISSY,
	MT_RANDOMPOWERUP,

	NUMMOBJTYPES

} mobjtype_t;

inline FArchive &operator<< (FArchive &arc, mobjtype_t i) { return arc << (WORD)i; }
inline FArchive &operator>> (FArchive &arc, mobjtype_t &i) { return arc >> (WORD &)i; }

typedef struct
{
	int doomednum;
	statenum_t spawnstate;
	int spawnhealth;
	statenum_t seestate;
	char *seesound;		// [RH] not int
	int reactiontime;
	char *attacksound;	// [RH] not int
	statenum_t painstate;
	int painchance;
	char *painsound;	// [RH] not int
	statenum_t meleestate;
	statenum_t missilestate;
	statenum_t deathstate;
	statenum_t xdeathstate;
	char *deathsound;	// [RH] not int
	int speed;
	int radius;
	int height;
	int mass;
	int damage;
	char *activesound;	// [RH] not int
	int flags;
	int flags2;
	int flags3;	// [BC]
	statenum_t raisestate;
	int translucency;

} mobjinfo_t;

extern mobjinfo_t mobjinfo[NUMMOBJTYPES];

inline FArchive &operator<< (FArchive &arc, mobjinfo_t *info)
{
	if (info)
		return arc << (WORD)(info - mobjinfo);
	else
		return arc << (WORD)0xffff;
}

inline FArchive &operator>> (FArchive &arc, mobjinfo_t *&info)
{
	WORD ofs;
	arc >> ofs;
	if (ofs == 0xffff)
		info = NULL;
	else
		info = mobjinfo + ofs;
	return arc;
}

#endif	// __INFO_H__
