From b1ffdca0a3180a5adff12ccfa993ea330b38593a Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Thu, 8 Apr 2021 20:21:36 +0200 Subject: [PATCH] :recycle: make better use of enums --- Source/diablo.cpp | 2 +- Source/diablo.h | 17 +-- Source/dthread.cpp | 2 +- Source/error.cpp | 12 +- Source/error.h | 70 ++++++++-- Source/gendung.h | 35 ++--- Source/items.cpp | 10 ++ Source/msg.cpp | 32 ++--- Source/msg.h | 317 ++++++++++++++++++++++++++++++--------------- Source/multi.cpp | 2 +- Source/multi.h | 2 +- Source/objects.cpp | 62 +++++++-- Source/objects.h | 12 +- Source/player.cpp | 4 +- Source/player.h | 14 ++ Source/trigs.cpp | 16 +-- enums.h | 251 +---------------------------------- 17 files changed, 417 insertions(+), 443 deletions(-) diff --git a/Source/diablo.cpp b/Source/diablo.cpp index 75bf66cb3..2a6a23645 100644 --- a/Source/diablo.cpp +++ b/Source/diablo.cpp @@ -42,7 +42,7 @@ bool gbNestArt; bool gbBard; bool gbBarbarian; int sgnTimeoutCurs; -char sgbMouseDown; +clicktype sgbMouseDown; int color_cycle_timer; int gnTickRate; WORD gnTickDelay = 50; diff --git a/Source/diablo.h b/Source/diablo.h index ac2c79087..c8e4078b7 100644 --- a/Source/diablo.h +++ b/Source/diablo.h @@ -5,16 +5,21 @@ */ #pragma once +#include + #include "pack.h" +#include "gendung.h" #ifdef _DEBUG #include "monstdat.h" #endif namespace devilution { -#ifdef __cplusplus -extern "C" { -#endif +enum clicktype : int8_t { + CLICK_NONE, + CLICK_LEFT, + CLICK_RIGHT, +}; #ifndef DEFAULT_WIDTH #define DEFAULT_WIDTH 640 @@ -45,7 +50,7 @@ extern bool gbCowQuest; extern bool gbNestArt; extern bool gbBard; extern bool gbBarbarian; -extern char sgbMouseDown; +extern clicktype sgbMouseDown; extern int gnTickRate; extern WORD gnTickDelay; @@ -82,8 +87,4 @@ extern int debug_mode_key_j; extern bool gbFriendlyMode; extern bool gbFriendlyFire; -#ifdef __cplusplus -} -#endif - } diff --git a/Source/dthread.cpp b/Source/dthread.cpp index e4ca05a4e..0e23cdaf1 100644 --- a/Source/dthread.cpp +++ b/Source/dthread.cpp @@ -39,7 +39,7 @@ static unsigned int dthread_handler(void *data) if (pkt) { if (pkt->dwSpaceLeft != MAX_PLRS) - multi_send_zero_packet(pkt->dwSpaceLeft, pkt->data[0], &pkt->data[8], *(DWORD *)&pkt->data[4]); + multi_send_zero_packet(pkt->dwSpaceLeft, static_cast<_cmd_id>(pkt->data[0]), &pkt->data[8], *(DWORD *)&pkt->data[4]); dwMilliseconds = 1000 * *(DWORD *)&pkt->data[4] / gdwDeltaBytesSec; if (dwMilliseconds >= 1) diff --git a/Source/error.cpp b/Source/error.cpp index 6c86c1355..252bda029 100644 --- a/Source/error.cpp +++ b/Source/error.cpp @@ -7,9 +7,9 @@ namespace devilution { -char msgtable[MAX_SEND_STR_LEN]; +diablo_message msgtable[MAX_SEND_STR_LEN]; DWORD msgdelay; -char msgflag; +diablo_message msgflag; char msgcnt; /** Maps from error_id to error message. */ @@ -71,7 +71,7 @@ const char *const MsgStrings[] = { "That which can break will.", }; -void InitDiabloMsg(char e) +void InitDiabloMsg(diablo_message e) { int i; @@ -95,9 +95,9 @@ void ClrDiabloMsg() int i; for (i = 0; i < sizeof(msgtable); i++) - msgtable[i] = 0; + msgtable[i] = EMSG_NONE; - msgflag = 0; + msgflag = EMSG_NONE; msgcnt = 0; } @@ -154,7 +154,7 @@ void DrawDiabloMsg(CelOutputBuffer out) if (msgdelay == 0) { msgcnt--; if (msgcnt == 0) { - msgflag = 0; + msgflag = EMSG_NONE; } else { msgflag = msgtable[msgcnt]; msgdelay = SDL_GetTicks(); diff --git a/Source/error.h b/Source/error.h index f3ddda773..55b9cdbb7 100644 --- a/Source/error.h +++ b/Source/error.h @@ -5,23 +5,75 @@ */ #pragma once +#include + #include "engine.h" namespace devilution { -#ifdef __cplusplus -extern "C" { -#endif +enum diablo_message : uint8_t { + EMSG_NONE, + EMSG_NO_AUTOMAP_IN_TOWN, + EMSG_NO_MULTIPLAYER_IN_DEMO, + EMSG_DIRECT_SOUND_FAILED, + EMSG_NOT_IN_SHAREWARE, + EMSG_NO_SPACE_TO_SAVE, + EMSG_NO_PAUSE_IN_TOWN, + EMSG_COPY_TO_HDD, + EMSG_DESYNC, + EMSG_NO_PAUSE_IN_MP, + EMSG_LOADING, + EMSG_SAVING, + EMSG_SHRINE_MYSTERIOUS, + EMSG_SHRINE_HIDDEN, + EMSG_SHRINE_GLOOMY, + EMSG_SHRINE_WEIRD, + EMSG_SHRINE_MAGICAL, + EMSG_SHRINE_STONE, + EMSG_SHRINE_RELIGIOUS, + EMSG_SHRINE_ENCHANTED, + EMSG_SHRINE_THAUMATURGIC, + EMSG_SHRINE_FASCINATING, + EMSG_SHRINE_CRYPTIC, + EMSG_SHRINE_UNUSED, + EMSG_SHRINE_ELDRITCH, + EMSG_SHRINE_EERIE, + EMSG_SHRINE_DIVINE, + EMSG_SHRINE_HOLY, + EMSG_SHRINE_SACRED, + EMSG_SHRINE_SPIRITUAL, + EMSG_SHRINE_SPOOKY1, + EMSG_SHRINE_SPOOKY2, + EMSG_SHRINE_ABANDONED, + EMSG_SHRINE_CREEPY, + EMSG_SHRINE_QUIET, + EMSG_SHRINE_SECLUDED, + EMSG_SHRINE_ORNATE, + EMSG_SHRINE_GLIMMERING, + EMSG_SHRINE_TAINTED1, + EMSG_SHRINE_TAINTED2, + EMSG_REQUIRES_LVL_8, + EMSG_REQUIRES_LVL_13, + EMSG_REQUIRES_LVL_17, + EMSG_BONECHAMB, + EMSG_SHRINE_OILY, + EMSG_SHRINE_GLOWING, + EMSG_SHRINE_MENDICANT, + EMSG_SHRINE_SPARKLING, + EMSG_SHRINE_TOWN, + EMSG_SHRINE_SHIMMERING, + EMSG_SHRINE_SOLAR1, + EMSG_SHRINE_SOLAR2, + EMSG_SHRINE_SOLAR3, + EMSG_SHRINE_SOLAR4, + EMSG_SHRINE_MURPHYS, +}; extern DWORD msgdelay; -extern char msgflag; +extern diablo_message msgflag; -void InitDiabloMsg(char e); +void InitDiabloMsg(diablo_message e); void ClrDiabloMsg(); void DrawDiabloMsg(CelOutputBuffer out); -#ifdef __cplusplus -} -#endif - } diff --git a/Source/gendung.h b/Source/gendung.h index 53e1cbdd2..666f10121 100644 --- a/Source/gendung.h +++ b/Source/gendung.h @@ -5,13 +5,22 @@ */ #pragma once +#include + namespace devilution { -#ifdef __cplusplus -extern "C" { -#endif +enum dungeon_type : int8_t { + DTYPE_TOWN, + DTYPE_CATHEDRAL, + DTYPE_CATACOMBS, + DTYPE_CAVES, + DTYPE_HELL, + DTYPE_NEST, + DTYPE_CRYPT, + DTYPE_NONE = -1, +}; -typedef struct ScrollStruct { +struct ScrollStruct { /** @brief X-offset of camera position. This usually corresponds to a negative version of plr[myplr]._pxoff */ Sint32 _sxoff; /** @brief Y-offset of camera position. This usually corresponds to a negative version of plr[myplr]._pyoff */ @@ -19,21 +28,21 @@ typedef struct ScrollStruct { Sint32 _sdx; Sint32 _sdy; Sint32 _sdir; -} ScrollStruct; +}; -typedef struct THEME_LOC { +struct THEME_LOC { Sint32 x; Sint32 y; Sint32 ttval; Sint32 width; Sint32 height; -} THEME_LOC; +}; -typedef struct MICROS { +struct MICROS { Uint16 mt[16]; -} MICROS; +}; -typedef struct ShadowStruct { +struct ShadowStruct { Uint8 strig; Uint8 s1; Uint8 s2; @@ -41,7 +50,7 @@ typedef struct ShadowStruct { Uint8 nv1; Uint8 nv2; Uint8 nv3; -} ShadowStruct; +}; extern BYTE dungeon[DMAXX][DMAXY]; extern BYTE pdungeon[DMAXX][DMAXY]; @@ -116,8 +125,4 @@ void DRLG_HoldThemeRooms(); BOOL SkipThemeRoom(int x, int y); void InitLevels(); -#ifdef __cplusplus -} -#endif - } diff --git a/Source/items.cpp b/Source/items.cpp index 36705b1a8..886e42a7d 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -3,12 +3,22 @@ * * Implementation of item functionality. */ +#include + #include #include "all.h" #include "options.h" namespace devilution { +enum anim_armor_id : uint8_t { + // clang-format off + ANIM_ID_LIGHT_ARMOR = 0x00, + ANIM_ID_MEDIUM_ARMOR = 0x10, + ANIM_ID_HEAVY_ARMOR = 0x20, + // clang-format on +}; + int itemactive[MAXITEMS]; BOOL uitemflag; int itemavail[MAXITEMS]; diff --git a/Source/msg.cpp b/Source/msg.cpp index b7ff06ae9..483863f79 100644 --- a/Source/msg.cpp +++ b/Source/msg.cpp @@ -502,7 +502,7 @@ void delta_leave_sync(BYTE bLevel) memcpy(&sgLocals[bLevel].automapsv, automapview, sizeof(automapview)); } -static void delta_sync_object(int oi, BYTE bCmd, BYTE bLevel) +static void delta_sync_object(int oi, _cmd_id bCmd, BYTE bLevel) { if (!gbIsMultiplayer) return; @@ -520,7 +520,7 @@ static BOOL delta_get_item(TCmdGItem *pI, BYTE bLevel) TCmdPItem *pD = sgLevels[bLevel].item; for (i = 0; i < MAXITEMS; i++, pD++) { - if (pD->bCmd == 0xFF || pD->wIndx != pI->wIndx || pD->wCI != pI->wCI || pD->dwSeed != pI->dwSeed) + if (pD->bCmd == CMD_INVALID || pD->wIndx != pI->wIndx || pD->wCI != pI->wCI || pD->dwSeed != pI->dwSeed) continue; if (pD->bCmd == CMD_WALKXY) { @@ -533,7 +533,7 @@ static BOOL delta_get_item(TCmdGItem *pI, BYTE bLevel) } if (pD->bCmd == CMD_ACK_PLRINFO) { sgbDeltaChanged = TRUE; - pD->bCmd = 0xFF; + pD->bCmd = CMD_INVALID; return TRUE; } @@ -545,7 +545,7 @@ static BOOL delta_get_item(TCmdGItem *pI, BYTE bLevel) pD = sgLevels[bLevel].item; for (i = 0; i < MAXITEMS; i++, pD++) { - if (pD->bCmd == 0xFF) { + if (pD->bCmd == CMD_INVALID) { sgbDeltaChanged = TRUE; pD->bCmd = CMD_WALKXY; pD->x = pI->x; @@ -829,7 +829,7 @@ void DeltaLoadLevel() deltaload = FALSE; } -void NetSendCmd(BOOL bHiPri, BYTE bCmd) +void NetSendCmd(BOOL bHiPri, _cmd_id bCmd) { TCmd cmd; @@ -854,7 +854,7 @@ void NetSendCmdGolem(BYTE mx, BYTE my, BYTE dir, BYTE menemy, int hp, BYTE cl) NetSendLoPri((BYTE *)&cmd, sizeof(cmd)); } -void NetSendCmdLoc(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y) +void NetSendCmdLoc(BOOL bHiPri, _cmd_id bCmd, BYTE x, BYTE y) { ALIGN_BY_1 TCmdLoc cmd; @@ -867,7 +867,7 @@ void NetSendCmdLoc(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y) NetSendLoPri((BYTE *)&cmd, sizeof(cmd)); } -void NetSendCmdLocParam1(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y, WORD wParam1) +void NetSendCmdLocParam1(BOOL bHiPri, _cmd_id bCmd, BYTE x, BYTE y, WORD wParam1) { TCmdLocParam1 cmd; @@ -881,7 +881,7 @@ void NetSendCmdLocParam1(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y, WORD wParam1) NetSendLoPri((BYTE *)&cmd, sizeof(cmd)); } -void NetSendCmdLocParam2(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y, WORD wParam1, WORD wParam2) +void NetSendCmdLocParam2(BOOL bHiPri, _cmd_id bCmd, BYTE x, BYTE y, WORD wParam1, WORD wParam2) { TCmdLocParam2 cmd; @@ -896,7 +896,7 @@ void NetSendCmdLocParam2(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y, WORD wParam1, W NetSendLoPri((BYTE *)&cmd, sizeof(cmd)); } -void NetSendCmdLocParam3(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y, WORD wParam1, WORD wParam2, WORD wParam3) +void NetSendCmdLocParam3(BOOL bHiPri, _cmd_id bCmd, BYTE x, BYTE y, WORD wParam1, WORD wParam2, WORD wParam3) { TCmdLocParam3 cmd; @@ -912,7 +912,7 @@ void NetSendCmdLocParam3(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y, WORD wParam1, W NetSendLoPri((BYTE *)&cmd, sizeof(cmd)); } -void NetSendCmdParam1(BOOL bHiPri, BYTE bCmd, WORD wParam1) +void NetSendCmdParam1(BOOL bHiPri, _cmd_id bCmd, WORD wParam1) { ALIGN_BY_1 TCmdParam1 cmd; @@ -924,7 +924,7 @@ void NetSendCmdParam1(BOOL bHiPri, BYTE bCmd, WORD wParam1) NetSendLoPri((BYTE *)&cmd, sizeof(cmd)); } -void NetSendCmdParam2(BOOL bHiPri, BYTE bCmd, WORD wParam1, WORD wParam2) +void NetSendCmdParam2(BOOL bHiPri, _cmd_id bCmd, WORD wParam1, WORD wParam2) { TCmdParam2 cmd; @@ -937,7 +937,7 @@ void NetSendCmdParam2(BOOL bHiPri, BYTE bCmd, WORD wParam1, WORD wParam2) NetSendLoPri((BYTE *)&cmd, sizeof(cmd)); } -void NetSendCmdParam3(BOOL bHiPri, BYTE bCmd, WORD wParam1, WORD wParam2, WORD wParam3) +void NetSendCmdParam3(BOOL bHiPri, _cmd_id bCmd, WORD wParam1, WORD wParam2, WORD wParam3) { TCmdParam3 cmd; @@ -966,7 +966,7 @@ void NetSendCmdQuest(BOOL bHiPri, BYTE q) NetSendLoPri((BYTE *)&cmd, sizeof(cmd)); } -void NetSendCmdGItem(BOOL bHiPri, BYTE bCmd, BYTE mast, BYTE pnum, BYTE ii) +void NetSendCmdGItem(BOOL bHiPri, _cmd_id bCmd, BYTE mast, BYTE pnum, BYTE ii) { TCmdGItem cmd; @@ -1014,7 +1014,7 @@ void NetSendCmdGItem(BOOL bHiPri, BYTE bCmd, BYTE mast, BYTE pnum, BYTE ii) NetSendLoPri((BYTE *)&cmd, sizeof(cmd)); } -void NetSendCmdGItem2(BOOL usonly, BYTE bCmd, BYTE mast, BYTE pnum, TCmdGItem *p) +void NetSendCmdGItem2(BOOL usonly, _cmd_id bCmd, BYTE mast, BYTE pnum, TCmdGItem *p) { TCmdGItem cmd; @@ -1039,7 +1039,7 @@ void NetSendCmdGItem2(BOOL usonly, BYTE bCmd, BYTE mast, BYTE pnum, TCmdGItem *p multi_msg_add((BYTE *)&cmd.bCmd, sizeof(cmd)); } -BOOL NetSendCmdReq2(BYTE bCmd, BYTE mast, BYTE pnum, TCmdGItem *p) +BOOL NetSendCmdReq2(_cmd_id bCmd, BYTE mast, BYTE pnum, TCmdGItem *p) { TCmdGItem cmd; @@ -1069,7 +1069,7 @@ void NetSendCmdExtra(TCmdGItem *p) NetSendHiPri((BYTE *)&cmd, sizeof(cmd)); } -void NetSendCmdPItem(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y) +void NetSendCmdPItem(BOOL bHiPri, _cmd_id bCmd, BYTE x, BYTE y) { TCmdPItem cmd; diff --git a/Source/msg.h b/Source/msg.h index 83c1ea451..fcbd92593 100644 --- a/Source/msg.h +++ b/Source/msg.h @@ -5,85 +5,196 @@ */ #pragma once +#include + namespace devilution { -#ifdef __cplusplus -extern "C" { -#endif +enum _cmd_id : uint8_t { + 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_INVALID = 0xFF, +}; #pragma pack(push, 1) -typedef struct TCmd { - Uint8 bCmd; -} TCmd; +struct TCmd { + _cmd_id bCmd; +}; -typedef struct TCmdLoc { - Uint8 bCmd; +struct TCmdLoc { + _cmd_id bCmd; Uint8 x; Uint8 y; -} TCmdLoc; +}; -typedef struct TCmdLocParam1 { - Uint8 bCmd; +struct TCmdLocParam1 { + _cmd_id bCmd; Uint8 x; Uint8 y; Uint16 wParam1; -} TCmdLocParam1; +}; -typedef struct TCmdLocParam2 { - Uint8 bCmd; +struct TCmdLocParam2 { + _cmd_id bCmd; Uint8 x; Uint8 y; Uint16 wParam1; Uint16 wParam2; -} TCmdLocParam2; +}; -typedef struct TCmdLocParam3 { - Uint8 bCmd; +struct TCmdLocParam3 { + _cmd_id bCmd; Uint8 x; Uint8 y; Uint16 wParam1; Uint16 wParam2; Uint16 wParam3; -} TCmdLocParam3; +}; -typedef struct TCmdParam1 { - Uint8 bCmd; +struct TCmdParam1 { + _cmd_id bCmd; Uint16 wParam1; -} TCmdParam1; +}; -typedef struct TCmdParam2 { - Uint8 bCmd; +struct TCmdParam2 { + _cmd_id bCmd; Uint16 wParam1; Uint16 wParam2; -} TCmdParam2; +}; -typedef struct TCmdParam3 { - Uint8 bCmd; +struct TCmdParam3 { + _cmd_id bCmd; Uint16 wParam1; Uint16 wParam2; Uint16 wParam3; -} TCmdParam3; +}; -typedef struct TCmdGolem { - Uint8 bCmd; +struct TCmdGolem { + _cmd_id bCmd; Uint8 _mx; Uint8 _my; Uint8 _mdir; Sint8 _menemy; Sint32 _mhitpoints; Uint8 _currlevel; -} TCmdGolem; +}; -typedef struct TCmdQuest { - Uint8 bCmd; +struct TCmdQuest { + _cmd_id bCmd; Uint8 q; Uint8 qstate; Uint8 qlog; Uint8 qvar1; -} TCmdQuest; +}; -typedef struct TCmdGItem { - Uint8 bCmd; +struct TCmdGItem { + _cmd_id bCmd; Uint8 bMaster; Uint8 bPnum; Uint8 bCursitem; @@ -107,10 +218,10 @@ typedef struct TCmdGItem { Uint8 bMinMag; Uint8 bMinDex; Uint8 bAC; -} TCmdGItem; +}; -typedef struct TCmdPItem { - Uint8 bCmd; +struct TCmdPItem { + _cmd_id bCmd; Uint8 x; Uint8 y; Uint16 wIndx; @@ -129,59 +240,59 @@ typedef struct TCmdPItem { Uint8 bMinMag; Uint8 bMinDex; Uint8 bAC; -} TCmdPItem; +}; -typedef struct TCmdChItem { - Uint8 bCmd; +struct TCmdChItem { + _cmd_id bCmd; Uint8 bLoc; Uint16 wIndx; Uint16 wCI; Sint32 dwSeed; Uint8 bId; Uint32 dwBuff; -} TCmdChItem; +}; -typedef struct TCmdDelItem { - Uint8 bCmd; +struct TCmdDelItem { + _cmd_id bCmd; Uint8 bLoc; -} TCmdDelItem; +}; -typedef struct TCmdDamage { - Uint8 bCmd; +struct TCmdDamage { + _cmd_id bCmd; Uint8 bPlr; Uint32 dwDam; -} TCmdDamage; +}; -typedef struct TCmdMonDamage { - Uint8 bCmd; +struct TCmdMonDamage { + _cmd_id bCmd; Uint16 wMon; Uint32 dwDam; -} TCmdMonDamage; +}; -typedef struct TCmdPlrInfoHdr { - Uint8 bCmd; +struct TCmdPlrInfoHdr { + _cmd_id bCmd; Uint16 wOffset; Uint16 wBytes; -} TCmdPlrInfoHdr; +}; -typedef struct TCmdString { - Uint8 bCmd; +struct TCmdString { + _cmd_id bCmd; char str[MAX_SEND_STR_LEN]; -} TCmdString; +}; -typedef struct TFakeCmdPlr { - Uint8 bCmd; +struct TFakeCmdPlr { + _cmd_id bCmd; Uint8 bPlr; -} TFakeCmdPlr; +}; -typedef struct TFakeDropPlr { - Uint8 bCmd; +struct TFakeDropPlr { + _cmd_id bCmd; Uint8 bPlr; Uint32 dwReason; -} TFakeDropPlr; +}; -typedef struct TSyncHeader { - Uint8 bCmd; +struct TSyncHeader { + _cmd_id bCmd; Uint8 bLevel; Uint16 wLen; Uint8 bObjId; @@ -210,17 +321,17 @@ typedef struct TSyncHeader { Uint8 bMinMag; Uint8 bMinDex; Uint8 bAC; -} TSyncHeader; +}; -typedef struct TSyncMonster { +struct TSyncMonster { Uint8 _mndx; Uint8 _mx; Uint8 _my; Uint8 _menemy; Uint8 _mdelta; -} TSyncMonster; +}; -typedef struct TPktHdr { +struct TPktHdr { Uint8 px; Uint8 py; Uint8 targx; @@ -232,68 +343,68 @@ typedef struct TPktHdr { Uint8 bdex; Uint16 wCheck; Uint16 wLen; -} TPktHdr; +}; -typedef struct TPkt { +struct TPkt { TPktHdr hdr; Uint8 body[493]; -} TPkt; +}; -typedef struct DMonsterStr { +struct DMonsterStr { Uint8 _mx; Uint8 _my; Uint8 _mdir; Uint8 _menemy; Uint8 _mactive; Sint32 _mhitpoints; -} DMonsterStr; +}; -typedef struct DObjectStr { - Uint8 bCmd; -} DObjectStr; +struct DObjectStr { + _cmd_id bCmd; +}; -typedef struct DLevel { +struct DLevel { TCmdPItem item[MAXITEMS]; DObjectStr object[MAXOBJECTS]; DMonsterStr monster[MAXMONSTERS]; -} DLevel; +}; -typedef struct LocalLevel { +struct LocalLevel { Uint8 automapsv[DMAXX][DMAXY]; -} LocalLevel; +}; -typedef struct DPortal { +struct DPortal { Uint8 x; Uint8 y; Uint8 level; Uint8 ltype; Uint8 setlvl; -} DPortal; +}; -typedef struct MultiQuests { +struct MultiQuests { Uint8 qstate; Uint8 qlog; Uint8 qvar1; -} MultiQuests; +}; -typedef struct DJunk { +struct DJunk { DPortal portal[MAXPORTAL]; MultiQuests quests[MAXMULTIQUESTS]; -} DJunk; +}; #pragma pack(pop) #pragma pack(push, 1) -typedef struct TMegaPkt { +struct TMegaPkt { struct TMegaPkt *pNext; Uint32 dwSpaceLeft; Uint8 data[32000]; -} TMegaPkt; +}; #pragma pack(pop) -typedef struct TBuffer { +struct TBuffer { Uint32 dwNextWriteOffset; Uint8 bData[4096]; -} TBuffer; +}; extern BOOL deltaload; extern BYTE gbBufferMsgs; @@ -312,18 +423,18 @@ BOOL delta_quest_inited(int i); void DeltaAddItem(int ii); void DeltaSaveLevel(); void DeltaLoadLevel(); -void NetSendCmd(BOOL bHiPri, BYTE bCmd); +void NetSendCmd(BOOL bHiPri, _cmd_id bCmd); void NetSendCmdGolem(BYTE mx, BYTE my, BYTE dir, BYTE menemy, int hp, BYTE cl); -void NetSendCmdLoc(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y); -void NetSendCmdLocParam1(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y, WORD wParam1); -void NetSendCmdLocParam2(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y, WORD wParam1, WORD wParam2); -void NetSendCmdLocParam3(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y, WORD wParam1, WORD wParam2, WORD wParam3); -void NetSendCmdParam1(BOOL bHiPri, BYTE bCmd, WORD wParam1); -void NetSendCmdParam2(BOOL bHiPri, BYTE bCmd, WORD wParam1, WORD wParam2); -void NetSendCmdParam3(BOOL bHiPri, BYTE bCmd, WORD wParam1, WORD wParam2, WORD wParam3); +void NetSendCmdLoc(BOOL bHiPri, _cmd_id bCmd, BYTE x, BYTE y); +void NetSendCmdLocParam1(BOOL bHiPri, _cmd_id bCmd, BYTE x, BYTE y, WORD wParam1); +void NetSendCmdLocParam2(BOOL bHiPri, _cmd_id bCmd, BYTE x, BYTE y, WORD wParam1, WORD wParam2); +void NetSendCmdLocParam3(BOOL bHiPri, _cmd_id bCmd, BYTE x, BYTE y, WORD wParam1, WORD wParam2, WORD wParam3); +void NetSendCmdParam1(BOOL bHiPri, _cmd_id bCmd, WORD wParam1); +void NetSendCmdParam2(BOOL bHiPri, _cmd_id bCmd, WORD wParam1, WORD wParam2); +void NetSendCmdParam3(BOOL bHiPri, _cmd_id bCmd, WORD wParam1, WORD wParam2, WORD wParam3); void NetSendCmdQuest(BOOL bHiPri, BYTE q); -void NetSendCmdGItem(BOOL bHiPri, BYTE bCmd, BYTE mast, BYTE pnum, BYTE ii); -void NetSendCmdPItem(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y); +void NetSendCmdGItem(BOOL bHiPri, _cmd_id bCmd, BYTE mast, BYTE pnum, BYTE ii); +void NetSendCmdPItem(BOOL bHiPri, _cmd_id bCmd, BYTE x, BYTE y); void NetSendCmdChItem(BOOL bHiPri, BYTE bLoc); void NetSendCmdDelItem(BOOL bHiPri, BYTE bLoc); void NetSendCmdDItem(BOOL bHiPri, int ii); @@ -333,8 +444,4 @@ void NetSendCmdString(int pmask, const char *pszStr); void delta_close_portal(int pnum); DWORD ParseCmd(int pnum, TCmd *pCmd); -#ifdef __cplusplus -} -#endif - } diff --git a/Source/multi.cpp b/Source/multi.cpp index 1f8d1a6ee..4ed018199 100644 --- a/Source/multi.cpp +++ b/Source/multi.cpp @@ -511,7 +511,7 @@ void multi_process_network_packets() nthread_terminate_game("SNetReceiveMsg"); } -void multi_send_zero_packet(int pnum, BYTE bCmd, BYTE *pbSrc, DWORD dwLen) +void multi_send_zero_packet(int pnum, _cmd_id bCmd, BYTE *pbSrc, DWORD dwLen) { DWORD dwOffset, dwBody, dwMsg; TPkt pkt; diff --git a/Source/multi.h b/Source/multi.h index 4e294defd..d57dd1de1 100644 --- a/Source/multi.h +++ b/Source/multi.h @@ -48,7 +48,7 @@ void multi_player_left(int pnum, int reason); void multi_net_ping(); int multi_handle_delta(); void multi_process_network_packets(); -void multi_send_zero_packet(int pnum, BYTE bCmd, BYTE *pbSrc, DWORD dwLen); +void multi_send_zero_packet(int pnum, _cmd_id bCmd, BYTE *pbSrc, DWORD dwLen); void NetClose(); BOOL NetInit(BOOL bSinglePlayer, BOOL *pfExitProgram); BOOL multi_init_single(GameData *gameData); diff --git a/Source/objects.cpp b/Source/objects.cpp index f8cb97371..cf270cef7 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -3,11 +3,51 @@ * * Implementation of object functionality, interaction, spawning, loading, etc. */ +#include + #include "all.h" #include "options.h" namespace devilution { +enum shrine_type : uint8_t { + SHRINE_MYSTERIOUS, + SHRINE_HIDDEN, + SHRINE_GLOOMY, + SHRINE_WEIRD, + SHRINE_MAGICAL, + SHRINE_STONE, + SHRINE_RELIGIOUS, + SHRINE_ENCHANTED, + SHRINE_THAUMATURGIC, + SHRINE_FASCINATING, + SHRINE_CRYPTIC, + SHRINE_MAGICAL2, + SHRINE_ELDRITCH, + SHRINE_EERIE, + SHRINE_DIVINE, + SHRINE_HOLY, + SHRINE_SACRED, + SHRINE_SPIRITUAL, + SHRINE_SPOOKY, + SHRINE_ABANDONED, + SHRINE_CREEPY, + SHRINE_QUIET, + SHRINE_SECLUDED, + SHRINE_ORNATE, + SHRINE_GLIMMERING, + SHRINE_TAINTED, + SHRINE_OILY, + SHRINE_GLOWING, + SHRINE_MENDICANT, + SHRINE_SPARKLING, + SHRINE_TOWN, + SHRINE_SHIMMERING, + SHRINE_SOLAR, + SHRINE_MURPHYS, + NUM_SHRINETYPE +}; + int trapid; int trapdir; BYTE *pObjCels[40]; @@ -138,14 +178,20 @@ char shrinemax[] = { MAX_LVLS, // Solar, MAX_LVLS, // Murphy's }; + /** * Specifies the game type for which each shrine may appear. - * SHRINETYPE_ANY - 0 - sp & mp - * SHRINETYPE_SINGLE - 1 - sp only - * SHRINETYPE_MULTI - 2 - mp only + * SHRINETYPE_ANY - sp & mp + * SHRINETYPE_SINGLE - sp only + * SHRINETYPE_MULTI - mp only */ +enum shrine_gametype : uint8_t { + SHRINETYPE_ANY, + SHRINETYPE_SINGLE, + SHRINETYPE_MULTI, +}; -BYTE shrineavail[] = { +shrine_gametype shrineavail[] = { SHRINETYPE_ANY, // SHRINE_MYSTERIOUS SHRINETYPE_ANY, // SHRINE_HIDDEN SHRINETYPE_SINGLE, // SHRINE_GLOOMY @@ -1382,9 +1428,9 @@ void AddShrine(int i) for (j = 0; j < shrines; j++) { slist[j] = currlevel >= shrinemin[j] && currlevel <= shrinemax[j]; - if (gbIsMultiplayer && shrineavail[j] == 1) { + if (gbIsMultiplayer && shrineavail[j] == SHRINETYPE_SINGLE) { slist[j] = false; - } else if (!gbIsMultiplayer && shrineavail[j] == 2) { + } else if (!gbIsMultiplayer && shrineavail[j] == SHRINETYPE_MULTI) { slist[j] = false; } } @@ -4222,13 +4268,13 @@ int FindValidShrine(int i) } if (done) { if (gbIsMultiplayer) { - if (shrineavail[rv] == 1) { + if (shrineavail[rv] == SHRINETYPE_SINGLE) { done = FALSE; continue; } } if (!gbIsMultiplayer) { - if (shrineavail[rv] == 2) { + if (shrineavail[rv] == SHRINETYPE_MULTI) { done = FALSE; continue; } diff --git a/Source/objects.h b/Source/objects.h index e7861ec78..3e9240447 100644 --- a/Source/objects.h +++ b/Source/objects.h @@ -9,11 +9,7 @@ namespace devilution { -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ObjectStruct { +struct ObjectStruct { _object_id _otype; Sint32 _ox; Sint32 _oy; @@ -44,7 +40,7 @@ typedef struct ObjectStruct { Sint32 _oVar6; _speech_id _oVar7; Sint32 _oVar8; -} ObjectStruct; +}; extern int objectactive[MAXOBJECTS]; extern int nobjects; @@ -88,8 +84,4 @@ void objects_454BA8(); void objects_rnd_454BEA(); bool objects_lv_24_454B04(int s); -#ifdef __cplusplus -} -#endif - } diff --git a/Source/player.cpp b/Source/player.cpp index c636cda75..041582149 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -491,8 +491,6 @@ void ClearPlrPVars(int pnum) void SetPlrAnims(int pnum) { - int gn; - if ((DWORD)pnum >= MAX_PLRS) { app_fatal("SetPlrAnims: illegal player %d", pnum); } @@ -524,7 +522,7 @@ void SetPlrAnims(int pnum) } plr[pnum]._pSFNum = PlrGFXAnimLens[pc][10]; - gn = plr[pnum]._pgfxnum & 0xF; + anim_weapon_id gn = static_cast(plr[pnum]._pgfxnum & 0xF); if (pc == PC_WARRIOR) { if (gn == ANIM_ID_BOW) { if (leveltype != DTYPE_TOWN) { diff --git a/Source/player.h b/Source/player.h index 6ca5b2b8a..a3956afc5 100644 --- a/Source/player.h +++ b/Source/player.h @@ -5,8 +5,22 @@ */ #pragma once +#include + namespace devilution { +enum anim_weapon_id : uint8_t { + ANIM_ID_UNARMED, + ANIM_ID_UNARMED_SHIELD, + ANIM_ID_SWORD, + ANIM_ID_SWORD_SHIELD, + ANIM_ID_BOW, + ANIM_ID_AXE, + ANIM_ID_MACE, + ANIM_ID_MACE_SHIELD, + ANIM_ID_STAFF, +}; + typedef enum PLR_MODE { PM_STAND, PM_WALK, //Movement towards N, NW, or NE diff --git a/Source/trigs.cpp b/Source/trigs.cpp index 5ff0bff74..18562934d 100644 --- a/Source/trigs.cpp +++ b/Source/trigs.cpp @@ -836,14 +836,10 @@ void CheckTrigForce() void CheckTriggers() { - int x, y, i; - BOOL abort; - char abortflag; - if (plr[myplr]._pmode != PM_STAND) return; - for (i = 0; i < numtrigs; i++) { + for (int i = 0; i < numtrigs; i++) { if (plr[myplr]._px != trigs[i]._tx || plr[myplr]._py != trigs[i]._ty) { continue; } @@ -866,24 +862,26 @@ void CheckTriggers() break; case WM_DIABTOWNWARP: if (gbIsMultiplayer) { - abort = FALSE; + int x, y; + bool abort = false; + diablo_message abortflag; if (trigs[i]._tlvl == 5 && plr[myplr]._pLevel < 8) { - abort = TRUE; + abort = true; x = plr[myplr]._px; y = plr[myplr]._py + 1; abortflag = EMSG_REQUIRES_LVL_8; } if (trigs[i]._tlvl == 9 && plr[myplr]._pLevel < 13) { - abort = TRUE; + abort = true; x = plr[myplr]._px + 1; y = plr[myplr]._py; abortflag = EMSG_REQUIRES_LVL_13; } if (trigs[i]._tlvl == 13 && plr[myplr]._pLevel < 17) { - abort = TRUE; + abort = true; x = plr[myplr]._px; y = plr[myplr]._py + 1; abortflag = EMSG_REQUIRES_LVL_17; diff --git a/enums.h b/enums.h index e32d86b09..a0ca9d415 100644 --- a/enums.h +++ b/enums.h @@ -18,17 +18,6 @@ typedef enum monster_goal { 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, @@ -40,12 +29,6 @@ typedef enum dflag { 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, @@ -66,64 +49,6 @@ typedef enum dungeon_message { 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, @@ -262,118 +187,6 @@ typedef enum game_info { 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, @@ -718,68 +531,6 @@ typedef enum player_graphic { 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, @@ -793,4 +544,4 @@ typedef enum conn_type { SELCONN_LOOPBACK, } conn_type; -} +} // namespace devilution