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.
796 lines
18 KiB
796 lines
18 KiB
/** |
|
* @file enums.h |
|
* |
|
* Various global enumerators. |
|
*/ |
|
|
|
#include <stdint.h> |
|
|
|
namespace devilution { |
|
|
|
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 dungeon_type : int8_t { |
|
DTYPE_TOWN = 0x0, |
|
DTYPE_CATHEDRAL = 0x1, |
|
DTYPE_CATACOMBS = 0x2, |
|
DTYPE_CAVES = 0x3, |
|
DTYPE_HELL = 0x4, |
|
DTYPE_NEST = 0x5, |
|
DTYPE_CRYPT = 0x6, |
|
DTYPE_NONE = -1, |
|
} 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 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 _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, |
|
SELHERO_CONTINUE, |
|
SELHERO_CONNECT, |
|
SELHERO_PREVIOUS, |
|
} _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, |
|
ATTRIB_MAG, |
|
ATTRIB_DEX, |
|
ATTRIB_VIT, |
|
} attribute_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_ZT, |
|
SELCONN_TCP, |
|
SELCONN_LOOPBACK, |
|
} conn_type; |
|
|
|
}
|
|
|