From 779e6cf950e5e2a04871c23166f6e12ed11a45bb Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Thu, 8 Apr 2021 21:29:25 +0200 Subject: [PATCH] :recycle: Apply more enums --- Source/misdat.h | 6 ++++ Source/missiles.cpp | 67 ++++++++++++++++++++------------------------- Source/missiles.h | 5 ++-- Source/player.h | 10 +++++++ enums.h | 16 ----------- 5 files changed, 48 insertions(+), 56 deletions(-) diff --git a/Source/misdat.h b/Source/misdat.h index c84f3fd16..c044803ec 100644 --- a/Source/misdat.h +++ b/Source/misdat.h @@ -9,6 +9,12 @@ namespace devilution { +enum mienemy_type : uint8_t { + TARGET_MONSTERS, + TARGET_PLAYERS, + TARGET_BOTH, +}; + enum missile_resistance : uint8_t { MISR_NONE, MISR_FIRE, diff --git a/Source/missiles.cpp b/Source/missiles.cpp index f5d7fa008..e173d9268 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -3362,7 +3362,7 @@ void AddDiabApoca(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 missile[mi]._miDelFlag = TRUE; } -int AddMissile(int sx, int sy, int dx, int dy, int midir, int mitype, char micaster, int id, int midam, int spllvl) +int AddMissile(int sx, int sy, int dx, int dy, int midir, int mitype, int8_t micaster, int id, int midam, int spllvl) { int i, mi; @@ -4329,22 +4329,19 @@ void MI_LightningWallC(Sint32 i) void MI_FireNova(Sint32 i) { - int k, id, sx, sy, dir, en, sx1, sy1, dam; - - sx1 = 0; - sy1 = 0; - id = missile[i]._misource; - dam = missile[i]._midam; - sx = missile[i]._mix; - sy = missile[i]._miy; + int sx1 = 0; + int sy1 = 0; + int id = missile[i]._misource; + int dam = missile[i]._midam; + int sx = missile[i]._mix; + int sy = missile[i]._miy; + int dir = 0; + mienemy_type en = TARGET_PLAYERS; if (id != -1) { dir = plr[id]._pdir; en = TARGET_MONSTERS; - } else { - dir = 0; - en = TARGET_PLAYERS; } - for (k = 0; k < 23; k++) { + for (int k = 0; k < 23; k++) { if (sx1 != vCrawlTable[k][6] || sy1 != vCrawlTable[k][7]) { AddMissile(sx, sy, sx + vCrawlTable[k][6], sy + vCrawlTable[k][7], dir, MIS_FIRENOVA, en, id, dam, missile[i]._mispllvl); AddMissile(sx, sy, sx - vCrawlTable[k][6], sy - vCrawlTable[k][7], dir, MIS_FIRENOVA, en, id, dam, missile[i]._mispllvl); @@ -4361,16 +4358,16 @@ void MI_FireNova(Sint32 i) void MI_SpecArrow(Sint32 i) { - int dir, src, dam, sx, sy, dx, dy, spllvl, mitype, micaster; - - src = missile[i]._misource; - dam = missile[i]._midam; - sx = missile[i]._mix; - sy = missile[i]._miy; - dx = missile[i]._miVar1; - dy = missile[i]._miVar2; - spllvl = missile[i]._miVar3; - mitype = 0; + int src = missile[i]._misource; + int dam = missile[i]._midam; + int sx = missile[i]._mix; + int sy = missile[i]._miy; + int dx = missile[i]._miVar1; + int dy = missile[i]._miVar2; + int spllvl = missile[i]._miVar3; + int mitype = 0; + int dir = 0; + mienemy_type micaster = TARGET_PLAYERS; if (src != -1) { dir = plr[src]._pdir; micaster = TARGET_MONSTERS; @@ -4389,9 +4386,6 @@ void MI_SpecArrow(Sint32 i) mitype = MIS_HBOLTARROW; break; } - } else { - dir = 0; - micaster = TARGET_PLAYERS; } AddMissile(sx, sy, dx, dy, dir, mitype, micaster, src, dam, spllvl); if (mitype == MIS_CBOLTARROW) { @@ -5207,22 +5201,19 @@ void MI_Wave(Sint32 i) void MI_Nova(Sint32 i) { - int k, id, sx, sy, dir, en, sx1, sy1, dam; - - sx1 = 0; - sy1 = 0; - id = missile[i]._misource; - dam = missile[i]._midam; - sx = missile[i]._mix; - sy = missile[i]._miy; + int sx1 = 0; + int sy1 = 0; + int id = missile[i]._misource; + int dam = missile[i]._midam; + int sx = missile[i]._mix; + int sy = missile[i]._miy; + int dir = 0; + mienemy_type en = TARGET_PLAYERS; if (id != -1) { dir = plr[id]._pdir; en = TARGET_MONSTERS; - } else { - dir = 0; - en = TARGET_PLAYERS; } - for (k = 0; k < 23; k++) { + for (int k = 0; k < 23; k++) { if (sx1 != vCrawlTable[k][6] || sy1 != vCrawlTable[k][7]) { AddMissile(sx, sy, sx + vCrawlTable[k][6], sy + vCrawlTable[k][7], dir, MIS_LIGHTBALL, en, id, dam, missile[i]._mispllvl); AddMissile(sx, sy, sx - vCrawlTable[k][6], sy - vCrawlTable[k][7], dir, MIS_LIGHTBALL, en, id, dam, missile[i]._mispllvl); diff --git a/Source/missiles.h b/Source/missiles.h index 00a521cfc..016c6d2f1 100644 --- a/Source/missiles.h +++ b/Source/missiles.h @@ -48,7 +48,8 @@ struct MissileStruct { Uint32 _miUniqTrans; Sint32 _mirange; // Time to live for the missile in game ticks, oncs 0 the missile will be marked for deletion via _miDelFlag Sint32 _misource; - Sint32 _micaster; + /** mienemy_type or player id*/ + Sint8 _micaster; Sint32 _midam; bool _miHitFlag; Sint32 _midist; // Used for arrows to measure distance travelled (increases by 1 each game tick). Higher value is a penalty for accuracy calculation when hitting enemy @@ -170,7 +171,7 @@ void AddTelekinesis(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint3 void AddBoneSpirit(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); void AddRportal(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); void AddDiabApoca(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); -int AddMissile(int sx, int sy, int dx, int dy, int midir, int mitype, char micaster, int id, int midam, int spllvl); +int AddMissile(int sx, int sy, int dx, int dy, int midir, int mitype, int8_t micaster, int id, int midam, int spllvl); void MI_Dummy(Sint32 i); void MI_Golem(Sint32 i); void MI_SetManashield(Sint32 i); diff --git a/Source/player.h b/Source/player.h index a3956afc5..456d0eb28 100644 --- a/Source/player.h +++ b/Source/player.h @@ -9,6 +9,16 @@ namespace devilution { +enum plr_class : uint8_t { + PC_WARRIOR, + PC_ROGUE, + PC_SORCERER, + PC_MONK, + PC_BARD, + PC_BARBARIAN, + NUM_CLASSES +}; + enum anim_weapon_id : uint8_t { ANIM_ID_UNARMED, ANIM_ID_UNARMED_SHIELD, diff --git a/enums.h b/enums.h index a0ca9d415..48fa442dc 100644 --- a/enums.h +++ b/enums.h @@ -35,12 +35,6 @@ typedef enum placeflag { 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, @@ -442,16 +436,6 @@ typedef enum _unique_items { 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,