You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2661 lines
50 KiB

/**
* @file enums.h
*
* Various global enumerators.
*/
DEVILUTION_BEGIN_NAMESPACE
typedef enum _sfx_id {
PS_WALK1,
PS_WALK2,
PS_WALK3,
PS_WALK4,
PS_BFIRE,
PS_FMAG,
PS_TMAG,
PS_LGHIT,
PS_LGHIT1,
PS_SWING,
PS_SWING2,
PS_DEAD,
IS_STING1,
IS_FBALLBOW,
IS_QUESTDN,
IS_ARMRFKD,
IS_BARLFIRE,
IS_BARREL,
IS_POPPOP8,
IS_POPPOP5,
IS_POPPOP3,
IS_POPPOP2,
IS_BHIT,
IS_BHIT1,
IS_CHEST,
IS_DOORCLOS,
IS_DOOROPEN,
IS_FANVL,
IS_FAXE,
IS_FBLST,
IS_FBODY,
IS_FBOOK,
IS_FBOW,
IS_FCAP,
IS_FHARM,
IS_FLARM,
IS_FMAG,
IS_FMAG1,
IS_FMUSH,
IS_FPOT,
IS_FRING,
IS_FROCK,
IS_FSCRL,
IS_FSHLD,
IS_FSIGN,
IS_FSTAF,
IS_FSWOR,
IS_GOLD,
IS_HLMTFKD,
IS_IANVL,
IS_IAXE,
IS_IBLST,
IS_IBODY,
IS_IBOOK,
IS_IBOW,
IS_ICAP,
IS_IGRAB,
IS_IHARM,
IS_ILARM,
IS_IMUSH,
IS_IPOT,
IS_IRING,
IS_IROCK,
IS_ISCROL,
IS_ISHIEL,
IS_ISIGN,
IS_ISTAF,
IS_ISWORD,
IS_LEVER,
IS_MAGIC,
IS_MAGIC1,
IS_RBOOK,
IS_SARC,
IS_SHLDFKD,
IS_SWRDFKD,
IS_TITLEMOV,
IS_TITLSLCT,
SFX_SILENCE,
IS_TRAP,
IS_CAST1,
IS_CAST10,
IS_CAST12,
IS_CAST2,
IS_CAST3,
IS_CAST4,
IS_CAST5,
IS_CAST6,
IS_CAST7,
IS_CAST8,
IS_CAST9,
LS_HEALING,
IS_REPAIR,
LS_ACID,
LS_ACIDS,
LS_APOC,
LS_ARROWALL,
LS_BLODBOIL,
LS_BLODSTAR,
LS_BLSIMPT,
LS_BONESP,
LS_BSIMPCT,
LS_CALDRON,
LS_CBOLT,
LS_CHLTNING,
LS_DSERP,
LS_ELECIMP1,
LS_ELEMENTL,
LS_ETHEREAL,
LS_FBALL,
LS_FBOLT1,
LS_FBOLT2,
LS_FIRIMP1,
LS_FIRIMP2,
LS_FLAMWAVE,
LS_FLASH,
LS_FOUNTAIN,
LS_GOLUM,
LS_GOLUMDED,
LS_GSHRINE,
LS_GUARD,
LS_GUARDLAN,
LS_HOLYBOLT,
LS_HYPER,
LS_INFRAVIS,
LS_INVISIBL,
LS_INVPOT,
LS_LNING1,
LS_LTNING,
LS_MSHIELD,
LS_NESTXPLD,
LS_NOVA,
LS_PORTAL,
LS_PUDDLE,
LS_RESUR,
LS_SCURSE,
LS_SCURIMP,
LS_SENTINEL,
LS_SHATTER,
LS_SOULFIRE,
LS_SPOUTLOP,
LS_SPOUTSTR,
LS_STORM,
LS_TRAPDIS,
LS_TELEPORT,
LS_VTHEFT,
LS_WALLLOOP,
LS_WALLSTRT,
LS_LMAG,
TSFX_BMAID1,
TSFX_BMAID2,
TSFX_BMAID3,
TSFX_BMAID4,
TSFX_BMAID5,
TSFX_BMAID6,
TSFX_BMAID7,
TSFX_BMAID8,
TSFX_BMAID9,
TSFX_BMAID10,
TSFX_BMAID11,
TSFX_BMAID12,
TSFX_BMAID13,
TSFX_BMAID14,
TSFX_BMAID15,
TSFX_BMAID16,
TSFX_BMAID17,
TSFX_BMAID18,
TSFX_BMAID19,
TSFX_BMAID20,
TSFX_BMAID21,
TSFX_BMAID22,
TSFX_BMAID23,
TSFX_BMAID24,
TSFX_BMAID25,
TSFX_BMAID26,
TSFX_BMAID27,
TSFX_BMAID28,
TSFX_BMAID29,
TSFX_BMAID30,
TSFX_BMAID31,
TSFX_BMAID32,
TSFX_BMAID33,
TSFX_BMAID34,
TSFX_BMAID35,
TSFX_BMAID36,
TSFX_BMAID37,
TSFX_BMAID38,
TSFX_BMAID39,
TSFX_BMAID40,
TSFX_SMITH1,
TSFX_SMITH2,
TSFX_SMITH3,
TSFX_SMITH4,
TSFX_SMITH5,
TSFX_SMITH6,
TSFX_SMITH7,
TSFX_SMITH8,
TSFX_SMITH9,
TSFX_SMITH10,
TSFX_SMITH11,
TSFX_SMITH12,
TSFX_SMITH13,
TSFX_SMITH14,
TSFX_SMITH15,
TSFX_SMITH16,
TSFX_SMITH17,
TSFX_SMITH18,
TSFX_SMITH19,
TSFX_SMITH20,
TSFX_SMITH21,
TSFX_SMITH22,
TSFX_SMITH23,
TSFX_SMITH24,
TSFX_SMITH25,
TSFX_SMITH26,
TSFX_SMITH27,
TSFX_SMITH28,
TSFX_SMITH29,
TSFX_SMITH30,
TSFX_SMITH31,
TSFX_SMITH32,
TSFX_SMITH33,
TSFX_SMITH34,
TSFX_SMITH35,
TSFX_SMITH36,
TSFX_SMITH37,
TSFX_SMITH38,
TSFX_SMITH39,
TSFX_SMITH40,
TSFX_SMITH41,
TSFX_SMITH42,
TSFX_SMITH43,
TSFX_SMITH44,
TSFX_SMITH45,
TSFX_SMITH46,
TSFX_SMITH47,
TSFX_SMITH48,
TSFX_SMITH49,
TSFX_SMITH50,
TSFX_SMITH51,
TSFX_SMITH52,
TSFX_SMITH53,
TSFX_SMITH54,
TSFX_SMITH55,
TSFX_SMITH56,
TSFX_COW1,
TSFX_COW2,
/*
TSFX_COW3,
TSFX_COW4,
TSFX_COW5,
TSFX_COW6,
*/
TSFX_COW7,
TSFX_COW8,
TSFX_DEADGUY,
TSFX_DRUNK1,
TSFX_DRUNK2,
TSFX_DRUNK3,
TSFX_DRUNK4,
TSFX_DRUNK5,
TSFX_DRUNK6,
TSFX_DRUNK7,
TSFX_DRUNK8,
TSFX_DRUNK9,
TSFX_DRUNK10,
TSFX_DRUNK11,
TSFX_DRUNK12,
TSFX_DRUNK13,
TSFX_DRUNK14,
TSFX_DRUNK15,
TSFX_DRUNK16,
TSFX_DRUNK17,
TSFX_DRUNK18,
TSFX_DRUNK19,
TSFX_DRUNK20,
TSFX_DRUNK21,
TSFX_DRUNK22,
TSFX_DRUNK23,
TSFX_DRUNK24,
TSFX_DRUNK25,
TSFX_DRUNK26,
TSFX_DRUNK27,
TSFX_DRUNK28,
TSFX_DRUNK29,
TSFX_DRUNK30,
TSFX_DRUNK31,
TSFX_DRUNK32,
TSFX_DRUNK33,
TSFX_DRUNK34,
TSFX_DRUNK35,
TSFX_HEALER1,
TSFX_HEALER2,
TSFX_HEALER3,
TSFX_HEALER4,
TSFX_HEALER5,
TSFX_HEALER6,
TSFX_HEALER7,
TSFX_HEALER8,
TSFX_HEALER9,
TSFX_HEALER10,
TSFX_HEALER11,
TSFX_HEALER12,
TSFX_HEALER13,
TSFX_HEALER14,
TSFX_HEALER15,
TSFX_HEALER16,
TSFX_HEALER17,
TSFX_HEALER18,
TSFX_HEALER19,
TSFX_HEALER20,
TSFX_HEALER21,
TSFX_HEALER22,
TSFX_HEALER23,
TSFX_HEALER24,
TSFX_HEALER25,
TSFX_HEALER26,
TSFX_HEALER27,
TSFX_HEALER28,
TSFX_HEALER29,
TSFX_HEALER30,
TSFX_HEALER31,
TSFX_HEALER32,
TSFX_HEALER33,
TSFX_HEALER34,
TSFX_HEALER35,
TSFX_HEALER36,
TSFX_HEALER37,
TSFX_HEALER38,
TSFX_HEALER39,
TSFX_HEALER40,
TSFX_HEALER41,
TSFX_HEALER42,
TSFX_HEALER43,
TSFX_HEALER44,
TSFX_HEALER45,
TSFX_HEALER46,
TSFX_HEALER47,
TSFX_PEGBOY1,
TSFX_PEGBOY2,
TSFX_PEGBOY3,
TSFX_PEGBOY4,
TSFX_PEGBOY5,
TSFX_PEGBOY6,
TSFX_PEGBOY7,
TSFX_PEGBOY8,
TSFX_PEGBOY9,
TSFX_PEGBOY10,
TSFX_PEGBOY11,
TSFX_PEGBOY12,
TSFX_PEGBOY13,
TSFX_PEGBOY14,
TSFX_PEGBOY15,
TSFX_PEGBOY16,
TSFX_PEGBOY17,
TSFX_PEGBOY18,
TSFX_PEGBOY19,
TSFX_PEGBOY20,
TSFX_PEGBOY21,
TSFX_PEGBOY22,
TSFX_PEGBOY23,
TSFX_PEGBOY24,
TSFX_PEGBOY25,
TSFX_PEGBOY26,
TSFX_PEGBOY27,
TSFX_PEGBOY28,
TSFX_PEGBOY29,
TSFX_PEGBOY30,
TSFX_PEGBOY31,
TSFX_PEGBOY32,
TSFX_PEGBOY33,
TSFX_PEGBOY34,
TSFX_PEGBOY35,
TSFX_PEGBOY36,
TSFX_PEGBOY37,
TSFX_PEGBOY38,
TSFX_PEGBOY39,
TSFX_PEGBOY40,
TSFX_PEGBOY41,
TSFX_PEGBOY42,
TSFX_PEGBOY43,
TSFX_PRIEST0,
TSFX_PRIEST1,
TSFX_PRIEST2,
TSFX_PRIEST3,
TSFX_PRIEST4,
TSFX_PRIEST5,
TSFX_PRIEST6,
TSFX_PRIEST7,
TSFX_STORY0,
TSFX_STORY1,
TSFX_STORY2,
TSFX_STORY3,
TSFX_STORY4,
TSFX_STORY5,
TSFX_STORY6,
TSFX_STORY7,
TSFX_STORY8,
TSFX_STORY9,
TSFX_STORY10,
TSFX_STORY11,
TSFX_STORY12,
TSFX_STORY13,
TSFX_STORY14,
TSFX_STORY15,
TSFX_STORY16,
TSFX_STORY17,
TSFX_STORY18,
TSFX_STORY19,
TSFX_STORY20,
TSFX_STORY21,
TSFX_STORY22,
TSFX_STORY23,
TSFX_STORY24,
TSFX_STORY25,
TSFX_STORY26,
TSFX_STORY27,
TSFX_STORY28,
TSFX_STORY29,
TSFX_STORY30,
TSFX_STORY31,
TSFX_STORY32,
TSFX_STORY33,
TSFX_STORY34,
TSFX_STORY35,
TSFX_STORY36,
TSFX_STORY37,
TSFX_STORY38,
TSFX_TAVERN0,
TSFX_TAVERN1,
TSFX_TAVERN2,
TSFX_TAVERN3,
TSFX_TAVERN4,
TSFX_TAVERN5,
TSFX_TAVERN6,
TSFX_TAVERN7,
TSFX_TAVERN8,
TSFX_TAVERN9,
TSFX_TAVERN10,
TSFX_TAVERN11,
TSFX_TAVERN12,
TSFX_TAVERN13,
TSFX_TAVERN14,
TSFX_TAVERN15,
TSFX_TAVERN16,
TSFX_TAVERN17,
TSFX_TAVERN18,
TSFX_TAVERN19,
TSFX_TAVERN20,
TSFX_TAVERN21,
TSFX_TAVERN22,
TSFX_TAVERN23,
TSFX_TAVERN24,
TSFX_TAVERN25,
TSFX_TAVERN26,
TSFX_TAVERN27,
TSFX_TAVERN28,
TSFX_TAVERN29,
TSFX_TAVERN30,
TSFX_TAVERN31,
TSFX_TAVERN32,
TSFX_TAVERN33,
TSFX_TAVERN34,
TSFX_TAVERN35,
TSFX_TAVERN36,
TSFX_TAVERN37,
TSFX_TAVERN38,
TSFX_TAVERN39,
TSFX_TAVERN40,
TSFX_TAVERN41,
TSFX_TAVERN42,
TSFX_TAVERN43,
TSFX_TAVERN44,
TSFX_TAVERN45,
TSFX_WITCH1,
TSFX_WITCH2,
TSFX_WITCH3,
TSFX_WITCH4,
TSFX_WITCH5,
TSFX_WITCH6,
TSFX_WITCH7,
TSFX_WITCH8,
TSFX_WITCH9,
TSFX_WITCH10,
TSFX_WITCH11,
TSFX_WITCH12,
TSFX_WITCH13,
TSFX_WITCH14,
TSFX_WITCH15,
TSFX_WITCH16,
TSFX_WITCH17,
TSFX_WITCH18,
TSFX_WITCH19,
TSFX_WITCH20,
TSFX_WITCH21,
TSFX_WITCH22,
TSFX_WITCH23,
TSFX_WITCH24,
TSFX_WITCH25,
TSFX_WITCH26,
TSFX_WITCH27,
TSFX_WITCH28,
TSFX_WITCH29,
TSFX_WITCH30,
TSFX_WITCH31,
TSFX_WITCH32,
TSFX_WITCH33,
TSFX_WITCH34,
TSFX_WITCH35,
TSFX_WITCH36,
TSFX_WITCH37,
TSFX_WITCH38,
TSFX_WITCH39,
TSFX_WITCH40,
TSFX_WITCH41,
TSFX_WITCH42,
TSFX_WITCH43,
TSFX_WITCH44,
TSFX_WITCH45,
TSFX_WITCH46,
TSFX_WITCH47,
TSFX_WITCH48,
TSFX_WITCH49,
TSFX_WITCH50,
TSFX_WOUND,
PS_MAGE1,
PS_MAGE2,
PS_MAGE3,
PS_MAGE4,
PS_MAGE5,
PS_MAGE6,
PS_MAGE7,
PS_MAGE8,
PS_MAGE9,
PS_MAGE10,
PS_MAGE11,
PS_MAGE12,
PS_MAGE13,
PS_MAGE14,
PS_MAGE15,
PS_MAGE16,
PS_MAGE17,
PS_MAGE18,
PS_MAGE19,
PS_MAGE20,
PS_MAGE21,
PS_MAGE22,
PS_MAGE23,
PS_MAGE24,
PS_MAGE25,
PS_MAGE26,
PS_MAGE27,
PS_MAGE28,
PS_MAGE29,
PS_MAGE30,
PS_MAGE31,
PS_MAGE32,
PS_MAGE33,
PS_MAGE34,
PS_MAGE35,
PS_MAGE36,
PS_MAGE37,
PS_MAGE38,
PS_MAGE39,
PS_MAGE40,
PS_MAGE41,
PS_MAGE42,
PS_MAGE43,
PS_MAGE44,
PS_MAGE45,
PS_MAGE46,
PS_MAGE47,
PS_MAGE48,
PS_MAGE49,
PS_MAGE50,
PS_MAGE51,
PS_MAGE52,
PS_MAGE53,
PS_MAGE54,
PS_MAGE55,
PS_MAGE56,
PS_MAGE57,
PS_MAGE58,
PS_MAGE59,
PS_MAGE60,
PS_MAGE61,
PS_MAGE62,
PS_MAGE63,
PS_MAGE64,
PS_MAGE65,
PS_MAGE66,
PS_MAGE67,
PS_MAGE68,
PS_MAGE69,
PS_MAGE69B,
PS_MAGE70,
PS_MAGE71,
PS_MAGE72,
PS_MAGE73,
PS_MAGE74,
PS_MAGE75,
PS_MAGE76,
PS_MAGE77,
PS_MAGE78,
PS_MAGE79,
PS_MAGE80,
PS_MAGE81,
PS_MAGE82,
PS_MAGE83,
PS_MAGE84,
PS_MAGE85,
PS_MAGE86,
PS_MAGE87,
PS_MAGE88,
PS_MAGE89,
PS_MAGE90,
PS_MAGE91,
PS_MAGE92,
PS_MAGE93,
PS_MAGE94,
PS_MAGE95,
PS_MAGE96,
PS_MAGE97,
PS_MAGE98,
PS_MAGE99,
PS_MAGE100,
PS_MAGE101,
PS_MAGE102,
PS_ROGUE1,
PS_ROGUE2,
PS_ROGUE3,
PS_ROGUE4,
PS_ROGUE5,
PS_ROGUE6,
PS_ROGUE7,
PS_ROGUE8,
PS_ROGUE9,
PS_ROGUE10,
PS_ROGUE11,
PS_ROGUE12,
PS_ROGUE13,
PS_ROGUE14,
PS_ROGUE15,
PS_ROGUE16,
PS_ROGUE17,
PS_ROGUE18,
PS_ROGUE19,
PS_ROGUE20,
PS_ROGUE21,
PS_ROGUE22,
PS_ROGUE23,
PS_ROGUE24,
PS_ROGUE25,
PS_ROGUE26,
PS_ROGUE27,
PS_ROGUE28,
PS_ROGUE29,
PS_ROGUE30,
PS_ROGUE31,
PS_ROGUE32,
PS_ROGUE33,
PS_ROGUE34,
PS_ROGUE35,
PS_ROGUE36,
PS_ROGUE37,
PS_ROGUE38,
PS_ROGUE39,
PS_ROGUE40,
PS_ROGUE41,
PS_ROGUE42,
PS_ROGUE43,
PS_ROGUE44,
PS_ROGUE45,
PS_ROGUE46,
PS_ROGUE47,
PS_ROGUE48,
PS_ROGUE49,
PS_ROGUE50,
PS_ROGUE51,
PS_ROGUE52,
PS_ROGUE53,
PS_ROGUE54,
PS_ROGUE55,
PS_ROGUE56,
PS_ROGUE57,
PS_ROGUE58,
PS_ROGUE59,
PS_ROGUE60,
PS_ROGUE61,
PS_ROGUE62,
PS_ROGUE63,
PS_ROGUE64,
PS_ROGUE65,
PS_ROGUE66,
PS_ROGUE67,
PS_ROGUE68,
PS_ROGUE69,
PS_ROGUE69B,
PS_ROGUE70,
PS_ROGUE71,
PS_ROGUE72,
PS_ROGUE73,
PS_ROGUE74,
PS_ROGUE75,
PS_ROGUE76,
PS_ROGUE77,
PS_ROGUE78,
PS_ROGUE79,
PS_ROGUE80,
PS_ROGUE81,
PS_ROGUE82,
PS_ROGUE83,
PS_ROGUE84,
PS_ROGUE85,
PS_ROGUE86,
PS_ROGUE87,
PS_ROGUE88,
PS_ROGUE89,
PS_ROGUE90,
PS_ROGUE91,
PS_ROGUE92,
PS_ROGUE93,
PS_ROGUE94,
PS_ROGUE95,
PS_ROGUE96,
PS_ROGUE97,
PS_ROGUE98,
PS_ROGUE99,
PS_ROGUE100,
PS_ROGUE101,
PS_ROGUE102,
PS_WARR1,
PS_WARR2,
PS_WARR3,
PS_WARR4,
PS_WARR5,
PS_WARR6,
PS_WARR7,
PS_WARR8,
PS_WARR9,
PS_WARR10,
PS_WARR11,
PS_WARR12,
PS_WARR13,
PS_WARR14,
PS_WARR14B,
PS_WARR14C,
PS_WARR15,
PS_WARR15B,
PS_WARR15C,
PS_WARR16,
PS_WARR16B,
PS_WARR16C,
PS_WARR17,
PS_WARR18,
PS_WARR19,
PS_WARR20,
PS_WARR21,
PS_WARR22,
PS_WARR23,
PS_WARR24,
PS_WARR25,
PS_WARR26,
PS_WARR27,
PS_WARR28,
PS_WARR29,
PS_WARR30,
PS_WARR31,
PS_WARR32,
PS_WARR33,
PS_WARR34,
PS_WARR35,
PS_WARR36,
PS_WARR37,
PS_WARR38,
PS_WARR39,
PS_WARR40,
PS_WARR41,
PS_WARR42,
PS_WARR43,
PS_WARR44,
PS_WARR45,
PS_WARR46,
PS_WARR47,
PS_WARR48,
PS_WARR49,
PS_WARR50,
PS_WARR51,
PS_WARR52,
PS_WARR53,
PS_WARR54,
PS_WARR55,
PS_WARR56,
PS_WARR57,
PS_WARR58,
PS_WARR59,
PS_WARR60,
PS_WARR61,
PS_WARR62,
PS_WARR63,
PS_WARR64,
PS_WARR65,
PS_WARR66,
PS_WARR67,
PS_WARR68,
PS_WARR69,
PS_WARR69B,
PS_WARR70,
PS_WARR71,
PS_WARR72,
PS_WARR73,
PS_WARR74,
PS_WARR75,
PS_WARR76,
PS_WARR77,
PS_WARR78,
PS_WARR79,
PS_WARR80,
PS_WARR81,
PS_WARR82,
PS_WARR83,
PS_WARR84,
PS_WARR85,
PS_WARR86,
PS_WARR87,
PS_WARR88,
PS_WARR89,
PS_WARR90,
PS_WARR91,
PS_WARR92,
PS_WARR93,
PS_WARR94,
PS_WARR95,
PS_WARR95B,
PS_WARR95C,
PS_WARR95D,
PS_WARR95E,
PS_WARR95F,
PS_WARR96B,
PS_WARR97,
PS_WARR98,
PS_WARR99,
PS_WARR100,
PS_WARR101,
PS_WARR102,
PS_MONK1,
PS_MONK2,
PS_MONK3,
PS_MONK4,
PS_MONK5,
PS_MONK6,
PS_MONK7,
PS_MONK8,
PS_MONK9,
PS_MONK10,
PS_MONK11,
PS_MONK12,
PS_MONK13,
PS_MONK14,
PS_MONK15,
PS_MONK16,
PS_MONK17,
PS_MONK18,
PS_MONK19,
PS_MONK20,
PS_MONK21,
PS_MONK22,
PS_MONK23,
PS_MONK24,
PS_MONK25,
PS_MONK26,
PS_MONK27,
PS_MONK28,
PS_MONK29,
PS_MONK30,
PS_MONK31,
PS_MONK32,
PS_MONK33,
PS_MONK34,
PS_MONK35,
PS_MONK36,
PS_MONK37,
PS_MONK38,
PS_MONK39,
PS_MONK40,
PS_MONK41,
PS_MONK42,
PS_MONK43,
PS_MONK44,
PS_MONK45,
PS_MONK46,
PS_MONK47,
PS_MONK48,
PS_MONK49,
PS_MONK50,
PS_MONK51,
PS_MONK52,
PS_MONK53,
PS_MONK54,
PS_MONK55,
PS_MONK56,
PS_MONK57,
PS_MONK58,
PS_MONK59,
PS_MONK60,
PS_MONK61,
PS_MONK62,
PS_MONK63,
PS_MONK64,
PS_MONK65,
PS_MONK66,
PS_MONK67,
PS_MONK68,
PS_MONK69,
PS_MONK69B,
PS_MONK70,
PS_MONK71,
PS_MONK72,
PS_MONK73,
PS_MONK74,
PS_MONK75,
PS_MONK76,
PS_MONK77,
PS_MONK78,
PS_MONK79,
PS_MONK80,
PS_MONK81,
PS_MONK82,
PS_MONK83,
PS_MONK84,
PS_MONK85,
PS_MONK86,
PS_MONK87,
PS_MONK88,
PS_MONK89,
PS_MONK90,
PS_MONK91,
PS_MONK92,
PS_MONK93,
PS_MONK94,
PS_MONK95,
PS_MONK96,
PS_MONK97,
PS_MONK98,
PS_MONK99,
PS_MONK100,
PS_MONK101,
PS_MONK102,
PS_NAR1,
PS_NAR2,
PS_NAR3,
PS_NAR4,
PS_NAR5,
PS_NAR6,
PS_NAR7,
PS_NAR8,
PS_NAR9,
PS_DIABLVLINT,
USFX_CLEAVER,
USFX_GARBUD1,
USFX_GARBUD2,
USFX_GARBUD3,
USFX_GARBUD4,
USFX_IZUAL1,
USFX_LACH1,
USFX_LACH2,
USFX_LACH3,
USFX_LAZ1,
USFX_LAZ2,
USFX_SKING1,
USFX_SNOT1,
USFX_SNOT2,
USFX_SNOT3,
USFX_WARLRD1,
USFX_WLOCK1,
USFX_ZHAR1,
USFX_ZHAR2,
USFX_DIABLOD,
TSFX_FARMER1,
TSFX_FARMER2,
TSFX_FARMER2A,
TSFX_FARMER3,
TSFX_FARMER4,
TSFX_FARMER5,
TSFX_FARMER6,
TSFX_FARMER7,
TSFX_FARMER8,
TSFX_FARMER9,
TSFX_TEDDYBR1,
TSFX_TEDDYBR2,
TSFX_TEDDYBR3,
TSFX_TEDDYBR4,
USFX_DEFILER1,
USFX_DEFILER2,
USFX_DEFILER3,
USFX_DEFILER4,
USFX_DEFILER8,
USFX_DEFILER6,
USFX_DEFILER7,
USFX_NAKRUL1,
USFX_NAKRUL2,
USFX_NAKRUL3,
USFX_NAKRUL4,
USFX_NAKRUL5,
USFX_NAKRUL6,
PS_NARATR3,
TSFX_COWSUT1,
TSFX_COWSUT2,
TSFX_COWSUT3,
TSFX_COWSUT4,
TSFX_COWSUT4A,
TSFX_COWSUT5,
TSFX_COWSUT6,
TSFX_COWSUT7,
TSFX_COWSUT8,
TSFX_COWSUT9,
TSFX_COWSUT10,
TSFX_COWSUT11,
TSFX_COWSUT12,
USFX_SKLJRN1,
PS_NARATR6,
PS_NARATR7,
PS_NARATR8,
PS_NARATR5,
PS_NARATR9,
PS_NARATR4,
TSFX_TRADER1,
IS_CROPEN,
IS_CRCLOS,
} _sfx_id;
typedef enum sfx_flag {
sfx_STREAM = 0x01,
sfx_MISC = 0x02,
sfx_UI = 0x04,
sfx_MONK = 0x08,
sfx_ROGUE = 0x10,
sfx_WARRIOR = 0x20,
sfx_SORCERER = 0x40,
sfx_HELLFIRE = 0x80,
} sfx_flag;
typedef enum missile_id {
MIS_ARROW = 0x0,
MIS_FIREBOLT = 0x1,
MIS_GUARDIAN = 0x2,
MIS_RNDTELEPORT = 0x3,
MIS_LIGHTBALL = 0x4,
MIS_FIREWALL = 0x5,
MIS_FIREBALL = 0x6,
MIS_LIGHTCTRL = 0x7,
MIS_LIGHTNING = 0x8,
MIS_MISEXP = 0x9,
MIS_TOWN = 0xA,
MIS_FLASH = 0xB,
MIS_FLASH2 = 0xC,
MIS_MANASHIELD = 0xD,
MIS_FIREMOVE = 0xE,
MIS_CHAIN = 0xF,
MIS_SENTINAL = 0x10, // TODO: Check beta
MIS_BLODSTAR = 0x11, // TODO: Check beta
MIS_BONE = 0x12, // TODO: Check beta
MIS_METLHIT = 0x13, // TODO: Check beta
MIS_RHINO = 0x14,
MIS_MAGMABALL = 0x15,
MIS_LIGHTCTRL2 = 0x16,
MIS_LIGHTNING2 = 0x17,
MIS_FLARE = 0x18,
MIS_MISEXP2 = 0x19,
MIS_TELEPORT = 0x1A,
MIS_FARROW = 0x1B,
MIS_DOOMSERP = 0x1C,
MIS_FIREWALLA = 0x1D, // TODO: Check beta
MIS_STONE = 0x1E,
MIS_NULL_1F = 0x1F,
MIS_INVISIBL = 0x20,
MIS_GOLEM = 0x21,
MIS_ETHEREALIZE = 0x22,
MIS_BLODBUR = 0x23, // TODO: Check beta
MIS_BOOM = 0x24,
MIS_HEAL = 0x25,
MIS_FIREWALLC = 0x26,
MIS_INFRA = 0x27,
MIS_IDENTIFY = 0x28,
MIS_WAVE = 0x29,
MIS_NOVA = 0x2A,
MIS_BLODBOIL = 0x2B,
MIS_APOCA = 0x2C,
MIS_REPAIR = 0x2D,
MIS_RECHARGE = 0x2E,
MIS_DISARM = 0x2F,
MIS_FLAME = 0x30,
MIS_FLAMEC = 0x31,
MIS_FIREMAN = 0x32, // TODO: Check beta
MIS_KRULL = 0x33, // TODO: Check beta
MIS_CBOLT = 0x34,
MIS_HBOLT = 0x35,
MIS_RESURRECT = 0x36,
MIS_TELEKINESIS = 0x37,
MIS_LARROW = 0x38,
MIS_ACID = 0x39,
MIS_MISEXP3 = 0x3A,
MIS_ACIDPUD = 0x3B,
MIS_HEALOTHER = 0x3C,
MIS_ELEMENT = 0x3D,
MIS_RESURRECTBEAM = 0x3E,
MIS_BONESPIRIT = 0x3F,
MIS_WEAPEXP = 0x40,
MIS_RPORTAL = 0x41,
MIS_BOOM2 = 0x42,
MIS_DIABAPOCA = 0x43,
MIS_MANA = 0x44,
MIS_MAGI = 0x45,
MIS_LIGHTWALL = 0x46,
MIS_LIGHTNINGWALL = 0x47,
MIS_IMMOLATION = 0x48,
MIS_SPECARROW = 0x49,
MIS_FIRENOVA = 0x4A,
MIS_LIGHTARROW = 0x4B,
MIS_CBOLTARROW = 0x4C,
MIS_HBOLTARROW = 0x4D,
MIS_WARP = 0x4E,
MIS_REFLECT = 0x4F,
MIS_BERSERK = 0x50,
MIS_FIRERING = 0x51,
MIS_STEALPOTS = 0x52,
MIS_MANATRAP = 0x53,
MIS_LIGHTRING = 0x54,
MIS_SEARCH = 0x55,
MIS_FLASHFR = 0x56,
MIS_FLASHBK = 0x57,
MIS_IMMOLATION2 = 0x58,
MIS_RUNEFIRE = 0x59,
MIS_RUNELIGHT = 0x5A,
MIS_RUNENOVA = 0x5B,
MIS_RUNEIMMOLAT = 0x5C,
MIS_RUNESTONE = 0x5D,
MIS_HIVEEXP = 0x5E,
MIS_HORKDMN = 0x5F,
MIS_JESTER = 0x60,
MIS_HIVEEXP2 = 0x61,
MIS_LICH = 0x62,
MIS_PSYCHORB = 0x63,
MIS_NECROMORB = 0x64,
MIS_ARCHLICH = 0x65,
MIS_BONEDEMON = 0x66,
MIS_EXYEL2 = 0x67,
MIS_EXRED3 = 0x68,
MIS_EXBL2 = 0x69,
MIS_EXBL3 = 0x6A,
MIS_EXORA1 = 0x6B,
} missile_id;
typedef enum missile_graphic_id {
MFILE_ARROWS,
MFILE_FIREBA,
MFILE_GUARD,
MFILE_LGHNING,
MFILE_FIREWAL,
MFILE_MAGBLOS,
MFILE_PORTAL,
MFILE_BLUEXFR,
MFILE_BLUEXBK,
MFILE_MANASHLD,
MFILE_BLOOD,
MFILE_BONE,
MFILE_METLHIT,
MFILE_FARROW,
MFILE_DOOM,
MFILE_0F,
MFILE_BLODBUR,
MFILE_NEWEXP,
MFILE_SHATTER1,
MFILE_BIGEXP,
MFILE_INFERNO,
MFILE_THINLGHT,
MFILE_FLARE,
MFILE_FLAREEXP,
MFILE_MAGBALL,
MFILE_KRULL,
MFILE_MINILTNG,
MFILE_HOLY,
MFILE_HOLYEXPL,
MFILE_LARROW,
MFILE_FIRARWEX,
MFILE_ACIDBF,
MFILE_ACIDSPLA,
MFILE_ACIDPUD,
MFILE_ETHRSHLD,
MFILE_FIRERUN,
MFILE_RESSUR1,
MFILE_SKLBALL,
MFILE_RPORTAL,
MFILE_FIREPLAR,
MFILE_SCUBMISB,
MFILE_SCBSEXPB,
MFILE_SCUBMISC,
MFILE_SCBSEXPC,
MFILE_SCUBMISD,
MFILE_SCBSEXPD,
MFILE_SPAWNS,
MFILE_REFLECT,
MFILE_LICH,
MFILE_MSBLA,
MFILE_NECROMORB,
MFILE_ARCHLICH,
MFILE_RUNE,
MFILE_EXYEL2,
MFILE_EXBL2,
MFILE_EXRED3,
MFILE_BONEDEMON,
MFILE_EXORA1,
MFILE_EXBL3,
MFILE_NONE, // BUGFIX: should be `MFILE_NONE = MFILE_SCBSEXPD+1`, i.e. MFILE_NULL, since there would otherwise be an out-of-bounds in SetMissAnim when accessing misfiledata for any of the missiles that have MFILE_NONE as mFileNum in missiledata. (fixed)
} missile_graphic_id;
typedef enum FILE_SYSTEM {
FS_PC = 0,
FS_CD = 1,
} FILE_SYSTEM;
typedef enum _artfonts {
AF_SMALL = 0,
AF_SMALLGRAY = 1,
AF_MED = 2,
AF_MEDGRAY = 3,
AF_BIG = 4,
AF_BIGGRAY = 5,
AF_HUGE = 6,
AF_HUGEGRAY = 7,
} _artfonts;
// this enum contains indexes from UniqMonst array for special unique monsters (usually quest related)
typedef enum {
UMT_GARBUD = 0,
UMT_SKELKING = 1,
UMT_ZHAR = 2,
UMT_SNOTSPIL = 3,
UMT_LAZURUS = 4,
UMT_RED_VEX = 5,
UMT_BLACKJADE = 6,
UMT_LACHDAN = 7,
UMT_WARLORD = 8,
UMT_BUTCHER = 9,
UMT_HORKDMN = 10,
UMT_DEFILER = 11,
UMT_NAKRUL = 12,
} _uniq_monsterid;
typedef enum monster_flag {
MFLAG_HIDDEN = 0x01,
MFLAG_LOCK_ANIMATION = 0x02,
MFLAG_ALLOW_SPECIAL = 0x04,
MFLAG_NOHEAL = 0x08,
MFLAG_TARGETS_MONSTER = 0x10,
MFLAG_GOLEM = 0x20,
MFLAG_QUEST_COMPLETE = 0x40,
MFLAG_KNOCKBACK = 0x80,
MFLAG_SEARCH = 0x100,
MFLAG_CAN_OPEN_DOOR = 0x200,
MFLAG_NO_ENEMY = 0x400,
MFLAG_BERSERK = 0x800,
MFLAG_NOLIFESTEAL = 0x1000
} monster_flag;
typedef enum monster_goal {
MGOAL_NORMAL = 1,
MGOAL_RETREAT = 2,
MGOAL_HEALING = 3,
MGOAL_MOVE = 4,
MGOAL_ATTACK2 = 5,
MGOAL_INQUIRING = 6,
MGOAL_TALKING = 7,
} monster_goal;
typedef enum missile_resistance {
MISR_NONE = 0,
MISR_FIRE = 1,
MISR_LIGHTNING = 2,
MISR_MAGIC = 3,
MISR_ACID = 4,
} missile_resistance;
typedef enum _speech_id {
TEXT_KING1,
TEXT_KING2,
TEXT_KING3,
TEXT_KING4,
TEXT_KING5,
TEXT_KING6,
TEXT_KING7,
TEXT_KING8,
TEXT_KING9,
TEXT_KING10,
TEXT_KING11,
TEXT_BANNER1,
TEXT_BANNER2,
TEXT_BANNER3,
TEXT_BANNER4,
TEXT_BANNER5,
TEXT_BANNER6,
TEXT_BANNER7,
TEXT_BANNER8,
TEXT_BANNER9,
TEXT_BANNER10,
TEXT_BANNER11,
TEXT_BANNER12,
TEXT_VILE1,
TEXT_VILE2,
TEXT_VILE3,
TEXT_VILE4,
TEXT_VILE5,
TEXT_VILE6,
TEXT_VILE7,
TEXT_VILE8,
TEXT_VILE9,
TEXT_VILE10,
TEXT_VILE11,
TEXT_VILE12,
TEXT_VILE13,
TEXT_VILE14,
TEXT_POISON1,
TEXT_POISON2,
TEXT_POISON3,
TEXT_POISON4,
TEXT_POISON5,
TEXT_POISON6,
TEXT_POISON7,
TEXT_POISON8,
TEXT_POISON9,
TEXT_POISON10,
TEXT_BONE1,
TEXT_BONE2,
TEXT_BONE3,
TEXT_BONE4,
TEXT_BONE5,
TEXT_BONE6,
TEXT_BONE7,
TEXT_BONE8,
TEXT_BUTCH1,
TEXT_BUTCH2,
TEXT_BUTCH3,
TEXT_BUTCH4,
TEXT_BUTCH5,
TEXT_BUTCH6,
TEXT_BUTCH7,
TEXT_BUTCH8,
TEXT_BUTCH9,
TEXT_BUTCH10,
TEXT_BLIND1,
TEXT_BLIND2,
TEXT_BLIND3,
TEXT_BLIND4,
TEXT_BLIND5,
TEXT_BLIND6,
TEXT_BLIND7,
TEXT_BLIND8,
TEXT_VEIL1,
TEXT_VEIL2,
TEXT_VEIL3,
TEXT_VEIL4,
TEXT_VEIL5,
TEXT_VEIL6,
TEXT_VEIL7,
TEXT_VEIL8,
TEXT_VEIL9,
TEXT_VEIL10,
TEXT_VEIL11,
TEXT_ANVIL1,
TEXT_ANVIL2,
TEXT_ANVIL3,
TEXT_ANVIL4,
TEXT_ANVIL5,
TEXT_ANVIL6,
TEXT_ANVIL7,
TEXT_ANVIL8,
TEXT_ANVIL9,
TEXT_ANVIL10,
TEXT_BLOOD1,
TEXT_BLOOD2,
TEXT_BLOOD3,
TEXT_BLOOD4,
TEXT_BLOOD5,
TEXT_BLOOD6,
TEXT_BLOOD7,
TEXT_BLOOD8,
TEXT_WARLRD1,
TEXT_WARLRD2,
TEXT_WARLRD3,
TEXT_WARLRD4,
TEXT_WARLRD5,
TEXT_WARLRD6,
TEXT_WARLRD7,
TEXT_WARLRD8,
TEXT_WARLRD9,
TEXT_INFRA1,
TEXT_INFRA2,
TEXT_INFRA3,
TEXT_INFRA4,
TEXT_INFRA5,
TEXT_INFRA6,
TEXT_INFRA7,
TEXT_INFRA8,
TEXT_INFRA9,
TEXT_INFRA10,
TEXT_MUSH1,
TEXT_MUSH2,
TEXT_MUSH3,
TEXT_MUSH4,
TEXT_MUSH5,
TEXT_MUSH6,
TEXT_MUSH7,
TEXT_MUSH8,
TEXT_MUSH9,
TEXT_MUSH10,
TEXT_MUSH11,
TEXT_MUSH12,
TEXT_MUSH13,
TEXT_DOOM1,
TEXT_DOOM2,
TEXT_DOOM3,
TEXT_DOOM4,
TEXT_DOOM5,
TEXT_DOOM6,
TEXT_DOOM7,
TEXT_DOOM8,
TEXT_DOOM9,
TEXT_DOOM10,
TEXT_GARBUD1,
TEXT_GARBUD2,
TEXT_GARBUD3,
TEXT_GARBUD4,
TEXT_ZHAR1,
TEXT_ZHAR2,
TEXT_STORY1,
TEXT_STORY2,
TEXT_STORY3,
TEXT_STORY4,
TEXT_STORY5,
TEXT_STORY6,
TEXT_STORY7,
TEXT_STORY9,
TEXT_STORY10,
TEXT_STORY11,
TEXT_OGDEN1,
TEXT_OGDEN2,
TEXT_OGDEN3,
TEXT_OGDEN4,
TEXT_OGDEN5,
TEXT_OGDEN6,
TEXT_OGDEN8,
TEXT_OGDEN9,
TEXT_OGDEN10,
TEXT_PEPIN1,
TEXT_PEPIN2,
TEXT_PEPIN3,
TEXT_PEPIN4,
TEXT_PEPIN5,
TEXT_PEPIN6,
TEXT_PEPIN7,
TEXT_PEPIN9,
TEXT_PEPIN10,
TEXT_PEPIN11,
TEXT_GILLIAN1,
TEXT_GILLIAN2,
TEXT_GILLIAN3,
TEXT_GILLIAN4,
TEXT_GILLIAN5,
TEXT_GILLIAN6,
TEXT_GILLIAN7,
TEXT_GILLIAN9,
TEXT_GILLIAN10,
TEXT_GRISWOLD1,
TEXT_GRISWOLD2,
TEXT_GRISWOLD3,
TEXT_GRISWOLD4,
TEXT_GRISWOLD5,
TEXT_GRISWOLD6,
TEXT_GRISWOLD7,
TEXT_GRISWOLD8,
TEXT_GRISWOLD9,
TEXT_GRISWOLD10,
TEXT_GRISWOLD12,
TEXT_GRISWOLD13,
TEXT_FARNHAM1,
TEXT_FARNHAM2,
TEXT_FARNHAM3,
TEXT_FARNHAM4,
TEXT_FARNHAM5,
TEXT_FARNHAM6,
TEXT_FARNHAM8,
TEXT_FARNHAM9,
TEXT_FARNHAM10,
TEXT_FARNHAM11,
TEXT_FARNHAM12,
TEXT_FARNHAM13,
TEXT_ADRIA1,
TEXT_ADRIA2,
TEXT_ADRIA3,
TEXT_ADRIA4,
TEXT_ADRIA5,
TEXT_ADRIA6,
TEXT_ADRIA7,
TEXT_ADRIA8,
TEXT_ADRIA9,
TEXT_ADRIA10,
TEXT_ADRIA12,
TEXT_ADRIA13,
TEXT_WIRT1,
TEXT_WIRT2,
TEXT_WIRT3,
TEXT_WIRT4,
TEXT_WIRT5,
TEXT_WIRT6,
TEXT_WIRT7,
TEXT_WIRT8,
TEXT_WIRT9,
TEXT_WIRT11,
TEXT_WIRT12,
TEXT_BONER,
TEXT_BLOODY,
TEXT_BLINDING,
TEXT_BLOODWAR,
TEXT_MBONER,
TEXT_MBLOODY,
TEXT_MBLINDING,
TEXT_MBLOODWAR,
TEXT_RBONER,
TEXT_RBLOODY,
TEXT_RBLINDING,
TEXT_RBLOODWAR,
TEXT_COW1,
TEXT_COW2,
TEXT_BOOK11,
TEXT_BOOK12,
TEXT_BOOK13,
TEXT_BOOK21,
TEXT_BOOK22,
TEXT_BOOK23,
TEXT_BOOK31,
TEXT_BOOK32,
TEXT_BOOK33,
TEXT_INTRO,
TEXT_HBONER,
TEXT_HBLOODY,
TEXT_HBLINDING,
TEXT_HBLOODWAR,
TEXT_BBONER,
TEXT_BBLOODY,
TEXT_BBLINDING,
TEXT_BBLOODWAR,
TEXT_GRAVE1,
TEXT_GRAVE2,
TEXT_GRAVE3,
TEXT_GRAVE4,
TEXT_GRAVE5,
TEXT_GRAVE6,
TEXT_GRAVE7,
TEXT_GRAVE8,
TEXT_GRAVE9,
TEXT_GRAVE10,
TEXT_FARMER1,
TEXT_FARMER2,
TEXT_FARMER3,
TEXT_FARMER4,
TEXT_FARMER5,
TEXT_GIRL1,
TEXT_GIRL2,
TEXT_GIRL3,
TEXT_GIRL4,
TEXT_DEFILER1,
TEXT_DEFILER2,
TEXT_DEFILER3,
TEXT_DEFILER4,
TEXT_DEFILER5,
TEXT_NAKRUL1,
TEXT_NAKRUL2,
TEXT_NAKRUL3,
TEXT_NAKRUL4,
TEXT_NAKRUL5,
TEXT_CORNSTN,
TEXT_JERSEY1,
TEXT_JERSEY2,
TEXT_JERSEY3,
TEXT_JERSEY4,
TEXT_JERSEY5,
TEXT_JERSEY6,
TEXT_JERSEY7,
TEXT_JERSEY8,
TEXT_JERSEY9,
TEXT_TRADER,
TEXT_FARMER6,
TEXT_FARMER7,
TEXT_FARMER8,
TEXT_FARMER9,
TEXT_FARMER10,
TEXT_JERSEY10,
TEXT_JERSEY11,
TEXT_JERSEY12,
TEXT_JERSEY13,
TEXT_SKLJRN,
TEXT_BOOK4,
TEXT_BOOK5,
TEXT_BOOK6,
TEXT_BOOK7,
TEXT_BOOK8,
TEXT_BOOK9,
TEXT_BOOKA,
TEXT_BOOKB,
TEXT_BOOKC,
TEXT_OBOOKA,
TEXT_OBOOKB,
TEXT_OBOOKC,
TEXT_MBOOKA,
TEXT_MBOOKB,
TEXT_MBOOKC,
TEXT_RBOOKA,
TEXT_RBOOKB,
TEXT_RBOOKC,
TEXT_BBOOKA,
TEXT_BBOOKB,
TEXT_BBOOKC,
/*
TEXT_DEADGUY,
TEXT_FARNHAM14,
TEXT_FARNHAM15,
TEXT_FARNHAM16,
TEXT_FARNHAM17,
TEXT_FARNHAM18,
TEXT_FARNHAM19,
TEXT_FARNHAM20,
TEXT_FARNHAM21,
TEXT_FARNHAM22,
TEXT_GILLIAN11,
TEXT_GILLIAN12,
TEXT_GILLIAN13,
TEXT_GILLIAN14,
TEXT_GILLIAN15,
TEXT_GILLIAN16,
TEXT_GILLIAN17,
TEXT_GILLIAN18,
TEXT_GILLIAN19,
TEXT_GILLIAN20,
TEXT_GILLIAN21,
TEXT_GILLIAN22,
TEXT_GILLIAN23,
TEXT_GILLIAN24,
TEXT_GILLIAN25,
TEXT_GILLIAN26,
*/
TEXT_NONE = -1,
} _speech_id;
typedef enum object_graphic_id {
OFILE_L1BRAZ = 0x0,
OFILE_L1DOORS = 0x1,
OFILE_LEVER = 0x2,
OFILE_CHEST1 = 0x3,
OFILE_CHEST2 = 0x4,
OFILE_BANNER = 0x5,
OFILE_SKULPILE = 0x6,
OFILE_SKULFIRE = 0x7,
OFILE_SKULSTIK = 0x8,
OFILE_CRUXSK1 = 0x9,
OFILE_CRUXSK2 = 0xA,
OFILE_CRUXSK3 = 0xB,
OFILE_BOOK1 = 0xC,
OFILE_BOOK2 = 0xD,
OFILE_ROCKSTAN = 0xE,
OFILE_ANGEL = 0xF,
OFILE_CHEST3 = 0x10,
OFILE_BURNCROS = 0x11,
OFILE_CANDLE2 = 0x12,
OFILE_NUDE2 = 0x13,
OFILE_SWITCH4 = 0x14,
OFILE_TNUDEM = 0x15,
OFILE_TNUDEW = 0x16,
OFILE_TSOUL = 0x17,
OFILE_L2DOORS = 0x18,
OFILE_WTORCH4 = 0x19,
OFILE_WTORCH3 = 0x1A,
OFILE_SARC = 0x1B,
OFILE_FLAME1 = 0x1C,
OFILE_PRSRPLT1 = 0x1D,
OFILE_TRAPHOLE = 0x1E,
OFILE_MINIWATR = 0x1F,
OFILE_WTORCH2 = 0x20,
OFILE_WTORCH1 = 0x21,
OFILE_BCASE = 0x22,
OFILE_BSHELF = 0x23,
OFILE_WEAPSTND = 0x24,
OFILE_BARREL = 0x25,
OFILE_BARRELEX = 0x26,
OFILE_LSHRINEG = 0x27,
OFILE_RSHRINEG = 0x28,
OFILE_BLOODFNT = 0x29,
OFILE_DECAP = 0x2A,
OFILE_PEDISTL = 0x2B,
OFILE_L3DOORS = 0x2C,
OFILE_PFOUNTN = 0x2D,
OFILE_ARMSTAND = 0x2E,
OFILE_GOATSHRN = 0x2F,
OFILE_CAULDREN = 0x30,
OFILE_MFOUNTN = 0x31,
OFILE_TFOUNTN = 0x32,
OFILE_ALTBOY = 0x33,
OFILE_MCIRL = 0x34,
OFILE_BKSLBRNT = 0x35,
OFILE_MUSHPTCH = 0x36,
OFILE_LZSTAND = 0x37,
} object_graphic_id;
typedef enum dungeon_type {
DTYPE_TOWN = 0x0,
DTYPE_CATHEDRAL = 0x1,
DTYPE_CATACOMBS = 0x2,
DTYPE_CAVES = 0x3,
DTYPE_HELL = 0x4,
DTYPE_NEST = 0x5,
DTYPE_CRYPT = 0x6,
DTYPE_NONE = 0xFF,
} dungeon_type;
typedef enum dflag {
BFLAG_MISSILE = 0x01,
BFLAG_VISIBLE = 0x02,
BFLAG_DEAD_PLAYER = 0x04,
BFLAG_POPULATED = 0x08,
BFLAG_MONSTLR = 0x10,
BFLAG_PLAYERLR = 0x20,
BFLAG_LIT = 0x40,
BFLAG_EXPLORED = 0x80,
} dflag;
typedef enum clicktype {
CLICK_NONE = 0,
CLICK_LEFT = 1,
CLICK_RIGHT = 2,
} clicktype;
typedef enum placeflag {
PLACE_SCATTER = 1,
PLACE_SPECIAL = 2,
PLACE_UNIQUE = 4,
} placeflag;
typedef enum mienemy_type {
TARGET_MONSTERS = 0,
TARGET_PLAYERS = 1,
TARGET_BOTH = 2,
} mienemy_type;
typedef enum dungeon_message {
DMSG_CATHEDRAL = 1 << 0,
DMSG_CATACOMBS = 1 << 1,
DMSG_CAVES = 1 << 2,
DMSG_HELL = 1 << 3,
DMSG_DIABLO = 1 << 4,
} dungeon_message;
typedef enum diablo_message {
EMSG_NONE = 0,
EMSG_NO_AUTOMAP_IN_TOWN = 1,
EMSG_NO_MULTIPLAYER_IN_DEMO = 2,
EMSG_DIRECT_SOUND_FAILED = 3,
EMSG_NOT_IN_SHAREWARE = 4,
EMSG_NO_SPACE_TO_SAVE = 5,
EMSG_NO_PAUSE_IN_TOWN = 6,
EMSG_COPY_TO_HDD = 7,
EMSG_DESYNC = 8,
EMSG_NO_PAUSE_IN_MP = 9,
EMSG_LOADING = 10,
EMSG_SAVING = 11,
EMSG_SHRINE_MYSTERIOUS = 12,
EMSG_SHRINE_HIDDEN = 13,
EMSG_SHRINE_GLOOMY = 14,
EMSG_SHRINE_WEIRD = 15,
EMSG_SHRINE_MAGICAL = 16,
EMSG_SHRINE_STONE = 17,
EMSG_SHRINE_RELIGIOUS = 18,
EMSG_SHRINE_ENCHANTED = 19,
EMSG_SHRINE_THAUMATURGIC = 20,
EMSG_SHRINE_FASCINATING = 21,
EMSG_SHRINE_CRYPTIC = 22,
EMSG_SHRINE_UNUSED = 23,
EMSG_SHRINE_ELDRITCH = 24,
EMSG_SHRINE_EERIE = 25,
EMSG_SHRINE_DIVINE = 26,
EMSG_SHRINE_HOLY = 27,
EMSG_SHRINE_SACRED = 28,
EMSG_SHRINE_SPIRITUAL = 29,
EMSG_SHRINE_SPOOKY1 = 30,
EMSG_SHRINE_SPOOKY2 = 31,
EMSG_SHRINE_ABANDONED = 32,
EMSG_SHRINE_CREEPY = 33,
EMSG_SHRINE_QUIET = 34,
EMSG_SHRINE_SECLUDED = 35,
EMSG_SHRINE_ORNATE = 36,
EMSG_SHRINE_GLIMMERING = 37,
EMSG_SHRINE_TAINTED1 = 38,
EMSG_SHRINE_TAINTED2 = 39,
EMSG_REQUIRES_LVL_8 = 40,
EMSG_REQUIRES_LVL_13 = 41,
EMSG_REQUIRES_LVL_17 = 42,
EMSG_BONECHAMB = 43,
EMSG_SHRINE_OILY = 44,
EMSG_SHRINE_GLOWING = 45,
EMSG_SHRINE_MENDICANT = 46,
EMSG_SHRINE_SPARKLING = 47,
EMSG_SHRINE_TOWN = 48,
EMSG_SHRINE_SHIMMERING = 49,
EMSG_SHRINE_SOLAR1 = 50,
EMSG_SHRINE_SOLAR2 = 51,
EMSG_SHRINE_SOLAR3 = 52,
EMSG_SHRINE_SOLAR4 = 53,
EMSG_SHRINE_MURPHYS = 54,
} diablo_message;
typedef enum magic_type {
STYPE_FIRE = 0x0,
STYPE_LIGHTNING = 0x1,
STYPE_MAGIC = 0x2,
} magic_type;
typedef enum theme_id {
THEME_BARREL = 0x0,
THEME_SHRINE = 0x1,
THEME_MONSTPIT = 0x2,
THEME_SKELROOM = 0x3,
THEME_TREASURE = 0x4,
THEME_LIBRARY = 0x5,
THEME_TORTURE = 0x6,
THEME_BLOODFOUNTAIN = 0x7,
THEME_DECAPITATED = 0x8,
THEME_PURIFYINGFOUNTAIN = 0x9,
THEME_ARMORSTAND = 0xA,
THEME_GOATSHRINE = 0xB,
THEME_CAULDRON = 0xC,
THEME_MURKYFOUNTAIN = 0xD,
THEME_TEARFOUNTAIN = 0xE,
THEME_BRNCROSS = 0xF,
THEME_WEAPONRACK = 0x10,
THEME_NONE = -1,
} theme_id;
typedef enum event_type {
EVENT_TYPE_PLAYER_CREATE_GAME = 1,
EVENT_TYPE_2 = 2,
EVENT_TYPE_PLAYER_LEAVE_GAME = 3,
EVENT_TYPE_PLAYER_MESSAGE = 4,
EVENT_TYPE_5 = 5,
EVENT_TYPE_6 = 6,
EVENT_TYPE_7 = 7,
EVENT_TYPE_8 = 8,
EVENT_TYPE_9 = 9,
EVENT_TYPE_10 = 10,
EVENT_TYPE_11 = 11,
EVENT_TYPE_12 = 12,
EVENT_TYPE_13 = 13,
EVENT_TYPE_14 = 14,
EVENT_TYPE_15 = 15,
} event_type;
typedef enum _difficulty {
DIFF_NORMAL = 0x0,
DIFF_NIGHTMARE = 0x1,
DIFF_HELL = 0x2,
NUM_DIFFICULTIES = 0x3,
} _difficulty;
typedef enum MON_ANIM {
MA_STAND = 0,
MA_WALK = 1,
MA_ATTACK = 2,
MA_GOTHIT = 3,
MA_DEATH = 4,
MA_SPECIAL = 5,
} MON_ANIM;
typedef enum spell_type {
RSPLTYPE_SKILL = 0x0,
RSPLTYPE_SPELL = 0x1,
RSPLTYPE_SCROLL = 0x2,
RSPLTYPE_CHARGES = 0x3,
RSPLTYPE_INVALID = 0x4,
} spell_type;
typedef enum cursor_id {
CURSOR_NONE = 0x0,
CURSOR_HAND = 0x1,
CURSOR_IDENTIFY = 0x2,
CURSOR_REPAIR = 0x3,
CURSOR_RECHARGE = 0x4,
CURSOR_DISARM = 0x5,
CURSOR_OIL = 0x6,
CURSOR_TELEKINESIS = 0x7,
CURSOR_RESURRECT = 0x8,
CURSOR_TELEPORT = 0x9,
CURSOR_HEALOTHER = 0xA,
CURSOR_HOURGLASS = 0xB,
CURSOR_FIRSTITEM = 0xC,
} cursor_id;
typedef enum direction {
DIR_S = 0x0,
DIR_SW = 0x1,
DIR_W = 0x2,
DIR_NW = 0x3,
DIR_N = 0x4,
DIR_NE = 0x5,
DIR_E = 0x6,
DIR_SE = 0x7,
DIR_OMNI = 0x8,
} direction;
typedef enum _scroll_direction {
SDIR_NONE = 0x0,
SDIR_N = 0x1,
SDIR_NE = 0x2,
SDIR_E = 0x3,
SDIR_SE = 0x4,
SDIR_S = 0x5,
SDIR_SW = 0x6,
SDIR_W = 0x7,
SDIR_NW = 0x8,
} _scroll_direction;
typedef enum interface_mode {
WM_DIABNEXTLVL = 0x402, // WM_USER+2
WM_DIABPREVLVL = 0x403,
WM_DIABRTNLVL = 0x404,
WM_DIABSETLVL = 0x405,
WM_DIABWARPLVL = 0x406,
WM_DIABTOWNWARP = 0x407,
WM_DIABTWARPUP = 0x408,
WM_DIABRETOWN = 0x409,
WM_DIABNEWGAME = 0x40A,
WM_DIABLOADGAME = 0x40B
// WM_LEIGHSKIP = 0x40C, // psx only
// WM_DIAVNEWLVL = 0x40D, // psx only
} interface_mode;
typedef enum lvl_entry {
ENTRY_MAIN = 0,
ENTRY_PREV = 1,
ENTRY_SETLVL = 2,
ENTRY_RTNLVL = 3,
ENTRY_LOAD = 4,
ENTRY_WARPLVL = 5,
ENTRY_TWARPDN = 6,
ENTRY_TWARPUP = 7,
} lvl_entry;
typedef enum game_info {
GAMEINFO_NAME = 1,
GAMEINFO_PASSWORD = 2,
GAMEINFO_STATS = 3,
GAMEINFO_MODEFLAG = 4,
GAMEINFO_GAMETEMPLATE = 5,
GAMEINFO_PLAYERS = 6,
} game_info;
typedef enum spell_id {
SPL_NULL = 0x0,
SPL_FIREBOLT = 0x1,
SPL_HEAL = 0x2,
SPL_LIGHTNING = 0x3,
SPL_FLASH = 0x4,
SPL_IDENTIFY = 0x5,
SPL_FIREWALL = 0x6,
SPL_TOWN = 0x7,
SPL_STONE = 0x8,
SPL_INFRA = 0x9,
SPL_RNDTELEPORT = 0xA,
SPL_MANASHIELD = 0xB,
SPL_FIREBALL = 0xC,
SPL_GUARDIAN = 0xD,
SPL_CHAIN = 0xE,
SPL_WAVE = 0xF,
SPL_DOOMSERP = 0x10,
SPL_BLODRIT = 0x11,
SPL_NOVA = 0x12,
SPL_INVISIBIL = 0x13,
SPL_FLAME = 0x14,
SPL_GOLEM = 0x15,
SPL_BLODBOIL = 0x16,
SPL_TELEPORT = 0x17,
SPL_APOCA = 0x18,
SPL_ETHEREALIZE = 0x19,
SPL_REPAIR = 0x1A,
SPL_RECHARGE = 0x1B,
SPL_DISARM = 0x1C,
SPL_ELEMENT = 0x1D,
SPL_CBOLT = 0x1E,
SPL_HBOLT = 0x1F,
SPL_RESURRECT = 0x20,
SPL_TELEKINESIS = 0x21,
SPL_HEALOTHER = 0x22,
SPL_FLARE = 0x23,
SPL_BONESPIRIT = 0x24,
SPL_LASTDIABLO = SPL_BONESPIRIT,
SPL_MANA = 0x25,
SPL_MAGI = 0x26,
SPL_JESTER = 0x27,
SPL_LIGHTWALL = 0x28,
SPL_IMMOLAT = 0x29,
SPL_WARP = 0x2A,
SPL_REFLECT = 0x2B,
SPL_BERSERK = 0x2C,
SPL_FIRERING = 0x2D,
SPL_SEARCH = 0x2E,
SPL_RUNEFIRE = 0x2F,
SPL_RUNELIGHT = 0x30,
SPL_RUNENOVA = 0x31,
SPL_RUNEIMMOLAT = 0x32,
SPL_RUNESTONE = 0x33,
SPL_INVALID = -1,
} spell_id;
typedef enum _cmd_id {
CMD_STAND,
CMD_WALKXY,
CMD_ACK_PLRINFO,
CMD_ADDSTR,
CMD_ADDMAG,
CMD_ADDDEX,
CMD_ADDVIT,
CMD_SBSPELL,
CMD_GETITEM,
CMD_AGETITEM,
CMD_PUTITEM,
CMD_RESPAWNITEM,
CMD_ATTACKXY,
CMD_RATTACKXY,
CMD_SPELLXY,
CMD_TSPELLXY,
CMD_OPOBJXY,
CMD_DISARMXY,
CMD_ATTACKID,
CMD_ATTACKPID,
CMD_RATTACKID,
CMD_RATTACKPID,
CMD_SPELLID,
CMD_SPELLPID,
CMD_TSPELLID,
CMD_TSPELLPID,
CMD_RESURRECT,
CMD_OPOBJT,
CMD_KNOCKBACK,
CMD_TALKXY,
CMD_NEWLVL,
CMD_WARP,
CMD_CHEAT_EXPERIENCE,
CMD_CHEAT_SPELL_LEVEL,
CMD_DEBUG,
CMD_SYNCDATA,
CMD_MONSTDEATH,
CMD_MONSTDAMAGE,
CMD_PLRDEAD,
CMD_REQUESTGITEM,
CMD_REQUESTAGITEM,
CMD_GOTOGETITEM,
CMD_GOTOAGETITEM,
CMD_OPENDOOR,
CMD_CLOSEDOOR,
CMD_OPERATEOBJ,
CMD_PLROPOBJ,
CMD_BREAKOBJ,
CMD_CHANGEPLRITEMS,
CMD_DELPLRITEMS,
CMD_PLRDAMAGE,
CMD_PLRLEVEL,
CMD_DROPITEM,
CMD_PLAYER_JOINLEVEL,
CMD_SEND_PLRINFO,
CMD_SATTACKXY,
CMD_ACTIVATEPORTAL,
CMD_DEACTIVATEPORTAL,
CMD_DLEVEL_0,
CMD_DLEVEL_1,
CMD_DLEVEL_2,
CMD_DLEVEL_3,
CMD_DLEVEL_4,
CMD_DLEVEL_5,
CMD_DLEVEL_6,
CMD_DLEVEL_7,
CMD_DLEVEL_8,
CMD_DLEVEL_9,
CMD_DLEVEL_10,
CMD_DLEVEL_11,
CMD_DLEVEL_12,
CMD_DLEVEL_13,
CMD_DLEVEL_14,
CMD_DLEVEL_15,
CMD_DLEVEL_16,
CMD_DLEVEL_17,
CMD_DLEVEL_18,
CMD_DLEVEL_19,
CMD_DLEVEL_20,
CMD_DLEVEL_21,
CMD_DLEVEL_22,
CMD_DLEVEL_23,
CMD_DLEVEL_24,
CMD_DLEVEL_JUNK,
CMD_DLEVEL_END,
CMD_HEALOTHER,
CMD_STRING,
CMD_SETSTR,
CMD_SETMAG,
CMD_SETDEX,
CMD_SETVIT,
CMD_RETOWN,
CMD_SPELLXYD,
CMD_ITEMEXTRA,
CMD_SYNCPUTITEM,
CMD_KILLGOLEM,
CMD_SYNCQUEST,
CMD_ENDSHIELD,
CMD_AWAKEGOLEM,
CMD_NOVA,
CMD_SETSHIELD,
CMD_REMSHIELD,
CMD_REFLECT,
CMD_NAKRUL,
CMD_OPENHIVE,
CMD_OPENCRYPT,
FAKE_CMD_SETID,
FAKE_CMD_DROPID,
NUM_CMDS,
} _cmd_id;
typedef enum _music_id {
TMUSIC_TOWN,
TMUSIC_L1,
TMUSIC_L2,
TMUSIC_L3,
TMUSIC_L4,
TMUSIC_L5,
TMUSIC_L6,
TMUSIC_INTRO,
NUM_MUSIC,
} _music_id;
typedef enum _mainmenu_selections {
MAINMENU_SINGLE_PLAYER = 1,
MAINMENU_MULTIPLAYER,
MAINMENU_REPLAY_INTRO,
MAINMENU_SHOW_SUPPORT,
MAINMENU_SHOW_CREDITS,
MAINMENU_EXIT_DIABLO,
MAINMENU_ATTRACT_MODE,
} _mainmenu_selections;
typedef enum _selhero_selections {
SELHERO_NEW_DUNGEON = 1,
SELHERO_CONTINUE = 2,
SELHERO_CONNECT = 3,
SELHERO_PREVIOUS = 4
} _selhero_selections;
typedef enum panel_button_id {
PANBTN_CHARINFO = 0,
PANBTN_QLOG = 1,
PANBTN_AUTOMAP = 2,
PANBTN_MAINMENU = 3,
PANBTN_INVENTORY = 4,
PANBTN_SPELLBOOK = 5,
PANBTN_SENDMSG = 6,
PANBTN_FRIENDLY = 7,
} panel_button_id;
typedef enum attribute_id {
ATTRIB_STR = 0,
ATTRIB_MAG = 1,
ATTRIB_DEX = 2,
ATTRIB_VIT = 3,
} attribute_id;
typedef enum _object_id {
OBJ_L1LIGHT = 0x0,
OBJ_L1LDOOR = 0x1,
OBJ_L1RDOOR = 0x2,
OBJ_SKFIRE = 0x3,
OBJ_LEVER = 0x4,
OBJ_CHEST1 = 0x5,
OBJ_CHEST2 = 0x6,
OBJ_CHEST3 = 0x7,
OBJ_CANDLE1 = 0x8,
OBJ_CANDLE2 = 0x9,
OBJ_CANDLEO = 0xA,
OBJ_BANNERL = 0xB,
OBJ_BANNERM = 0xC,
OBJ_BANNERR = 0xD,
OBJ_SKPILE = 0xE,
OBJ_SKSTICK1 = 0xF,
OBJ_SKSTICK2 = 0x10,
OBJ_SKSTICK3 = 0x11,
OBJ_SKSTICK4 = 0x12,
OBJ_SKSTICK5 = 0x13,
OBJ_CRUX1 = 0x14,
OBJ_CRUX2 = 0x15,
OBJ_CRUX3 = 0x16,
OBJ_STAND = 0x17,
OBJ_ANGEL = 0x18,
OBJ_BOOK2L = 0x19,
OBJ_BCROSS = 0x1A,
OBJ_NUDEW2R = 0x1B,
OBJ_SWITCHSKL = 0x1C,
OBJ_TNUDEM1 = 0x1D,
OBJ_TNUDEM2 = 0x1E,
OBJ_TNUDEM3 = 0x1F,
OBJ_TNUDEM4 = 0x20,
OBJ_TNUDEW1 = 0x21,
OBJ_TNUDEW2 = 0x22,
OBJ_TNUDEW3 = 0x23,
OBJ_TORTURE1 = 0x24,
OBJ_TORTURE2 = 0x25,
OBJ_TORTURE3 = 0x26,
OBJ_TORTURE4 = 0x27,
OBJ_TORTURE5 = 0x28,
OBJ_BOOK2R = 0x29,
OBJ_L2LDOOR = 0x2A,
OBJ_L2RDOOR = 0x2B,
OBJ_TORCHL = 0x2C,
OBJ_TORCHR = 0x2D,
OBJ_TORCHL2 = 0x2E,
OBJ_TORCHR2 = 0x2F,
OBJ_SARC = 0x30,
OBJ_FLAMEHOLE = 0x31,
OBJ_FLAMELVR = 0x32,
OBJ_WATER = 0x33,
OBJ_BOOKLVR = 0x34,
OBJ_TRAPL = 0x35,
OBJ_TRAPR = 0x36,
OBJ_BOOKSHELF = 0x37,
OBJ_WEAPRACK = 0x38,
OBJ_BARREL = 0x39,
OBJ_BARRELEX = 0x3A,
OBJ_SHRINEL = 0x3B,
OBJ_SHRINER = 0x3C,
OBJ_SKELBOOK = 0x3D,
OBJ_BOOKCASEL = 0x3E,
OBJ_BOOKCASER = 0x3F,
OBJ_BOOKSTAND = 0x40,
OBJ_BOOKCANDLE = 0x41,
OBJ_BLOODFTN = 0x42,
OBJ_DECAP = 0x43,
OBJ_TCHEST1 = 0x44,
OBJ_TCHEST2 = 0x45,
OBJ_TCHEST3 = 0x46,
OBJ_BLINDBOOK = 0x47,
OBJ_BLOODBOOK = 0x48,
OBJ_PEDISTAL = 0x49,
OBJ_L3LDOOR = 0x4A,
OBJ_L3RDOOR = 0x4B,
OBJ_PURIFYINGFTN = 0x4C,
OBJ_ARMORSTAND = 0x4D,
OBJ_ARMORSTANDN = 0x4E,
OBJ_GOATSHRINE = 0x4F,
OBJ_CAULDRON = 0x50,
OBJ_MURKYFTN = 0x51,
OBJ_TEARFTN = 0x52,
OBJ_ALTBOY = 0x53,
OBJ_MCIRCLE1 = 0x54,
OBJ_MCIRCLE2 = 0x55,
OBJ_STORYBOOK = 0x56,
OBJ_STORYCANDLE = 0x57,
OBJ_STEELTOME = 0x58,
OBJ_WARARMOR = 0x59,
OBJ_WARWEAP = 0x5A,
OBJ_TBCROSS = 0x5B,
OBJ_WEAPONRACK = 0x5C,
OBJ_WEAPONRACKN = 0x5D,
OBJ_MUSHPATCH = 0x5E,
OBJ_LAZSTAND = 0x5F,
OBJ_SLAINHERO = 0x60,
OBJ_SIGNCHEST = 0x61,
OBJ_BOOKSHELFR = 0x62,
} _object_id;
typedef enum _item_indexes {
IDI_GOLD,
IDI_WARRIOR,
IDI_WARRSHLD,
IDI_WARRCLUB,
IDI_ROGUE,
IDI_SORCERER,
IDI_CLEAVER,
IDI_FIRSTQUEST = IDI_CLEAVER,
IDI_SKCROWN,
IDI_INFRARING,
IDI_ROCK,
IDI_OPTAMULET,
IDI_TRING,
IDI_BANNER,
IDI_HARCREST,
IDI_STEELVEIL,
IDI_GLDNELIX,
IDI_ANVIL,
IDI_MUSHROOM,
IDI_BRAIN,
IDI_FUNGALTM,
IDI_SPECELIX,
IDI_BLDSTONE,
IDI_MAPOFDOOM,
IDI_LASTQUEST = IDI_MAPOFDOOM,
IDI_EAR,
IDI_HEAL,
IDI_MANA,
IDI_IDENTIFY,
IDI_PORTAL,
IDI_ARMOFVAL,
IDI_FULLHEAL,
IDI_FULLMANA,
IDI_GRISWOLD,
IDI_LGTFORGE,
IDI_LAZSTAFF,
IDI_RESURRECT,
IDI_OIL,
IDI_SHORTSTAFF,
IDI_BARDSWORD,
IDI_BARDDAGGER,
IDI_RUNEBOMB,
IDI_THEODORE,
IDI_AURIC,
IDI_NOTE1,
IDI_NOTE2,
IDI_NOTE3,
IDI_FULLNOTE,
IDI_BROWNSUIT,
IDI_GREYSUIT,
} _item_indexes;
typedef enum _setlevels {
//SL_BUTCHCHAMB = 0x0,
SL_SKELKING = 0x1,
SL_BONECHAMB = 0x2,
SL_MAZE = 0x3,
SL_POISONWATER = 0x4,
SL_VILEBETRAYER = 0x5,
} _setlevels;
typedef enum quest_id {
Q_ROCK = 0x00,
Q_MUSHROOM = 0x01,
Q_GARBUD = 0x02,
Q_ZHAR = 0x03,
Q_VEIL = 0x04,
Q_DIABLO = 0x05,
Q_BUTCHER = 0x06,
Q_LTBANNER = 0x07,
Q_BLIND = 0x08,
Q_BLOOD = 0x09,
Q_ANVIL = 0x0A,
Q_WARLORD = 0x0B,
Q_SKELKING = 0x0C,
Q_PWATER = 0x0D,
Q_SCHAMB = 0x0E,
Q_BETRAYER = 0x0F,
Q_GRAVE = 0x10,
Q_FARMER = 0x11,
Q_GIRL = 0x12,
Q_TRADER = 0x13,
Q_DEFILER = 0x14,
Q_NAKRUL = 0x15,
Q_CORNSTN = 0x16,
Q_JERSEY = 0x17,
Q_INVALID = -1,
} quest_id;
typedef enum quest_state {
QUEST_NOTAVAIL = 0, // quest did not spawn this game
QUEST_INIT = 1, // quest has spawned, waiting to trigger
QUEST_ACTIVE = 2, // quest is currently in progress
QUEST_DONE = 3 // quest log closed and finished
} quest_state;
typedef enum quest_gametype {
QUEST_SINGLE = 0,
QUEST_ANY = 1,
QUEST_MULTI = 2,
} quest_gametype;
typedef enum quest_mush_state {
QS_INIT = 0,
QS_TOMESPAWNED = 1,
QS_TOMEGIVEN = 2,
QS_MUSHSPAWNED = 3,
QS_MUSHPICKED = 4,
QS_MUSHGIVEN = 5,
QS_BRAINSPAWNED = 6,
QS_BRAINGIVEN = 7,
} quest_mush_state;
typedef enum _unique_items {
UITEM_CLEAVER = 0x0,
UITEM_SKCROWN = 0x1,
UITEM_INFRARING = 0x2,
UITEM_OPTAMULET = 0x3,
UITEM_TRING = 0x4,
UITEM_HARCREST = 0x5,
UITEM_STEELVEIL = 0x6,
UITEM_ARMOFVAL = 0x7,
UITEM_GRISWOLD = 0x8,
UITEM_BOVINE = 0x9,
UITEM_RIFTBOW = 0xA,
UITEM_NEEDLER = 0xB,
UITEM_CELESTBOW = 0xC,
UITEM_DEADLYHUNT = 0xD,
UITEM_BOWOFDEAD = 0xE,
UITEM_BLKOAKBOW = 0xF,
UITEM_FLAMEDART = 0x10,
UITEM_FLESHSTING = 0x11,
UITEM_WINDFORCE = 0x12,
UITEM_EAGLEHORN = 0x13,
UITEM_GONNAGALDIRK = 0x14,
UITEM_DEFENDER = 0x15,
UITEM_GRYPHONCLAW = 0x16,
UITEM_BLACKRAZOR = 0x17,
UITEM_GIBBOUSMOON = 0x18,
UITEM_ICESHANK = 0x19,
UITEM_EXECUTIONER = 0x1A,
UITEM_BONESAW = 0x1B,
UITEM_SHADHAWK = 0x1C,
UITEM_WIZSPIKE = 0x1D,
UITEM_LGTSABRE = 0x1E,
UITEM_FALCONTALON = 0x1F,
UITEM_INFERNO = 0x20,
UITEM_DOOMBRINGER = 0x21,
UITEM_GRIZZLY = 0x22,
UITEM_GRANDFATHER = 0x23,
UITEM_MANGLER = 0x24,
UITEM_SHARPBEAK = 0x25,
UITEM_BLOODLSLAYER = 0x26,
UITEM_CELESTAXE = 0x27,
UITEM_WICKEDAXE = 0x28,
UITEM_STONECLEAV = 0x29,
UITEM_AGUHATCHET = 0x2A,
UITEM_HELLSLAYER = 0x2B,
UITEM_MESSERREAVER = 0x2C,
UITEM_CRACKRUST = 0x2D,
UITEM_JHOLMHAMM = 0x2E,
UITEM_CIVERBS = 0x2F,
UITEM_CELESTSTAR = 0x30,
UITEM_BARANSTAR = 0x31,
UITEM_GNARLROOT = 0x32,
UITEM_CRANBASH = 0x33,
UITEM_SCHAEFHAMM = 0x34,
UITEM_DREAMFLANGE = 0x35,
UITEM_STAFFOFSHAD = 0x36,
UITEM_IMMOLATOR = 0x37,
UITEM_STORMSPIRE = 0x38,
UITEM_GLEAMSONG = 0x39,
UITEM_THUNDERCALL = 0x3A,
UITEM_PROTECTOR = 0x3B,
UITEM_NAJPUZZLE = 0x3C,
UITEM_MINDCRY = 0x3D,
UITEM_RODOFONAN = 0x3E,
UITEM_SPIRITSHELM = 0x3F,
UITEM_THINKINGCAP = 0x40,
UITEM_OVERLORDHELM = 0x41,
UITEM_FOOLSCREST = 0x42,
UITEM_GOTTERDAM = 0x43,
UITEM_ROYCIRCLET = 0x44,
UITEM_TORNFLESH = 0x45,
UITEM_GLADBANE = 0x46,
UITEM_RAINCLOAK = 0x47,
UITEM_LEATHAUT = 0x48,
UITEM_WISDWRAP = 0x49,
UITEM_SPARKMAIL = 0x4A,
UITEM_SCAVCARAP = 0x4B,
UITEM_NIGHTSCAPE = 0x4C,
UITEM_NAJPLATE = 0x4D,
UITEM_DEMONSPIKE = 0x4E,
UITEM_DEFLECTOR = 0x4F,
UITEM_SKULLSHLD = 0x50,
UITEM_DRAGONBRCH = 0x51,
UITEM_BLKOAKSHLD = 0x52,
UITEM_HOLYDEF = 0x53,
UITEM_STORMSHLD = 0x54,
UITEM_BRAMBLE = 0x55,
UITEM_REGHA = 0x56,
UITEM_BLEEDER = 0x57,
UITEM_CONSTRICT = 0x58,
UITEM_ENGAGE = 0x59,
UITEM_INVALID = 0x5A,
} _unique_items;
typedef enum plr_class {
PC_WARRIOR,
PC_ROGUE,
PC_SORCERER,
PC_MONK,
PC_BARD,
PC_BARBARIAN,
NUM_CLASSES
} plr_class;
typedef enum _walk_path {
WALK_NE = 0x1,
WALK_NW = 0x2,
WALK_SE = 0x3,
WALK_SW = 0x4,
WALK_N = 0x5,
WALK_E = 0x6,
WALK_S = 0x7,
WALK_W = 0x8,
WALK_NONE = -1,
} _walk_path;
// Logical equipment locations
typedef enum inv_body_loc {
INVLOC_HEAD = 0,
INVLOC_RING_LEFT = 1,
INVLOC_RING_RIGHT = 2,
INVLOC_AMULET = 3,
INVLOC_HAND_LEFT = 4,
INVLOC_HAND_RIGHT = 5,
INVLOC_CHEST = 6,
NUM_INVLOC,
} inv_body_loc;
typedef enum inv_item {
INVITEM_HEAD = 0,
INVITEM_RING_LEFT = 1,
INVITEM_RING_RIGHT = 2,
INVITEM_AMULET = 3,
INVITEM_HAND_LEFT = 4,
INVITEM_HAND_RIGHT = 5,
INVITEM_CHEST = 6,
INVITEM_INV_FIRST = 7,
INVITEM_INV_LAST = 46,
INVITEM_BELT_FIRST = 47,
INVITEM_BELT_LAST = 54,
NUM_INVELEM
} inv_item;
// identifiers for each of the inventory squares
// see https://github.com/sanctuary/graphics/blob/master/inventory.png
typedef enum inv_xy_slot {
SLOTXY_HEAD_FIRST = 0,
SLOTXY_HEAD_LAST = 3,
SLOTXY_RING_LEFT = 4,
SLOTXY_RING_RIGHT = 5,
SLOTXY_AMULET = 6,
SLOTXY_HAND_LEFT_FIRST = 7,
SLOTXY_HAND_LEFT_LAST = 12,
SLOTXY_HAND_RIGHT_FIRST = 13,
SLOTXY_HAND_RIGHT_LAST = 18,
SLOTXY_CHEST_FIRST = 19,
SLOTXY_CHEST_LAST = 24,
// regular inventory
SLOTXY_INV_FIRST = 25,
SLOTXY_INV_LAST = 64,
// belt items
SLOTXY_BELT_FIRST = 65,
SLOTXY_BELT_LAST = 72,
NUM_XY_SLOTS = 73
} inv_xy_slot;
typedef enum player_graphic {
PFILE_STAND = 1 << 0,
PFILE_WALK = 1 << 1,
PFILE_ATTACK = 1 << 2,
PFILE_HIT = 1 << 3,
PFILE_LIGHTNING = 1 << 4,
PFILE_FIRE = 1 << 5,
PFILE_MAGIC = 1 << 6,
PFILE_DEATH = 1 << 7,
PFILE_BLOCK = 1 << 8,
// everything except PFILE_DEATH
// 0b1_0111_1111
PFILE_NONDEATH = 0x17F
} player_graphic;
typedef enum anim_weapon_id {
ANIM_ID_UNARMED = 0x00,
ANIM_ID_UNARMED_SHIELD = 0x01,
ANIM_ID_SWORD = 0x02,
ANIM_ID_SWORD_SHIELD = 0x03,
ANIM_ID_BOW = 0x04,
ANIM_ID_AXE = 0x05,
ANIM_ID_MACE = 0x06,
ANIM_ID_MACE_SHIELD = 0x07,
ANIM_ID_STAFF = 0x08
} anim_weapon_id;
typedef enum anim_armor_id {
ANIM_ID_LIGHT_ARMOR = 0x00,
ANIM_ID_MEDIUM_ARMOR = 0x10,
ANIM_ID_HEAVY_ARMOR = 0x20
} anim_armor_id;
typedef enum shrine_gametype {
SHRINETYPE_ANY = 0,
SHRINETYPE_SINGLE = 1,
SHRINETYPE_MULTI = 2,
} shrine_gametype;
typedef enum shrine_type {
SHRINE_MYSTERIOUS = 0,
SHRINE_HIDDEN = 1,
SHRINE_GLOOMY = 2,
SHRINE_WEIRD = 3,
SHRINE_MAGICAL = 4,
SHRINE_STONE = 5,
SHRINE_RELIGIOUS = 6,
SHRINE_ENCHANTED = 7,
SHRINE_THAUMATURGIC = 8,
SHRINE_FASCINATING = 9,
SHRINE_CRYPTIC = 10,
SHRINE_MAGICAL2 = 11,
SHRINE_ELDRITCH = 12,
SHRINE_EERIE = 13,
SHRINE_DIVINE = 14,
SHRINE_HOLY = 15,
SHRINE_SACRED = 16,
SHRINE_SPIRITUAL = 17,
SHRINE_SPOOKY = 18,
SHRINE_ABANDONED = 19,
SHRINE_CREEPY = 20,
SHRINE_QUIET = 21,
SHRINE_SECLUDED = 22,
SHRINE_ORNATE = 23,
SHRINE_GLIMMERING = 24,
SHRINE_TAINTED = 25,
SHRINE_OILY = 26,
SHRINE_GLOWING = 27,
SHRINE_MENDICANT = 28,
SHRINE_SPARKLING = 29,
SHRINE_TOWN = 30,
SHRINE_SHIMMERING = 31,
SHRINE_SOLAR = 32,
SHRINE_MURPHYS = 33,
NUM_SHRINETYPE
} shrine_type;
typedef enum dlrg_flag {
DLRG_HDOOR = 0x01,
DLRG_VDOOR = 0x02,
DLRG_CHAMBER = 0x40,
DLRG_PROTECTED = 0x80,
} dlrg_flag;
typedef enum conn_type {
SELCONN_TCP,
SELCONN_UDP,
SELCONN_LOOPBACK,
} conn_type;
DEVILUTION_END_NAMESPACE