mirror of
https://github.com/diasurgical/devilution.git
synced 2025-07-23 04:23:01 +02:00
3551 lines
76 KiB
C
3551 lines
76 KiB
C
/**
|
|
* @file enums.h
|
|
*
|
|
* Various global enumerators.
|
|
*/
|
|
|
|
typedef enum item_quality {
|
|
ITEM_QUALITY_NORMAL = 0,
|
|
ITEM_QUALITY_MAGIC = 1,
|
|
ITEM_QUALITY_UNIQUE = 2,
|
|
} item_quality;
|
|
|
|
typedef enum unique_base_item {
|
|
UITYPE_NONE = 0x0,
|
|
UITYPE_SHORTBOW = 0x1,
|
|
UITYPE_LONGBOW = 0x2,
|
|
UITYPE_HUNTBOW = 0x3,
|
|
UITYPE_COMPBOW = 0x4,
|
|
UITYPE_WARBOW = 0x5,
|
|
UITYPE_BATTLEBOW = 0x6,
|
|
UITYPE_DAGGER = 0x7,
|
|
UITYPE_FALCHION = 0x8,
|
|
UITYPE_CLAYMORE = 0x9,
|
|
UITYPE_BROADSWR = 0xA,
|
|
UITYPE_SABRE = 0xB,
|
|
UITYPE_SCIMITAR = 0xC,
|
|
UITYPE_LONGSWR = 0xD,
|
|
UITYPE_BASTARDSWR = 0xE,
|
|
UITYPE_TWOHANDSWR = 0xF,
|
|
UITYPE_GREATSWR = 0x10,
|
|
UITYPE_CLEAVER = 0x11,
|
|
UITYPE_LARGEAXE = 0x12,
|
|
UITYPE_BROADAXE = 0x13,
|
|
UITYPE_SMALLAXE = 0x14,
|
|
UITYPE_BATTLEAXE = 0x15,
|
|
UITYPE_GREATAXE = 0x16,
|
|
UITYPE_MACE = 0x17,
|
|
UITYPE_MORNSTAR = 0x18,
|
|
UITYPE_SPIKCLUB = 0x19,
|
|
UITYPE_MAUL = 0x1A,
|
|
UITYPE_WARHAMMER = 0x1B,
|
|
UITYPE_FLAIL = 0x1C,
|
|
UITYPE_LONGSTAFF = 0x1D,
|
|
UITYPE_SHORTSTAFF = 0x1E,
|
|
UITYPE_COMPSTAFF = 0x1F,
|
|
UITYPE_QUARSTAFF = 0x20,
|
|
UITYPE_WARSTAFF = 0x21,
|
|
UITYPE_SKULLCAP = 0x22,
|
|
UITYPE_HELM = 0x23,
|
|
UITYPE_GREATHELM = 0x24,
|
|
UITYPE_CROWN = 0x25,
|
|
UITYPE_38 = 0x26,
|
|
UITYPE_RAGS = 0x27,
|
|
UITYPE_STUDARMOR = 0x28,
|
|
UITYPE_CLOAK = 0x29,
|
|
UITYPE_ROBE = 0x2A,
|
|
UITYPE_CHAINMAIL = 0x2B,
|
|
UITYPE_LEATHARMOR = 0x2C,
|
|
UITYPE_BREASTPLATE = 0x2D,
|
|
UITYPE_CAPE = 0x2E,
|
|
UITYPE_PLATEMAIL = 0x2F,
|
|
UITYPE_FULLPLATE = 0x30,
|
|
UITYPE_BUCKLER = 0x31,
|
|
UITYPE_SMALLSHIELD = 0x32,
|
|
UITYPE_LARGESHIELD = 0x33,
|
|
UITYPE_KITESHIELD = 0x34,
|
|
UITYPE_GOTHSHIELD = 0x35,
|
|
UITYPE_RING = 0x36,
|
|
UITYPE_55 = 0x37,
|
|
UITYPE_AMULET = 0x38,
|
|
UITYPE_SKCROWN = 0x39,
|
|
UITYPE_INFRARING = 0x3A,
|
|
UITYPE_OPTAMULET = 0x3B,
|
|
UITYPE_TRING = 0x3C,
|
|
UITYPE_HARCREST = 0x3D,
|
|
UITYPE_MAPOFDOOM = 0x3E,
|
|
UITYPE_ELIXIR = 0x3F,
|
|
UITYPE_ARMOFVAL = 0x40,
|
|
UITYPE_STEELVEIL = 0x41,
|
|
UITYPE_GRISWOLD = 0x42,
|
|
UITYPE_LGTFORGE = 0x43,
|
|
UITYPE_LAZSTAFF = 0x44,
|
|
#ifdef HELLFIRE
|
|
UITYPE_BOVINE = 0x45,
|
|
#endif
|
|
UITYPE_INVALID = -1,
|
|
} unique_base_item;
|
|
|
|
typedef enum item_effect_type {
|
|
IPL_TOHIT = 0x0,
|
|
IPL_TOHIT_CURSE = 0x1,
|
|
IPL_DAMP = 0x2,
|
|
IPL_DAMP_CURSE = 0x3,
|
|
IPL_TOHIT_DAMP = 0x4,
|
|
IPL_TOHIT_DAMP_CURSE = 0x5,
|
|
IPL_ACP = 0x6,
|
|
IPL_ACP_CURSE = 0x7,
|
|
IPL_FIRERES = 0x8,
|
|
IPL_LIGHTRES = 0x9,
|
|
IPL_MAGICRES = 0xA,
|
|
IPL_ALLRES = 0xB,
|
|
IPL_SPLCOST = 0xC, /* only used in beta */
|
|
IPL_SPLDUR = 0xD, /* only used in beta */
|
|
IPL_SPLLVLADD = 0xE,
|
|
IPL_CHARGES = 0xF,
|
|
IPL_FIREDAM = 0x10,
|
|
IPL_LIGHTDAM = 0x11,
|
|
IPL_STR = 0x13,
|
|
IPL_STR_CURSE = 0x14,
|
|
IPL_MAG = 0x15,
|
|
IPL_MAG_CURSE = 0x16,
|
|
IPL_DEX = 0x17,
|
|
IPL_DEX_CURSE = 0x18,
|
|
IPL_VIT = 0x19,
|
|
IPL_VIT_CURSE = 0x1A,
|
|
IPL_ATTRIBS = 0x1B,
|
|
IPL_ATTRIBS_CURSE = 0x1C,
|
|
IPL_GETHIT_CURSE = 0x1D,
|
|
IPL_GETHIT = 0x1E,
|
|
IPL_LIFE = 0x1F,
|
|
IPL_LIFE_CURSE = 0x20,
|
|
IPL_MANA = 0x21,
|
|
IPL_MANA_CURSE = 0x22,
|
|
IPL_DUR = 0x23,
|
|
IPL_DUR_CURSE = 0x24,
|
|
IPL_INDESTRUCTIBLE = 0x25,
|
|
IPL_LIGHT = 0x26,
|
|
IPL_LIGHT_CURSE = 0x27,
|
|
IPL_MULT_ARROWS = 0x29, /* only used in hellfire */
|
|
IPL_FIRE_ARROWS = 0x2A,
|
|
IPL_LIGHT_ARROWS = 0x2B,
|
|
IPL_INVCURS = 0x2C,
|
|
IPL_THORNS = 0x2D,
|
|
IPL_NOMANA = 0x2E,
|
|
IPL_NOHEALPLR = 0x2F,
|
|
IPL_FIREBALL = 0x32, /* only used in hellfire */
|
|
IPL_ABSHALFTRAP = 0x34,
|
|
IPL_KNOCKBACK = 0x35,
|
|
IPL_NOHEALMON = 0x36,
|
|
IPL_STEALMANA = 0x37,
|
|
IPL_STEALLIFE = 0x38,
|
|
IPL_TARGAC = 0x39,
|
|
IPL_FASTATTACK = 0x3A,
|
|
IPL_FASTRECOVER = 0x3B,
|
|
IPL_FASTBLOCK = 0x3C,
|
|
IPL_DAMMOD = 0x3D,
|
|
IPL_RNDARROWVEL = 0x3E,
|
|
IPL_SETDAM = 0x3F,
|
|
IPL_SETDUR = 0x40,
|
|
IPL_NOMINSTR = 0x41,
|
|
IPL_SPELL = 0x42,
|
|
IPL_FASTSWING = 0x43,
|
|
IPL_ONEHAND = 0x44,
|
|
IPL_3XDAMVDEM = 0x45,
|
|
IPL_ALLRESZERO = 0x46,
|
|
IPL_DRAINLIFE = 0x48,
|
|
IPL_RNDSTEALLIFE = 0x49,
|
|
IPL_INFRAVISION = 0x4A,
|
|
IPL_SETAC = 0x4B,
|
|
IPL_ADDACLIFE = 0x4C,
|
|
IPL_ADDMANAAC = 0x4D,
|
|
IPL_FIRERESCLVL = 0x4E,
|
|
IPL_AC_CURSE = 0x4F,
|
|
#ifdef HELLFIRE
|
|
IPL_FIRERES_CURSE = 0x50,
|
|
IPL_LIGHTRES_CURSE = 0x51,
|
|
IPL_MAGICRES_CURSE = 0x52,
|
|
IPL_ALLRES_CURSE = 0x53,
|
|
IPL_DEVASTATION = 0x54,
|
|
IPL_DECAY = 0x55,
|
|
IPL_PERIL = 0x56,
|
|
IPL_JESTERS = 0x57,
|
|
IPL_CRYSTALLINE = 0x58,
|
|
IPL_DOPPELGANGER = 0x59,
|
|
IPL_ACDEMON = 0x5A,
|
|
IPL_ACUNDEAD = 0x5B,
|
|
IPL_MANATOLIFE = 0x5C,
|
|
IPL_LIFETOMANA = 0x5D,
|
|
#endif
|
|
IPL_INVALID = -1,
|
|
} item_effect_type;
|
|
|
|
typedef enum affix_item_type {
|
|
PLT_MISC = 0x1,
|
|
PLT_BOW = 0x10,
|
|
PLT_STAFF = 0x100,
|
|
PLT_WEAP = 0x1000,
|
|
PLT_SHLD = 0x10000,
|
|
PLT_ARMO = 0x100000,
|
|
} affix_item_type;
|
|
|
|
/// Item graphic IDs; frame_num-11 of objcurs.cel.
|
|
typedef enum item_cursor_graphic {
|
|
ICURS_POTION_OF_FULL_MANA = 0,
|
|
ICURS_SCROLL_OF = 1,
|
|
ICURS_GOLD_SMALL = 4,
|
|
ICURS_GOLD_MEDIUM = 5,
|
|
ICURS_GOLD_LARGE = 6,
|
|
ICURS_RING_OF_TRUTH = 10,
|
|
ICURS_RING = 12,
|
|
ICURS_SPECTRAL_ELIXIR = 15,
|
|
ICURS_GOLDEN_ELIXIR = 17,
|
|
ICURS_EMPYREAN_BAND = 18,
|
|
ICURS_EAR_SORCEROR = 19,
|
|
ICURS_EAR_WARRIOR = 20,
|
|
ICURS_EAR_ROGUE = 21,
|
|
ICURS_BLOOD_STONE = 25,
|
|
#ifdef HELLFIRE
|
|
ICURS_OIL = 30,
|
|
#endif
|
|
ICURS_ELIXIR_OF_VITALITY = 31,
|
|
ICURS_POTION_OF_HEALING = 32,
|
|
ICURS_POTION_OF_FULL_REJUVENATION = 33,
|
|
ICURS_ELIXIR_OF_MAGIC = 34,
|
|
ICURS_POTION_OF_FULL_HEALING = 35,
|
|
ICURS_ELIXIR_OF_DEXTERITY = 36,
|
|
ICURS_POTION_OF_REJUVENATION = 37,
|
|
ICURS_ELIXIR_OF_STRENGTH = 38,
|
|
ICURS_POTION_OF_MANA = 39,
|
|
ICURS_BRAIN = 40,
|
|
ICURS_OPTIC_AMULET = 44,
|
|
ICURS_AMULET = 45,
|
|
ICURS_DAGGER = 51,
|
|
ICURS_BLADE = 56,
|
|
ICURS_BASTARD_SWORD = 57,
|
|
ICURS_MACE = 59,
|
|
ICURS_LONG_SWORD = 60,
|
|
ICURS_BROAD_SWORD = 61,
|
|
ICURS_FALCHION = 62,
|
|
ICURS_MORNING_STAR = 63,
|
|
ICURS_SHORT_SWORD = 64,
|
|
ICURS_CLAYMORE = 65,
|
|
ICURS_CLUB = 66,
|
|
ICURS_SABRE = 67,
|
|
ICURS_SPIKED_CLUB = 70,
|
|
ICURS_SCIMITAR = 72,
|
|
ICURS_FULL_HELM = 75,
|
|
ICURS_MAGIC_ROCK = 76,
|
|
ICURS_THE_UNDEAD_CROWN = 78,
|
|
ICURS_HELM = 82,
|
|
ICURS_BUCKLER = 83,
|
|
ICURS_VIEL_OF_STEEL = 85,
|
|
ICURS_BOOK_GREY = 86,
|
|
ICURS_BOOK_RED = 87,
|
|
ICURS_BOOK_BLUE = 88,
|
|
ICURS_BLACK_MUSHROOM = 89,
|
|
ICURS_SKULL_CAP = 90,
|
|
ICURS_CAP = 91,
|
|
ICURS_HARLEQUIN_CREST = 93,
|
|
ICURS_CROWN = 95,
|
|
ICURS_MAP_OF_THE_STARS = 96,
|
|
ICURS_FUNGAL_TOME = 97,
|
|
ICURS_GREAT_HELM = 98,
|
|
ICURS_BATTLE_AXE = 101,
|
|
ICURS_HUNTERS_BOW = 102,
|
|
ICURS_FIELD_PLATE = 103,
|
|
ICURS_SMALL_SHIELD = 105,
|
|
ICURS_CLEAVER = 106,
|
|
ICURS_STUDDED_LEATHER_ARMOR = 107,
|
|
ICURS_SHORT_STAFF = 109,
|
|
ICURS_TWO_HANDED_SWORD = 110,
|
|
ICURS_CHAIN_MAIL = 111,
|
|
ICURS_SMALL_AXE = 112,
|
|
ICURS_KITE_SHIELD = 113,
|
|
ICURS_SCALE_MAIL = 114,
|
|
ICURS_SHORT_BOW = 118,
|
|
ICURS_LONG_WAR_BOW = 119,
|
|
ICURS_WAR_HAMMER = 121,
|
|
ICURS_MAUL = 122,
|
|
ICURS_LONG_STAFF = 123,
|
|
ICURS_WAR_STAFF = 124,
|
|
ICURS_TAVERN_SIGN = 126,
|
|
ICURS_HARD_LEATHER_ARMOR = 127,
|
|
ICURS_RAGS = 128,
|
|
ICURS_QUILTED_ARMOR = 129,
|
|
ICURS_FLAIL = 131,
|
|
ICURS_TOWER_SHIELD = 132,
|
|
ICURS_COMPOSITE_BOW = 133,
|
|
ICURS_GREAT_SWORD = 134,
|
|
ICURS_LEATHER_ARMOR = 135,
|
|
ICURS_SPLINT_MAIL = 136,
|
|
ICURS_ROBE = 137,
|
|
ICURS_ANVIL_OF_FURY = 140,
|
|
ICURS_BROAD_AXE = 141,
|
|
ICURS_LARGE_AXE = 142,
|
|
ICURS_GREAT_AXE = 143,
|
|
ICURS_AXE = 144,
|
|
ICURS_LARGE_SHIELD = 147,
|
|
ICURS_GOTHIC_SHIELD = 148,
|
|
ICURS_CLOAK = 149,
|
|
ICURS_CAPE = 150,
|
|
ICURS_FULL_PLATE_MAIL = 151,
|
|
ICURS_GOTHIC_PLATE = 152,
|
|
ICURS_BREAST_PLATE = 153,
|
|
ICURS_RING_MAIL = 154,
|
|
ICURS_STAFF_OF_LAZARUS = 155,
|
|
ICURS_ARKAINES_VALOR = 157,
|
|
ICURS_SHORT_WAR_BOW = 165,
|
|
ICURS_COMPOSITE_STAFF = 166,
|
|
ICURS_SHORT_BATTLE_BOW = 167,
|
|
ICURS_GOLD = 168,
|
|
#ifdef HELLFIRE
|
|
ICURS_AURIC_AMULET = 180,
|
|
ICURS_RUNE_BOMB = 187,
|
|
ICURS_THEODORE = 188,
|
|
ICURS_TORN_NOTE_1 = 189,
|
|
ICURS_TORN_NOTE_2 = 190,
|
|
ICURS_TORN_NOTE_3 = 191,
|
|
ICURS_RECONSTRUCTED_NOTE = 192,
|
|
ICURS_RUNE_OF_FIRE = 193,
|
|
ICURS_GREATER_RUNE_OF_FIRE = 194,
|
|
ICURS_RUNE_OF_LIGHTNING = 195,
|
|
ICURS_GREATER_RUNE_OF_LIGHTNING = 196,
|
|
ICURS_RUNE_OF_STONE = 197,
|
|
ICURS_GREY_SUIT = 198,
|
|
ICURS_BROWN_SUIT = 199,
|
|
ICURS_BOVINE = 226,
|
|
#endif
|
|
} item_cursor_graphic;
|
|
|
|
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,
|
|
#ifdef HELLFIRE
|
|
IS_STING1,
|
|
IS_FBALLBOW,
|
|
#endif
|
|
IS_QUESTDN,
|
|
IS_ARMRFKD,
|
|
IS_BARLFIRE,
|
|
IS_BARREL,
|
|
#ifdef HELLFIRE
|
|
IS_POPPOP8,
|
|
IS_POPPOP5,
|
|
IS_POPPOP3,
|
|
IS_POPPOP2,
|
|
#endif
|
|
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,
|
|
#ifdef HELLFIRE
|
|
LS_NESTXPLD,
|
|
#endif
|
|
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,
|
|
#ifdef HELLFIRE
|
|
LS_LMAG,
|
|
#endif
|
|
#ifndef SPAWN
|
|
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,
|
|
#endif
|
|
TSFX_BMAID31,
|
|
#ifndef SPAWN
|
|
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,
|
|
#endif
|
|
TSFX_SMITH44,
|
|
#ifndef SPAWN
|
|
TSFX_SMITH45,
|
|
TSFX_SMITH46,
|
|
TSFX_SMITH47,
|
|
TSFX_SMITH48,
|
|
TSFX_SMITH49,
|
|
TSFX_SMITH50,
|
|
TSFX_SMITH51,
|
|
TSFX_SMITH52,
|
|
TSFX_SMITH53,
|
|
TSFX_SMITH54,
|
|
TSFX_SMITH55,
|
|
TSFX_SMITH56,
|
|
#endif
|
|
TSFX_COW1,
|
|
TSFX_COW2,
|
|
#ifdef HELLFIRE
|
|
TSFX_COW7,
|
|
TSFX_COW8,
|
|
#endif
|
|
#ifndef SPAWN
|
|
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,
|
|
#endif
|
|
TSFX_DRUNK27,
|
|
#ifndef SPAWN
|
|
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,
|
|
#endif
|
|
TSFX_HEALER37,
|
|
#ifndef SPAWN
|
|
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,
|
|
#endif
|
|
TSFX_PEGBOY32,
|
|
#ifndef SPAWN
|
|
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,
|
|
#endif
|
|
TSFX_STORY25,
|
|
#ifndef SPAWN
|
|
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,
|
|
#endif
|
|
TSFX_TAVERN0,
|
|
#ifndef SPAWN
|
|
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,
|
|
#endif
|
|
TSFX_TAVERN36,
|
|
#ifndef SPAWN
|
|
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,
|
|
#endif
|
|
TSFX_WITCH38,
|
|
#ifndef SPAWN
|
|
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,
|
|
#endif
|
|
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,
|
|
#ifndef SPAWN
|
|
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,
|
|
#endif
|
|
PS_WARR96B,
|
|
PS_WARR97,
|
|
PS_WARR98,
|
|
PS_WARR99,
|
|
#ifndef SPAWN
|
|
PS_WARR100,
|
|
PS_WARR101,
|
|
PS_WARR102,
|
|
#endif
|
|
#ifdef HELLFIRE
|
|
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,
|
|
#endif
|
|
#ifndef SPAWN
|
|
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,
|
|
#endif
|
|
#ifdef HELLFIRE
|
|
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,
|
|
#endif
|
|
} _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_SORCEROR = 0x40,
|
|
sfx_LOADED = 0x80,
|
|
} sfx_flag;
|
|
|
|
typedef enum item_equip_type {
|
|
ILOC_NONE = 0x0,
|
|
ILOC_ONEHAND = 0x1,
|
|
ILOC_TWOHAND = 0x2,
|
|
ILOC_ARMOR = 0x3,
|
|
ILOC_HELM = 0x4,
|
|
ILOC_RING = 0x5,
|
|
ILOC_AMULET = 0x6,
|
|
ILOC_UNEQUIPABLE = 0x7,
|
|
ILOC_BELT = 0x8,
|
|
ILOC_INVALID = -1,
|
|
} item_equip_type;
|
|
|
|
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,
|
|
#ifdef HELLFIRE
|
|
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,
|
|
#endif
|
|
} 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,
|
|
#ifdef HELLFIRE
|
|
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,
|
|
#endif
|
|
MFILE_NULL,
|
|
MFILE_NONE = 0xFF, // 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.
|
|
} missile_graphic_id;
|
|
|
|
typedef enum _mai_id {
|
|
AI_ZOMBIE = 0,
|
|
AI_FAT = 1,
|
|
AI_SKELSD = 2,
|
|
AI_SKELBOW = 3,
|
|
AI_SCAV = 4,
|
|
AI_RHINO = 5,
|
|
AI_GOATMC = 6,
|
|
AI_GOATBOW = 7,
|
|
AI_FALLEN = 8,
|
|
AI_MAGMA = 9,
|
|
AI_SKELKING = 10,
|
|
AI_BAT = 11,
|
|
AI_GARG = 12,
|
|
AI_CLEAVER = 13,
|
|
AI_SUCC = 14,
|
|
AI_SNEAK = 15,
|
|
AI_STORM = 16,
|
|
AI_FIREMAN = 17,
|
|
AI_GARBUD = 18,
|
|
AI_ACID = 19,
|
|
AI_ACIDUNIQ = 20,
|
|
AI_GOLUM = 21,
|
|
AI_ZHAR = 22,
|
|
AI_SNOTSPIL = 23,
|
|
AI_SNAKE = 24,
|
|
AI_COUNSLR = 25,
|
|
AI_MEGA = 26,
|
|
AI_DIABLO = 27,
|
|
AI_LAZURUS = 28,
|
|
AI_LAZHELP = 29,
|
|
AI_LACHDAN = 30,
|
|
AI_WARLORD = 31,
|
|
#ifdef HELLFIRE
|
|
AI_FIREBAT = 32,
|
|
AI_TORCHANT = 33,
|
|
AI_HORKDMN = 34,
|
|
AI_LICH = 35,
|
|
AI_ARCHLICH = 36,
|
|
AI_PSYCHORB = 37,
|
|
AI_NECROMORB = 38,
|
|
AI_BONEDEMON = 39,
|
|
#endif
|
|
} _mai_id;
|
|
|
|
typedef enum _mc_id {
|
|
MC_UNDEAD = 0,
|
|
MC_DEMON = 1,
|
|
MC_ANIMAL = 2,
|
|
} _mc_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;
|
|
|
|
typedef enum _monster_id {
|
|
MT_NZOMBIE = 0x0,
|
|
MT_BZOMBIE = 0x1,
|
|
MT_GZOMBIE = 0x2,
|
|
MT_YZOMBIE = 0x3,
|
|
MT_RFALLSP = 0x4,
|
|
MT_DFALLSP = 0x5,
|
|
MT_YFALLSP = 0x6,
|
|
MT_BFALLSP = 0x7,
|
|
MT_WSKELAX = 0x8,
|
|
MT_TSKELAX = 0x9,
|
|
MT_RSKELAX = 0xA,
|
|
MT_XSKELAX = 0xB,
|
|
MT_RFALLSD = 0xC,
|
|
MT_DFALLSD = 0xD,
|
|
MT_YFALLSD = 0xE,
|
|
MT_BFALLSD = 0xF,
|
|
MT_NSCAV = 0x10,
|
|
MT_BSCAV = 0x11,
|
|
MT_WSCAV = 0x12,
|
|
MT_YSCAV = 0x13,
|
|
MT_WSKELBW = 0x14,
|
|
MT_TSKELBW = 0x15,
|
|
MT_RSKELBW = 0x16,
|
|
MT_XSKELBW = 0x17,
|
|
MT_WSKELSD = 0x18,
|
|
MT_TSKELSD = 0x19,
|
|
MT_RSKELSD = 0x1A,
|
|
MT_XSKELSD = 0x1B,
|
|
MT_INVILORD = 0x1C,
|
|
MT_SNEAK = 0x1D,
|
|
MT_STALKER = 0x1E,
|
|
MT_UNSEEN = 0x1F,
|
|
MT_ILLWEAV = 0x20,
|
|
MT_LRDSAYTR = 0x21,
|
|
MT_NGOATMC = 0x22,
|
|
MT_BGOATMC = 0x23,
|
|
MT_RGOATMC = 0x24,
|
|
MT_GGOATMC = 0x25,
|
|
MT_FIEND = 0x26,
|
|
MT_BLINK = 0x27,
|
|
MT_GLOOM = 0x28,
|
|
MT_FAMILIAR = 0x29,
|
|
MT_NGOATBW = 0x2A,
|
|
MT_BGOATBW = 0x2B,
|
|
MT_RGOATBW = 0x2C,
|
|
MT_GGOATBW = 0x2D,
|
|
MT_NACID = 0x2E,
|
|
MT_RACID = 0x2F,
|
|
MT_BACID = 0x30,
|
|
MT_XACID = 0x31,
|
|
MT_SKING = 0x32,
|
|
MT_CLEAVER = 0x33,
|
|
MT_FAT = 0x34,
|
|
MT_MUDMAN = 0x35,
|
|
MT_TOAD = 0x36,
|
|
MT_FLAYED = 0x37,
|
|
MT_WYRM = 0x38,
|
|
MT_CAVSLUG = 0x39,
|
|
MT_DVLWYRM = 0x3A,
|
|
MT_DEVOUR = 0x3B,
|
|
MT_NMAGMA = 0x3C,
|
|
MT_YMAGMA = 0x3D,
|
|
MT_BMAGMA = 0x3E,
|
|
MT_WMAGMA = 0x3F,
|
|
MT_HORNED = 0x40,
|
|
MT_MUDRUN = 0x41,
|
|
MT_FROSTC = 0x42,
|
|
MT_OBLORD = 0x43,
|
|
MT_BONEDMN = 0x44,
|
|
MT_REDDTH = 0x45,
|
|
MT_LTCHDMN = 0x46,
|
|
MT_UDEDBLRG = 0x47,
|
|
MT_INCIN = 0x48,
|
|
MT_FLAMLRD = 0x49,
|
|
MT_DOOMFIRE = 0x4A,
|
|
MT_HELLBURN = 0x4B,
|
|
MT_STORM = 0x4C,
|
|
MT_RSTORM = 0x4D,
|
|
MT_STORML = 0x4E,
|
|
MT_MAEL = 0x4F,
|
|
MT_BIGFALL = 0x50,
|
|
MT_WINGED = 0x51,
|
|
MT_GARGOYLE = 0x52,
|
|
MT_BLOODCLW = 0x53,
|
|
MT_DEATHW = 0x54,
|
|
MT_MEGA = 0x55,
|
|
MT_GUARD = 0x56,
|
|
MT_VTEXLRD = 0x57,
|
|
MT_BALROG = 0x58,
|
|
MT_NSNAKE = 0x59,
|
|
MT_RSNAKE = 0x5A,
|
|
MT_BSNAKE = 0x5B,
|
|
MT_GSNAKE = 0x5C,
|
|
MT_NBLACK = 0x5D,
|
|
MT_RTBLACK = 0x5E,
|
|
MT_BTBLACK = 0x5F,
|
|
MT_RBLACK = 0x60,
|
|
MT_UNRAV = 0x61,
|
|
MT_HOLOWONE = 0x62,
|
|
MT_PAINMSTR = 0x63,
|
|
MT_REALWEAV = 0x64,
|
|
MT_SUCCUBUS = 0x65,
|
|
MT_SNOWWICH = 0x66,
|
|
MT_HLSPWN = 0x67,
|
|
MT_SOLBRNR = 0x68,
|
|
MT_COUNSLR = 0x69,
|
|
MT_MAGISTR = 0x6A,
|
|
MT_CABALIST = 0x6B,
|
|
MT_ADVOCATE = 0x6C,
|
|
MT_GOLEM = 0x6D,
|
|
MT_DIABLO = 0x6E,
|
|
MT_DARKMAGE = 0x6F,
|
|
#ifdef HELLFIRE
|
|
MT_HELLBOAR = 0x70,
|
|
MT_STINGER = 0x71,
|
|
MT_PSYCHORB = 0x72,
|
|
MT_ARACHNON = 0x73,
|
|
MT_FELLTWIN = 0x74,
|
|
MT_HORKSPWN = 0x75,
|
|
MT_VENMTAIL = 0x76,
|
|
MT_NECRMORB = 0x77,
|
|
MT_SPIDLORD = 0x78,
|
|
MT_LASHWORM = 0x79,
|
|
MT_TORCHANT = 0x7A,
|
|
MT_HORKDMN = 0x7B,
|
|
MT_DEFILER = 0x7C,
|
|
MT_GRAVEDIG = 0x7D,
|
|
MT_TOMBRAT = 0x7E,
|
|
MT_FIREBAT = 0x7F,
|
|
MT_SKLWING = 0x80,
|
|
MT_LICH = 0x81,
|
|
MT_CRYPTDMN = 0x82,
|
|
MT_HELLBAT = 0x83,
|
|
MT_BONEDEMN = 0x84,
|
|
MT_ARCHLICH = 0x85,
|
|
MT_BICLOPS = 0x86,
|
|
MT_FLESTHNG = 0x87,
|
|
MT_REAPER = 0x88,
|
|
MT_NAKRUL = 0x89,
|
|
NUM_MTYPES,
|
|
#else
|
|
NUM_MTYPES = 0x6F, /// BUGFIX the count is off by one
|
|
#endif
|
|
} _monster_id;
|
|
|
|
// 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,
|
|
#ifdef HELLFIRE
|
|
UMT_HORKDMN = 10,
|
|
UMT_DEFILER = 11,
|
|
UMT_NAKRUL = 12,
|
|
#endif
|
|
} _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 monster_resistance {
|
|
RESIST_MAGIC = 0x01,
|
|
RESIST_FIRE = 0x02,
|
|
RESIST_LIGHTNING = 0x04,
|
|
IMMUNE_MAGIC = 0x08,
|
|
IMMUNE_FIRE = 0x10,
|
|
IMMUNE_LIGHTNING = 0x20,
|
|
IMMUNE_NULL_40 = 0x40,
|
|
IMMUNE_ACID = 0x80,
|
|
} monster_resistance;
|
|
|
|
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 = 0x0,
|
|
TEXT_KING2 = 0x1,
|
|
TEXT_KING3 = 0x2,
|
|
TEXT_KING4 = 0x3,
|
|
TEXT_KING5 = 0x4,
|
|
TEXT_KING6 = 0x5,
|
|
TEXT_KING7 = 0x6,
|
|
TEXT_KING8 = 0x7,
|
|
TEXT_KING9 = 0x8,
|
|
TEXT_KING10 = 0x9,
|
|
TEXT_KING11 = 0xA,
|
|
TEXT_BANNER1 = 0xB,
|
|
TEXT_BANNER2 = 0xC,
|
|
TEXT_BANNER3 = 0xD,
|
|
TEXT_BANNER4 = 0xE,
|
|
TEXT_BANNER5 = 0xF,
|
|
TEXT_BANNER6 = 0x10,
|
|
TEXT_BANNER7 = 0x11,
|
|
TEXT_BANNER8 = 0x12,
|
|
TEXT_BANNER9 = 0x13,
|
|
TEXT_BANNER10 = 0x14,
|
|
TEXT_BANNER11 = 0x15,
|
|
TEXT_BANNER12 = 0x16,
|
|
TEXT_VILE1 = 0x17,
|
|
TEXT_VILE2 = 0x18,
|
|
TEXT_VILE3 = 0x19,
|
|
TEXT_VILE4 = 0x1A,
|
|
TEXT_VILE5 = 0x1B,
|
|
TEXT_VILE6 = 0x1C,
|
|
TEXT_VILE7 = 0x1D,
|
|
TEXT_VILE8 = 0x1E,
|
|
TEXT_VILE9 = 0x1F,
|
|
TEXT_VILE10 = 0x20,
|
|
TEXT_VILE11 = 0x21,
|
|
TEXT_VILE12 = 0x22,
|
|
TEXT_VILE13 = 0x23,
|
|
TEXT_VILE14 = 0x24,
|
|
TEXT_POISON1 = 0x25,
|
|
TEXT_POISON2 = 0x26,
|
|
TEXT_POISON3 = 0x27,
|
|
TEXT_POISON4 = 0x28,
|
|
TEXT_POISON5 = 0x29,
|
|
TEXT_POISON6 = 0x2A,
|
|
TEXT_POISON7 = 0x2B,
|
|
TEXT_POISON8 = 0x2C,
|
|
TEXT_POISON9 = 0x2D,
|
|
TEXT_POISON10 = 0x2E,
|
|
TEXT_BONE1 = 0x2F,
|
|
TEXT_BONE2 = 0x30,
|
|
TEXT_BONE3 = 0x31,
|
|
TEXT_BONE4 = 0x32,
|
|
TEXT_BONE5 = 0x33,
|
|
TEXT_BONE6 = 0x34,
|
|
TEXT_BONE7 = 0x35,
|
|
TEXT_BONE8 = 0x36,
|
|
TEXT_BUTCH1 = 0x37,
|
|
TEXT_BUTCH2 = 0x38,
|
|
TEXT_BUTCH3 = 0x39,
|
|
TEXT_BUTCH4 = 0x3A,
|
|
TEXT_BUTCH5 = 0x3B,
|
|
TEXT_BUTCH6 = 0x3C,
|
|
TEXT_BUTCH7 = 0x3D,
|
|
TEXT_BUTCH8 = 0x3E,
|
|
TEXT_BUTCH9 = 0x3F,
|
|
TEXT_BUTCH10 = 0x40,
|
|
TEXT_BLIND1 = 0x41,
|
|
TEXT_BLIND2 = 0x42,
|
|
TEXT_BLIND3 = 0x43,
|
|
TEXT_BLIND4 = 0x44,
|
|
TEXT_BLIND5 = 0x45,
|
|
TEXT_BLIND6 = 0x46,
|
|
TEXT_BLIND7 = 0x47,
|
|
TEXT_BLIND8 = 0x48,
|
|
TEXT_VEIL1 = 0x49,
|
|
TEXT_VEIL2 = 0x4A,
|
|
TEXT_VEIL3 = 0x4B,
|
|
TEXT_VEIL4 = 0x4C,
|
|
TEXT_VEIL5 = 0x4D,
|
|
TEXT_VEIL6 = 0x4E,
|
|
TEXT_VEIL7 = 0x4F,
|
|
TEXT_VEIL8 = 0x50,
|
|
TEXT_VEIL9 = 0x51,
|
|
TEXT_VEIL10 = 0x52,
|
|
TEXT_VEIL11 = 0x53,
|
|
TEXT_ANVIL1 = 0x54,
|
|
TEXT_ANVIL2 = 0x55,
|
|
TEXT_ANVIL3 = 0x56,
|
|
TEXT_ANVIL4 = 0x57,
|
|
TEXT_ANVIL5 = 0x58,
|
|
TEXT_ANVIL6 = 0x59,
|
|
TEXT_ANVIL7 = 0x5A,
|
|
TEXT_ANVIL8 = 0x5B,
|
|
TEXT_ANVIL9 = 0x5C,
|
|
TEXT_ANVIL10 = 0x5D,
|
|
TEXT_BLOOD1 = 0x5E,
|
|
TEXT_BLOOD2 = 0x5F,
|
|
TEXT_BLOOD3 = 0x60,
|
|
TEXT_BLOOD4 = 0x61,
|
|
TEXT_BLOOD5 = 0x62,
|
|
TEXT_BLOOD6 = 0x63,
|
|
TEXT_BLOOD7 = 0x64,
|
|
TEXT_BLOOD8 = 0x65,
|
|
TEXT_WARLRD1 = 0x66,
|
|
TEXT_WARLRD2 = 0x67,
|
|
TEXT_WARLRD3 = 0x68,
|
|
TEXT_WARLRD4 = 0x69,
|
|
TEXT_WARLRD5 = 0x6A,
|
|
TEXT_WARLRD6 = 0x6B,
|
|
TEXT_WARLRD7 = 0x6C,
|
|
TEXT_WARLRD8 = 0x6D,
|
|
TEXT_WARLRD9 = 0x6E,
|
|
TEXT_INFRA1 = 0x6F,
|
|
TEXT_INFRA2 = 0x70,
|
|
TEXT_INFRA3 = 0x71,
|
|
TEXT_INFRA4 = 0x72,
|
|
TEXT_INFRA5 = 0x73,
|
|
TEXT_INFRA6 = 0x74,
|
|
TEXT_INFRA7 = 0x75,
|
|
TEXT_INFRA8 = 0x76,
|
|
TEXT_INFRA9 = 0x77,
|
|
TEXT_INFRA10 = 0x78,
|
|
TEXT_MUSH1 = 0x79,
|
|
TEXT_MUSH2 = 0x7A,
|
|
TEXT_MUSH3 = 0x7B,
|
|
TEXT_MUSH4 = 0x7C,
|
|
TEXT_MUSH5 = 0x7D,
|
|
TEXT_MUSH6 = 0x7E,
|
|
TEXT_MUSH7 = 0x7F,
|
|
TEXT_MUSH8 = 0x80,
|
|
TEXT_MUSH9 = 0x81,
|
|
TEXT_MUSH10 = 0x82,
|
|
TEXT_MUSH11 = 0x83,
|
|
TEXT_MUSH12 = 0x84,
|
|
TEXT_MUSH13 = 0x85,
|
|
TEXT_DOOM1 = 0x86,
|
|
TEXT_DOOM2 = 0x87,
|
|
TEXT_DOOM3 = 0x88,
|
|
TEXT_DOOM4 = 0x89,
|
|
TEXT_DOOM5 = 0x8A,
|
|
TEXT_DOOM6 = 0x8B,
|
|
TEXT_DOOM7 = 0x8C,
|
|
TEXT_DOOM8 = 0x8D,
|
|
TEXT_DOOM9 = 0x8E,
|
|
TEXT_DOOM10 = 0x8F,
|
|
TEXT_GARBUD1 = 0x90,
|
|
TEXT_GARBUD2 = 0x91,
|
|
TEXT_GARBUD3 = 0x92,
|
|
TEXT_GARBUD4 = 0x93,
|
|
TEXT_ZHAR1 = 0x94,
|
|
TEXT_ZHAR2 = 0x95,
|
|
TEXT_STORY1 = 0x96,
|
|
TEXT_STORY2 = 0x97,
|
|
TEXT_STORY3 = 0x98,
|
|
TEXT_STORY4 = 0x99,
|
|
TEXT_STORY5 = 0x9A,
|
|
TEXT_STORY6 = 0x9B,
|
|
TEXT_STORY7 = 0x9C,
|
|
TEXT_STORY9 = 0x9D,
|
|
TEXT_STORY10 = 0x9E,
|
|
TEXT_STORY11 = 0x9F,
|
|
TEXT_OGDEN1 = 0xA0,
|
|
TEXT_OGDEN2 = 0xA1,
|
|
TEXT_OGDEN3 = 0xA2,
|
|
TEXT_OGDEN4 = 0xA3,
|
|
TEXT_OGDEN5 = 0xA4,
|
|
TEXT_OGDEN6 = 0xA5,
|
|
TEXT_OGDEN8 = 0xA6,
|
|
TEXT_OGDEN9 = 0xA7,
|
|
TEXT_OGDEN10 = 0xA8,
|
|
TEXT_PEPIN1 = 0xA9,
|
|
TEXT_PEPIN2 = 0xAA,
|
|
TEXT_PEPIN3 = 0xAB,
|
|
TEXT_PEPIN4 = 0xAC,
|
|
TEXT_PEPIN5 = 0xAD,
|
|
TEXT_PEPIN6 = 0xAE,
|
|
TEXT_PEPIN7 = 0xAF,
|
|
TEXT_PEPIN9 = 0xB0,
|
|
TEXT_PEPIN10 = 0xB1,
|
|
TEXT_PEPIN11 = 0xB2,
|
|
TEXT_GILLIAN1 = 0xB3,
|
|
TEXT_GILLIAN2 = 0xB4,
|
|
TEXT_GILLIAN3 = 0xB5,
|
|
TEXT_GILLIAN4 = 0xB6,
|
|
TEXT_GILLIAN5 = 0xB7,
|
|
TEXT_GILLIAN6 = 0xB8,
|
|
TEXT_GILLIAN7 = 0xB9,
|
|
TEXT_GILLIAN9 = 0xBA,
|
|
TEXT_GILLIAN10 = 0xBB,
|
|
TEXT_GRISWOLD1 = 0xBC,
|
|
TEXT_GRISWOLD2 = 0xBD,
|
|
TEXT_GRISWOLD3 = 0xBE,
|
|
TEXT_GRISWOLD4 = 0xBF,
|
|
TEXT_GRISWOLD5 = 0xC0,
|
|
TEXT_GRISWOLD6 = 0xC1,
|
|
TEXT_GRISWOLD7 = 0xC2,
|
|
TEXT_GRISWOLD8 = 0xC3,
|
|
TEXT_GRISWOLD9 = 0xC4,
|
|
TEXT_GRISWOLD10 = 0xC5,
|
|
TEXT_GRISWOLD12 = 0xC6,
|
|
TEXT_GRISWOLD13 = 0xC7,
|
|
TEXT_FARNHAM1 = 0xC8,
|
|
TEXT_FARNHAM2 = 0xC9,
|
|
TEXT_FARNHAM3 = 0xCA,
|
|
TEXT_FARNHAM4 = 0xCB,
|
|
TEXT_FARNHAM5 = 0xCC,
|
|
TEXT_FARNHAM6 = 0xCD,
|
|
TEXT_FARNHAM8 = 0xCE,
|
|
TEXT_FARNHAM9 = 0xCF,
|
|
TEXT_FARNHAM10 = 0xD0,
|
|
TEXT_FARNHAM11 = 0xD1,
|
|
TEXT_FARNHAM12 = 0xD2,
|
|
TEXT_FARNHAM13 = 0xD3,
|
|
TEXT_ADRIA1 = 0xD4,
|
|
TEXT_ADRIA2 = 0xD5,
|
|
TEXT_ADRIA3 = 0xD6,
|
|
TEXT_ADRIA4 = 0xD7,
|
|
TEXT_ADRIA5 = 0xD8,
|
|
TEXT_ADRIA6 = 0xD9,
|
|
TEXT_ADRIA7 = 0xDA,
|
|
TEXT_ADRIA8 = 0xDB,
|
|
TEXT_ADRIA9 = 0xDC,
|
|
TEXT_ADRIA10 = 0xDD,
|
|
TEXT_ADRIA12 = 0xDE,
|
|
TEXT_ADRIA13 = 0xDF,
|
|
TEXT_WIRT1 = 0xE0,
|
|
TEXT_WIRT2 = 0xE1,
|
|
TEXT_WIRT3 = 0xE2,
|
|
TEXT_WIRT4 = 0xE3,
|
|
TEXT_WIRT5 = 0xE4,
|
|
TEXT_WIRT6 = 0xE5,
|
|
TEXT_WIRT7 = 0xE6,
|
|
TEXT_WIRT8 = 0xE7,
|
|
TEXT_WIRT9 = 0xE8,
|
|
TEXT_WIRT11 = 0xE9,
|
|
TEXT_WIRT12 = 0xEA,
|
|
TEXT_BONER = 0xEB,
|
|
TEXT_BLOODY = 0xEC,
|
|
TEXT_BLINDING = 0xED,
|
|
TEXT_BLOODWAR = 0xEE,
|
|
TEXT_MBONER = 0xEF,
|
|
TEXT_MBLOODY = 0xF0,
|
|
TEXT_MBLINDING = 0xF1,
|
|
TEXT_MBLOODWAR = 0xF2,
|
|
TEXT_RBONER = 0xF3,
|
|
TEXT_RBLOODY = 0xF4,
|
|
TEXT_RBLINDING = 0xF5,
|
|
TEXT_RBLOODWAR = 0xF6,
|
|
TEXT_COW1 = 0xF7,
|
|
TEXT_COW2 = 0xF8,
|
|
TEXT_BOOK11 = 0xF9,
|
|
TEXT_BOOK12 = 0xFA,
|
|
TEXT_BOOK13 = 0xFB,
|
|
TEXT_BOOK21 = 0xFC,
|
|
TEXT_BOOK22 = 0xFD,
|
|
TEXT_BOOK23 = 0xFE,
|
|
TEXT_BOOK31 = 0xFF,
|
|
TEXT_BOOK32 = 0x100,
|
|
TEXT_BOOK33 = 0x101,
|
|
TEXT_INTRO = 0x102,
|
|
#ifdef HELLFIRE
|
|
TEXT_HBONER = 0x103,
|
|
TEXT_HBLOODY = 0x104,
|
|
TEXT_HBLINDING = 0x105,
|
|
TEXT_HBLOODWAR = 0x106,
|
|
TEXT_BBONER = 0x107,
|
|
TEXT_BBLOODY = 0x108,
|
|
TEXT_BBLINDING = 0x109,
|
|
TEXT_BBLOODWAR = 0x10A,
|
|
TEXT_GRAVE1 = 0x10B,
|
|
TEXT_GRAVE2 = 0x10C,
|
|
TEXT_GRAVE3 = 0x10D,
|
|
TEXT_GRAVE4 = 0x10E,
|
|
TEXT_GRAVE5 = 0x10F,
|
|
TEXT_GRAVE6 = 0x110,
|
|
TEXT_GRAVE7 = 0x111,
|
|
TEXT_GRAVE8 = 0x112,
|
|
TEXT_GRAVE9 = 0x113,
|
|
TEXT_GRAVE10 = 0x114,
|
|
TEXT_FARMER1 = 0x115,
|
|
TEXT_FARMER2 = 0x116,
|
|
TEXT_FARMER3 = 0x117,
|
|
TEXT_FARMER4 = 0x118,
|
|
TEXT_FARMER5 = 0x119,
|
|
TEXT_GIRL1 = 0x11A,
|
|
TEXT_GIRL2 = 0x11B,
|
|
TEXT_GIRL3 = 0x11C,
|
|
TEXT_GIRL4 = 0x11D,
|
|
TEXT_DEFILER1 = 0x11E,
|
|
TEXT_DEFILER2 = 0x11F,
|
|
TEXT_DEFILER3 = 0x120,
|
|
TEXT_DEFILER4 = 0x121,
|
|
TEXT_DEFILER5 = 0x122,
|
|
TEXT_NAKRUL1 = 0x123,
|
|
TEXT_NAKRUL2 = 0x124,
|
|
TEXT_NAKRUL3 = 0x125,
|
|
TEXT_NAKRUL4 = 0x126,
|
|
TEXT_NAKRUL5 = 0x127,
|
|
TEXT_CORNSTN = 0x128,
|
|
TEXT_JERSEY1 = 0x129,
|
|
TEXT_JERSEY2 = 0x12A,
|
|
TEXT_JERSEY3 = 0x12B,
|
|
TEXT_JERSEY4 = 0x12C,
|
|
TEXT_JERSEY5 = 0x12D,
|
|
TEXT_JERSEY6 = 0x12E,
|
|
TEXT_JERSEY7 = 0x12F,
|
|
TEXT_JERSEY8 = 0x130,
|
|
TEXT_JERSEY9 = 0x131,
|
|
TEXT_TRADER = 0x132,
|
|
TEXT_FARMER6 = 0x133,
|
|
TEXT_FARMER7 = 0x134,
|
|
TEXT_FARMER8 = 0x135,
|
|
TEXT_FARMER9 = 0x136,
|
|
TEXT_FARMER10 = 0x137,
|
|
TEXT_JERSEY10 = 0x138,
|
|
TEXT_JERSEY11 = 0x139,
|
|
TEXT_JERSEY12 = 0x13A,
|
|
TEXT_JERSEY13 = 0x13B,
|
|
TEXT_SKLJRN = 0x13C,
|
|
TEXT_BOOK4 = 0x13D,
|
|
TEXT_BOOK5 = 0x13E,
|
|
TEXT_BOOK6 = 0x13F,
|
|
TEXT_BOOK7 = 0x140,
|
|
TEXT_BOOK8 = 0x141,
|
|
TEXT_BOOK9 = 0x142,
|
|
TEXT_BOOKA = 0x143,
|
|
TEXT_BOOKB = 0x144,
|
|
TEXT_BOOKC = 0x145,
|
|
TEXT_OBOOKA = 0x146,
|
|
TEXT_OBOOKB = 0x147,
|
|
TEXT_OBOOKC = 0x148,
|
|
TEXT_MBOOKA = 0x149,
|
|
TEXT_MBOOKB = 0x14A,
|
|
TEXT_MBOOKC = 0x14B,
|
|
TEXT_RBOOKA = 0x14C,
|
|
TEXT_RBOOKB = 0x14D,
|
|
TEXT_RBOOKC = 0x14E,
|
|
TEXT_BBOOKA = 0x14F,
|
|
TEXT_BBOOKB = 0x150,
|
|
TEXT_BBOOKC = 0x151,
|
|
#endif
|
|
} _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,
|
|
#ifdef HELLFIRE
|
|
DTYPE_NEST = 0x5,
|
|
DTYPE_CRYPT = 0x6,
|
|
#endif
|
|
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;
|
|
|
|
/*
|
|
Looks like someone treated hex values as binary, so 0x10 came after 0x01, that's why we have 1 and 16, they did the same thing with affix_item_type
|
|
*/
|
|
typedef enum goodorevil {
|
|
GOE_ANY = 0x00,
|
|
GOE_EVIL = 0x01,
|
|
GOE_GOOD = 0x10,
|
|
} goodorevil;
|
|
|
|
/*
|
|
First 5 bits store level
|
|
6th bit stores onlygood flag
|
|
7th bit stores uper15 flag - uper means unique percent, this flag is true for unique monsters and loot from them has 15% to become unique
|
|
8th bit stores uper1 flag - this is loot from normal monsters, which has 1% to become unique
|
|
9th bit stores info if item is unique
|
|
10th bit stores info if item is a basic one from griswold
|
|
11th bit stores info if item is a premium one from griswold
|
|
12th bit stores info if item is from wirt
|
|
13th bit stores info if item is from adria
|
|
14th bit stores info if item is from pepin
|
|
15th bit stores pregen flag
|
|
|
|
combining CF_UPER15 and CF_UPER1 flags (CF_USEFUL) is used to mark potions and town portal scrolls created on the ground
|
|
CF_TOWN is combining all store flags and indicates if item has been bought from a NPC
|
|
*/
|
|
typedef enum icreateinfo_flag {
|
|
CF_LEVEL = (1 << 6) - 1,
|
|
CF_ONLYGOOD = 1 << 6,
|
|
CF_UPER15 = 1 << 7,
|
|
CF_UPER1 = 1 << 8,
|
|
CF_UNIQUE = 1 << 9,
|
|
CF_SMITH = 1 << 10,
|
|
CF_SMITHPREMIUM = 1 << 11,
|
|
CF_BOY = 1 << 12,
|
|
CF_WITCH = 1 << 13,
|
|
CF_HEALER = 1 << 14,
|
|
CF_PREGEN = 1 << 15,
|
|
|
|
CF_USEFUL = CF_UPER15 | CF_UPER1,
|
|
CF_TOWN = CF_SMITH | CF_SMITHPREMIUM | CF_BOY | CF_WITCH | CF_HEALER,
|
|
} icreateinfo_flag;
|
|
|
|
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,
|
|
#ifdef HELLFIRE
|
|
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,
|
|
#endif
|
|
} 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 _copyprot_results {
|
|
COPYPROT_OK = 1,
|
|
COPYPROT_CANCEL = 2,
|
|
} _copyprot_results;
|
|
|
|
typedef enum text_color {
|
|
COL_WHITE = 0x0,
|
|
COL_BLUE = 0x1,
|
|
COL_RED = 0x2,
|
|
COL_GOLD = 0x3,
|
|
} text_color;
|
|
|
|
typedef enum item_color {
|
|
ICOL_WHITE = PAL16_YELLOW + 5,
|
|
ICOL_BLUE = PAL16_BLUE + 5,
|
|
ICOL_RED = PAL16_RED + 5,
|
|
} item_color;
|
|
|
|
typedef enum _difficulty {
|
|
DIFF_NORMAL = 0x0,
|
|
DIFF_NIGHTMARE = 0x1,
|
|
DIFF_HELL = 0x2,
|
|
NUM_DIFFICULTIES = 0x3,
|
|
} _difficulty;
|
|
|
|
typedef enum MON_MODE {
|
|
MM_STAND = 0,
|
|
MM_WALK = 1,
|
|
MM_WALK2 = 2,
|
|
MM_WALK3 = 3,
|
|
MM_ATTACK = 4,
|
|
MM_GOTHIT = 5,
|
|
MM_DEATH = 6,
|
|
MM_SATTACK = 7,
|
|
MM_FADEIN = 8,
|
|
MM_FADEOUT = 9,
|
|
MM_RATTACK = 10,
|
|
MM_SPSTAND = 11,
|
|
MM_RSPATTACK = 12,
|
|
MM_DELAY = 13,
|
|
MM_CHARGE = 14,
|
|
MM_STONE = 15,
|
|
MM_HEAL = 16,
|
|
MM_TALK = 17,
|
|
} MON_MODE;
|
|
|
|
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 PLR_MODE {
|
|
PM_STAND = 0,
|
|
PM_WALK = 1,
|
|
PM_WALK2 = 2,
|
|
PM_WALK3 = 3,
|
|
PM_ATTACK = 4,
|
|
PM_RATTACK = 5,
|
|
PM_BLOCK = 6,
|
|
PM_GOTHIT = 7,
|
|
PM_DEATH = 8,
|
|
PM_SPELL = 9,
|
|
PM_NEWLVL = 10,
|
|
PM_QUIT = 11,
|
|
} PLR_MODE;
|
|
|
|
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,
|
|
#ifdef HELLFIRE
|
|
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,
|
|
#endif
|
|
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,
|
|
#ifdef HELLFIRE
|
|
CMD_DLEVEL_17,
|
|
CMD_DLEVEL_18,
|
|
CMD_DLEVEL_19,
|
|
CMD_DLEVEL_20,
|
|
CMD_DLEVEL_21,
|
|
CMD_DLEVEL_22,
|
|
CMD_DLEVEL_23,
|
|
CMD_DLEVEL_24,
|
|
#endif
|
|
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,
|
|
#ifdef HELLFIRE
|
|
CMD_REFLECT,
|
|
CMD_NAKRUL,
|
|
CMD_OPENHIVE,
|
|
CMD_OPENCRYPT,
|
|
#else
|
|
CMD_NOVA,
|
|
CMD_SETSHIELD,
|
|
CMD_REMSHIELD,
|
|
#endif
|
|
FAKE_CMD_SETID,
|
|
FAKE_CMD_DROPID,
|
|
NUM_CMDS,
|
|
} _cmd_id;
|
|
|
|
typedef enum _talker_id {
|
|
TOWN_SMITH = 0x0,
|
|
TOWN_HEALER = 0x1,
|
|
TOWN_DEADGUY = 0x2,
|
|
TOWN_TAVERN = 0x3,
|
|
TOWN_STORY = 0x4,
|
|
TOWN_DRUNK = 0x5,
|
|
TOWN_WITCH = 0x6,
|
|
TOWN_BMAID = 0x7,
|
|
TOWN_PEGBOY = 0x8,
|
|
TOWN_COW = 0x9,
|
|
#ifdef HELLFIRE
|
|
TOWN_FARMER = 0xA,
|
|
TOWN_GIRL = 0xB,
|
|
TOWN_COWFARM = 0xC,
|
|
#else
|
|
TOWN_PRIEST = 0xA,
|
|
#endif
|
|
} _talker_id;
|
|
|
|
typedef enum _music_id {
|
|
TMUSIC_TOWN,
|
|
TMUSIC_L1,
|
|
TMUSIC_L2,
|
|
TMUSIC_L3,
|
|
TMUSIC_L4,
|
|
#ifdef HELLFIRE
|
|
TMUSIC_L5,
|
|
TMUSIC_L6,
|
|
#endif
|
|
TMUSIC_INTRO,
|
|
NUM_MUSIC,
|
|
} _music_id;
|
|
|
|
typedef enum _mainmenu_selections {
|
|
MAINMENU_SINGLE_PLAYER = 1,
|
|
MAINMENU_MULTIPLAYER,
|
|
MAINMENU_REPLAY_INTRO,
|
|
#ifdef HELLFIRE
|
|
MAINMENU_SHOW_SUPPORT,
|
|
#endif
|
|
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_NULL_98 = 0x62,
|
|
} _object_id;
|
|
|
|
typedef enum item_misc_id {
|
|
IMISC_NONE = 0x0,
|
|
IMISC_USEFIRST = 0x1,
|
|
IMISC_FULLHEAL = 0x2,
|
|
IMISC_HEAL = 0x3,
|
|
IMISC_OLDHEAL = 0x4,
|
|
IMISC_DEADHEAL = 0x5,
|
|
IMISC_MANA = 0x6,
|
|
IMISC_FULLMANA = 0x7,
|
|
IMISC_POTEXP = 0x8, /* add experience */
|
|
IMISC_POTFORG = 0x9, /* remove experience */
|
|
IMISC_ELIXSTR = 0xA,
|
|
IMISC_ELIXMAG = 0xB,
|
|
IMISC_ELIXDEX = 0xC,
|
|
IMISC_ELIXVIT = 0xD,
|
|
IMISC_ELIXWEAK = 0xE, /* double check with alpha */
|
|
IMISC_ELIXDIS = 0xF,
|
|
IMISC_ELIXCLUM = 0x10,
|
|
IMISC_ELIXSICK = 0x11,
|
|
IMISC_REJUV = 0x12,
|
|
IMISC_FULLREJUV = 0x13,
|
|
IMISC_USELAST = 0x14,
|
|
IMISC_SCROLL = 0x15,
|
|
IMISC_SCROLLT = 0x16,
|
|
IMISC_STAFF = 0x17,
|
|
IMISC_BOOK = 0x18,
|
|
IMISC_RING = 0x19,
|
|
IMISC_AMULET = 0x1A,
|
|
IMISC_UNIQUE = 0x1B,
|
|
IMISC_FOOD = 0x1C, /* from demo/PSX */
|
|
IMISC_OILFIRST = 0x1D,
|
|
IMISC_OILOF = 0x1E, /* oils are beta or hellfire only */
|
|
IMISC_OILACC = 0x1F,
|
|
IMISC_OILMAST = 0x20,
|
|
IMISC_OILSHARP = 0x21,
|
|
IMISC_OILDEATH = 0x22,
|
|
IMISC_OILSKILL = 0x23,
|
|
IMISC_OILBSMTH = 0x24,
|
|
IMISC_OILFORT = 0x25,
|
|
IMISC_OILPERM = 0x26,
|
|
IMISC_OILHARD = 0x27,
|
|
IMISC_OILIMP = 0x28,
|
|
IMISC_OILLAST = 0x29,
|
|
IMISC_MAPOFDOOM = 0x2A,
|
|
IMISC_EAR = 0x2B,
|
|
IMISC_SPECELIX = 0x2C,
|
|
#ifdef HELLFIRE
|
|
IMISC_RUNEFIRST = 0x2E,
|
|
IMISC_RUNEF = 0x2F,
|
|
IMISC_RUNEL = 0x30,
|
|
IMISC_GR_RUNEL = 0x31,
|
|
IMISC_GR_RUNEF = 0x32,
|
|
IMISC_RUNES = 0x33,
|
|
IMISC_RUNELAST = 0x34,
|
|
IMISC_AURIC = 0x35,
|
|
IMISC_NOTE = 0x36,
|
|
#endif
|
|
IMISC_INVALID = -1,
|
|
} item_misc_id;
|
|
|
|
typedef enum item_type {
|
|
ITYPE_MISC = 0x0,
|
|
ITYPE_SWORD = 0x1,
|
|
ITYPE_AXE = 0x2,
|
|
ITYPE_BOW = 0x3,
|
|
ITYPE_MACE = 0x4,
|
|
ITYPE_SHIELD = 0x5,
|
|
ITYPE_LARMOR = 0x6,
|
|
ITYPE_HELM = 0x7,
|
|
ITYPE_MARMOR = 0x8,
|
|
ITYPE_HARMOR = 0x9,
|
|
ITYPE_STAFF = 0xA,
|
|
ITYPE_GOLD = 0xB,
|
|
ITYPE_RING = 0xC,
|
|
ITYPE_AMULET = 0xD,
|
|
ITYPE_FOOD = 0xE, /* used in demo */
|
|
ITYPE_NONE = -1,
|
|
} item_type;
|
|
|
|
typedef enum _item_indexes {
|
|
IDI_GOLD,
|
|
IDI_WARRIOR,
|
|
IDI_WARRSHLD,
|
|
IDI_WARRCLUB,
|
|
IDI_ROGUE,
|
|
IDI_SORCEROR,
|
|
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,
|
|
#ifdef HELLFIRE
|
|
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,
|
|
#endif
|
|
} _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,
|
|
#ifdef HELLFIRE
|
|
Q_GRAVE = 0x10,
|
|
Q_FARMER = 0x11,
|
|
Q_GIRL = 0x12,
|
|
Q_TRADER = 0x13,
|
|
Q_DEFILER = 0x14,
|
|
Q_NAKRUL = 0x15,
|
|
Q_CORNSTN = 0x16,
|
|
Q_JERSEY = 0x17,
|
|
#endif
|
|
Q_INVALID = -1,
|
|
} quest_id;
|
|
|
|
typedef enum quest_state {
|
|
QUEST_NOTAVAIL = 0,
|
|
QUEST_INIT = 1,
|
|
QUEST_ACTIVE = 2,
|
|
QUEST_DONE = 3
|
|
} 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 talk_id {
|
|
STORE_NONE = 0x0,
|
|
STORE_SMITH = 0x1,
|
|
STORE_SBUY = 0x2,
|
|
STORE_SSELL = 0x3,
|
|
STORE_SREPAIR = 0x4,
|
|
STORE_WITCH = 0x5,
|
|
STORE_WBUY = 0x6,
|
|
STORE_WSELL = 0x7,
|
|
STORE_WRECHARGE = 0x8,
|
|
STORE_NOMONEY = 0x9,
|
|
STORE_NOROOM = 0xA,
|
|
STORE_CONFIRM = 0xB,
|
|
STORE_BOY = 0xC,
|
|
STORE_BBOY = 0xD,
|
|
STORE_HEALER = 0xE,
|
|
STORE_STORY = 0xF,
|
|
STORE_HBUY = 0x10,
|
|
STORE_SIDENTIFY = 0x11,
|
|
STORE_SPBUY = 0x12,
|
|
STORE_GOSSIP = 0x13,
|
|
STORE_IDSHOW = 0x14,
|
|
STORE_TAVERN = 0x15,
|
|
STORE_DRUNK = 0x16,
|
|
STORE_BARMAID = 0x17,
|
|
} talk_id;
|
|
|
|
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,
|
|
#ifndef HELLFIRE
|
|
UITEM_LGTFORGE = 0x9,
|
|
#else
|
|
UITEM_BOVINE = 0x9,
|
|
#endif
|
|
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 = 0x0,
|
|
PC_ROGUE = 0x1,
|
|
PC_SORCERER = 0x2,
|
|
#ifdef HELLFIRE
|
|
PC_MONK = 0x3,
|
|
PC_BARD = 0x4,
|
|
PC_BARBARIAN = 0x5,
|
|
#endif
|
|
NUM_CLASSES
|
|
} plr_class;
|
|
|
|
typedef enum _ui_classes {
|
|
UI_WARRIOR = 0x0,
|
|
UI_ROGUE = 0x1,
|
|
UI_SORCERER = 0x2,
|
|
#ifdef HELLFIRE
|
|
UI_MONK = 0x3,
|
|
UI_BARD = 0x4,
|
|
UI_BARBARIAN = 0x5,
|
|
#endif
|
|
UI_NUM_CLASSES,
|
|
} _ui_classes;
|
|
|
|
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;
|
|
|
|
typedef enum player_weapon_type {
|
|
WT_MELEE = 0,
|
|
WT_RANGED = 1,
|
|
} player_weapon_type;
|
|
|
|
typedef enum item_class {
|
|
ICLASS_NONE = 0,
|
|
ICLASS_WEAPON = 1,
|
|
ICLASS_ARMOR = 2,
|
|
ICLASS_MISC = 3,
|
|
ICLASS_GOLD = 4,
|
|
ICLASS_QUEST = 5,
|
|
} item_class;
|
|
|
|
typedef enum item_drop_rate {
|
|
IDROP_NEVER = 0,
|
|
IDROP_REGULAR = 1,
|
|
IDROP_DOUBLE = 2,
|
|
} item_drop_rate;
|
|
|
|
typedef enum item_special_effect {
|
|
ISPL_NONE = 0x00000000,
|
|
ISPL_INFRAVISION = 0x00000001,
|
|
ISPL_RNDSTEALLIFE = 0x00000002,
|
|
ISPL_RNDARROWVEL = 0x00000004,
|
|
ISPL_FIRE_ARROWS = 0x00000008,
|
|
ISPL_FIREDAM = 0x00000010,
|
|
ISPL_LIGHTDAM = 0x00000020,
|
|
ISPL_DRAINLIFE = 0x00000040,
|
|
ISPL_UNKNOWN_1 = 0x00000080,
|
|
ISPL_NOHEALPLR = 0x00000100,
|
|
ISPL_MULT_ARROWS = 0x00000200,
|
|
ISPL_UNKNOWN_3 = 0x00000400,
|
|
ISPL_KNOCKBACK = 0x00000800,
|
|
ISPL_NOHEALMON = 0x00001000,
|
|
ISPL_STEALMANA_3 = 0x00002000,
|
|
ISPL_STEALMANA_5 = 0x00004000,
|
|
ISPL_STEALLIFE_3 = 0x00008000,
|
|
ISPL_STEALLIFE_5 = 0x00010000,
|
|
ISPL_QUICKATTACK = 0x00020000,
|
|
ISPL_FASTATTACK = 0x00040000,
|
|
ISPL_FASTERATTACK = 0x00080000,
|
|
ISPL_FASTESTATTACK = 0x00100000,
|
|
ISPL_FASTRECOVER = 0x00200000,
|
|
ISPL_FASTERRECOVER = 0x00400000,
|
|
ISPL_FASTESTRECOVER = 0x00800000,
|
|
ISPL_FASTBLOCK = 0x01000000,
|
|
ISPL_LIGHT_ARROWS = 0x02000000,
|
|
ISPL_THORNS = 0x04000000,
|
|
ISPL_NOMANA = 0x08000000,
|
|
ISPL_ABSHALFTRAP = 0x10000000,
|
|
ISPL_UNKNOWN_4 = 0x20000000,
|
|
ISPL_3XDAMVDEM = 0x40000000,
|
|
ISPL_ALLRESZERO = 0x80000000,
|
|
} item_special_effect;
|
|
|
|
typedef enum item_special_effect_hf {
|
|
ISPLHF_DEVASTATION = 0x01,
|
|
ISPLHF_DECAY = 0x02,
|
|
ISPLHF_PERIL = 0x04,
|
|
ISPLHF_JESTERS = 0x08,
|
|
ISPLHF_DOPPELGANGER = 0x10,
|
|
ISPLHF_ACDEMON = 0x20,
|
|
ISPLHF_ACUNDEAD = 0x40,
|
|
} item_special_effect_hf;
|
|
|
|
// 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,
|
|
#ifndef SPAWN
|
|
ANIM_ID_MEDIUM_ARMOR = 0x10,
|
|
ANIM_ID_HEAVY_ARMOR = 0x20
|
|
#endif
|
|
} 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,
|
|
#ifdef HELLFIRE
|
|
SHRINE_OILY = 26,
|
|
SHRINE_GLOWING = 27,
|
|
SHRINE_MENDICANT = 28,
|
|
SHRINE_SPARKLING = 29,
|
|
SHRINE_TOWN = 30,
|
|
SHRINE_SHIMMERING = 31,
|
|
SHRINE_SOLAR = 32,
|
|
SHRINE_MURPHYS = 33,
|
|
#endif
|
|
NUM_SHRINETYPE
|
|
} shrine_type;
|
|
|
|
typedef enum action_id {
|
|
ACTION_NONE = -1,
|
|
ACTION_ATTACK = 9,
|
|
ACTION_RATTACK = 10,
|
|
ACTION_SPELL = 12,
|
|
ACTION_OPERATE = 13,
|
|
ACTION_DISARM = 14,
|
|
ACTION_PICKUPITEM = 15, // put item in hand (inventory screen open)
|
|
ACTION_PICKUPAITEM = 16, // put item in inventory
|
|
ACTION_TALK = 17,
|
|
ACTION_OPERATETK = 18, // operate via telekinesis
|
|
ACTION_ATTACKMON = 20,
|
|
ACTION_ATTACKPLR = 21,
|
|
ACTION_RATTACKMON = 22,
|
|
ACTION_RATTACKPLR = 23,
|
|
ACTION_SPELLMON = 24,
|
|
ACTION_SPELLPLR = 25,
|
|
ACTION_SPELLWALL = 26,
|
|
} action_id;
|
|
|
|
typedef enum dlrg_flag {
|
|
DLRG_HDOOR = 0x01,
|
|
DLRG_VDOOR = 0x02,
|
|
DLRG_CHAMBER = 0x40,
|
|
DLRG_PROTECTED = 0x80,
|
|
} dlrg_flag;
|