From 96bf75b502df0d2839d08013ffd71fa3bc92ddc5 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Wed, 7 Jul 2021 02:15:00 +0200 Subject: [PATCH] Rename player globals --- Source/automap.cpp | 8 +- Source/control.cpp | 64 +-- Source/controls/plrctrls.cpp | 88 ++--- Source/cursor.cpp | 18 +- Source/debug.cpp | 36 +- Source/diablo.cpp | 88 ++--- Source/drlg_l1.cpp | 6 +- Source/dvlnet/base_protocol.h | 2 +- Source/effects.cpp | 8 +- Source/gamemenu.cpp | 12 +- Source/interfac.cpp | 4 +- Source/inv.cpp | 64 +-- Source/items.cpp | 82 ++-- Source/lighting.cpp | 2 +- Source/loadsave.cpp | 36 +- Source/mainmenu.cpp | 2 +- Source/miniwin/misc_msg.cpp | 4 +- Source/missiles.cpp | 262 ++++++------- Source/monster.cpp | 132 +++---- Source/msg.cpp | 574 +++++++++++++-------------- Source/multi.cpp | 124 +++--- Source/objects.cpp | 718 +++++++++++++++++----------------- Source/pack.cpp | 6 +- Source/pfile.cpp | 26 +- Source/player.cpp | 318 +++++++-------- Source/player.h | 8 +- Source/plrmsg.cpp | 4 +- Source/portal.cpp | 10 +- Source/qol/autopickup.cpp | 10 +- Source/qol/itemlabels.cpp | 2 +- Source/qol/xpbar.cpp | 4 +- Source/quests.cpp | 28 +- Source/scrollrt.cpp | 32 +- Source/spells.cpp | 72 ++-- Source/stores.cpp | 120 +++--- Source/sync.cpp | 12 +- Source/town.cpp | 8 +- Source/towners.cpp | 2 +- Source/track.cpp | 6 +- Source/trigs.cpp | 18 +- test/control_test.cpp | 2 +- test/effects_test.cpp | 10 +- test/inv_test.cpp | 174 ++++---- test/pack_test.cpp | 16 +- test/player_test.cpp | 2 +- test/writehero_test.cpp | 6 +- 46 files changed, 1615 insertions(+), 1615 deletions(-) diff --git a/Source/automap.cpp b/Source/automap.cpp index 9d74ae1e2..a4f0712fa 100644 --- a/Source/automap.cpp +++ b/Source/automap.cpp @@ -209,7 +209,7 @@ void DrawAutomapTile(const Surface &out, Point center, uint16_t automapType) void SearchAutomapItem(const Surface &out) { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; Point tile = myPlayer.position.tile; if (myPlayer._pmode == PM_WALK3) { tile = myPlayer.position.future; @@ -257,7 +257,7 @@ void DrawAutomapPlr(const Surface &out, int playerId) { int playerColor = MapColorsPlayer + (8 * playerId) % 128; - auto &player = plr[playerId]; + auto &player = Players[playerId]; Point tile = player.position.tile; if (player._pmode == PM_WALK3) { tile = player.position.future; @@ -617,8 +617,8 @@ void DrawAutomap(const Surface &out) } for (int playerId = 0; playerId < MAX_PLRS; playerId++) { - auto &player = plr[playerId]; - if (player.plrlevel == plr[myplr].plrlevel && player.plractive && !player._pLvlChanging) { + auto &player = Players[playerId]; + if (player.plrlevel == Players[MyPlayerId].plrlevel && player.plractive && !player._pLvlChanging) { DrawAutomapPlr(out, playerId); } } diff --git a/Source/control.cpp b/Source/control.cpp index b8996a7bf..f9741d008 100644 --- a/Source/control.cpp +++ b/Source/control.cpp @@ -303,14 +303,14 @@ void SetSpellTrans(spell_type t) void DrawSpell(const Surface &out) { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; spell_id spl = myPlayer._pRSpell; spell_type st = myPlayer._pRSplType; // BUGFIX: Move the next line into the if statement to avoid OOB (SPL_INVALID is -1) (fixed) if (st == RSPLTYPE_SPELL && spl != SPL_INVALID) { int tlvl = myPlayer._pISplLvlAdd + myPlayer._pSplLvl[spl]; - if (!CheckSpell(myplr, spl, st, true)) + if (!CheckSpell(MyPlayerId, spl, st, true)) st = RSPLTYPE_INVALID; if (tlvl <= 0) st = RSPLTYPE_INVALID; @@ -350,7 +350,7 @@ void DrawSpellList(const Surface &out) ClearPanel(); for (int i = RSPLTYPE_SKILL; i < RSPLTYPE_INVALID; i++) { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; switch ((spell_type)i) { case RSPLTYPE_SKILL: SetSpellTrans(RSPLTYPE_SKILL); @@ -476,7 +476,7 @@ void SetSpell() ClearPanel(); - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; myPlayer._pRSpell = pSpell; myPlayer._pRSplType = pSplType; @@ -488,7 +488,7 @@ void SetSpeedSpell(int slot) if (pSpell == SPL_INVALID) { return; } - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; for (int i = 0; i < 4; ++i) { if (myPlayer._pSplHotKey[i] == pSpell && myPlayer._pSplTHotKey[i] == pSplType) myPlayer._pSplHotKey[i] = SPL_INVALID; @@ -501,7 +501,7 @@ void ToggleSpell(int slot) { uint64_t spells; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (myPlayer._pSplHotKey[slot] == SPL_INVALID) { return; @@ -625,31 +625,31 @@ void DrawFlaskLower(const Surface &out, const Surface &sourceBuffer, int offset, void DrawLifeFlaskUpper(const Surface &out) { constexpr int LifeFlaskUpperOffset = 109; - DrawFlaskUpper(out, pLifeBuff, LifeFlaskUpperOffset, plr[myplr]._pHPPer); + DrawFlaskUpper(out, pLifeBuff, LifeFlaskUpperOffset, Players[MyPlayerId]._pHPPer); } void DrawManaFlaskUpper(const Surface &out) { constexpr int ManaFlaskUpperOffset = 475; - DrawFlaskUpper(out, pManaBuff, ManaFlaskUpperOffset, plr[myplr]._pManaPer); + DrawFlaskUpper(out, pManaBuff, ManaFlaskUpperOffset, Players[MyPlayerId]._pManaPer); } void DrawLifeFlaskLower(const Surface &out) { constexpr int LifeFlaskLowerOffset = 96; - DrawFlaskLower(out, pLifeBuff, LifeFlaskLowerOffset, plr[myplr]._pHPPer); + DrawFlaskLower(out, pLifeBuff, LifeFlaskLowerOffset, Players[MyPlayerId]._pHPPer); } void DrawManaFlaskLower(const Surface &out) { constexpr int ManaFlaskLowerOffeset = 464; - DrawFlaskLower(out, pManaBuff, ManaFlaskLowerOffeset, plr[myplr]._pManaPer); + DrawFlaskLower(out, pManaBuff, ManaFlaskLowerOffeset, Players[MyPlayerId]._pManaPer); } void control_update_life_mana() { - plr[myplr].UpdateManaPercentage(); - plr[myplr].UpdateHitPointPercentage(); + Players[MyPlayerId].UpdateManaPercentage(); + Players[MyPlayerId].UpdateHitPointPercentage(); } void InitControlPan() @@ -716,7 +716,7 @@ void InitControlPan() sbooktab = 0; sbookflag = false; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (myPlayer._pClass == HeroClass::Warrior) { SpellPages[0][0] = SPL_REPAIR; @@ -774,7 +774,7 @@ void DoSpeedBook() int x = xo + SPLICONLENGTH / 2; int y = yo - SPLICONLENGTH / 2; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (myPlayer._pRSpell != SPL_INVALID) { for (int i = RSPLTYPE_SKILL; i <= RSPLTYPE_CHARGES; i++) { @@ -838,7 +838,7 @@ void DoPanBtn() } if (!spselflag && MousePosition.x >= 565 + PANEL_LEFT && MousePosition.x < 621 + PANEL_LEFT && MousePosition.y >= 64 + PANEL_TOP && MousePosition.y < 120 + PANEL_TOP) { if ((SDL_GetModState() & KMOD_SHIFT) != 0) { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; myPlayer._pRSpell = SPL_INVALID; myPlayer._pRSplType = RSPLTYPE_INVALID; force_redraw = 255; @@ -924,7 +924,7 @@ void CheckPanelInfo() pinfoflag = true; strcpy(tempstr, _("Hotkey: 's'")); AddPanelString(tempstr); - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; spell_id v = myPlayer._pRSpell; if (v != SPL_INVALID) { switch (myPlayer._pRSplType) { @@ -1112,7 +1112,7 @@ void DrawInfoBox(const Surface &out) if (spselflag || trigflag) { infoclr = UIS_SILVER; } else if (pcurs >= CURSOR_FIRSTITEM) { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (myPlayer.HoldItem._itype == ITYPE_GOLD) { int nGold = myPlayer.HoldItem._ivalue; strcpy(infostr, fmt::format(ngettext("{:d} gold piece", "{:d} gold pieces", nGold), nGold).c_str()); @@ -1151,7 +1151,7 @@ void DrawInfoBox(const Surface &out) } if (pcursplr != -1) { infoclr = UIS_GOLD; - auto &target = plr[pcursplr]; + auto &target = Players[pcursplr]; strcpy(infostr, target._pName); ClearPanel(); strcpy(tempstr, fmt::format(_("{:s}, Level: {:d}"), _(ClassStrTbl[static_cast(target._pClass)]), target._pLevel).c_str()); @@ -1169,7 +1169,7 @@ void DrawChr(const Surface &out) uint32_t style = UIS_SILVER; char chrstr[64]; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; CelDrawTo(out, { 0, 351 }, *pChrPanel, 1); DrawString(out, myPlayer._pName, { { 20, 32 }, { 131, 0 } }, UIS_SILVER | UIS_CENTER); @@ -1395,7 +1395,7 @@ void DrawLevelUpIcon(const Surface &out) void CheckChrBtns() { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (chrbtnactive || myPlayer._pStatPts == 0) return; @@ -1447,7 +1447,7 @@ void ReleaseChrBtns(bool addAllStatPoints) chrbtn[buttonId] = false; if (ChrBtnsRect[buttonId].Contains(MousePosition)) { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; int statPointsToAdd = 1; if (addAllStatPoints) statPointsToAdd = CapStatPointsToAdd(myPlayer._pStatPts, myPlayer, attribute); @@ -1523,7 +1523,7 @@ void DrawDurIcon(const Surface &out) x -= SPANEL_WIDTH - (gnScreenWidth - PANEL_WIDTH) / 2; } - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; x = DrawDurIcon4Item(out, &myPlayer.InvBody[INVLOC_HEAD], x, 4); x = DrawDurIcon4Item(out, &myPlayer.InvBody[INVLOC_CHEST], x, 3); x = DrawDurIcon4Item(out, &myPlayer.InvBody[INVLOC_HAND_LEFT], x, 0); @@ -1550,7 +1550,7 @@ static void PrintSBookStr(const Surface &out, Point position, const char *text) spell_type GetSBookTrans(spell_id ii, bool townok) { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if ((myPlayer._pClass == HeroClass::Monk) && (ii == SPL_SEARCH)) return RSPLTYPE_SKILL; spell_type st = RSPLTYPE_SPELL; @@ -1561,7 +1561,7 @@ spell_type GetSBookTrans(spell_id ii, bool townok) st = RSPLTYPE_SKILL; } if (st == RSPLTYPE_SPELL) { - if (!CheckSpell(myplr, ii, st, true)) { + if (!CheckSpell(MyPlayerId, ii, st, true)) { st = RSPLTYPE_INVALID; } if ((char)(myPlayer._pSplLvl[ii] + myPlayer._pISplLvlAdd) <= 0) { @@ -1588,7 +1588,7 @@ void DrawSpellBook(const Surface &out) } CelDrawTo(out, { sx, 348 }, *pSBkBtnCel, sbooktab + 1); } - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; uint64_t spl = myPlayer._pMemSpells | myPlayer._pISpells | myPlayer._pAblSpells; int yp = 55; @@ -1647,7 +1647,7 @@ void CheckSBook() { if (MousePosition.x >= RIGHT_PANEL + 11 && MousePosition.x < RIGHT_PANEL + 48 && MousePosition.y >= 18 && MousePosition.y < 314) { spell_id sn = SpellPages[sbooktab][(MousePosition.y - 18) / 43]; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; uint64_t spl = myPlayer._pMemSpells | myPlayer._pISpells | myPlayer._pAblSpells; if (sn != SPL_INVALID && (spl & GetSpellBitmask(sn)) != 0) { spell_type st = RSPLTYPE_SPELL; @@ -1713,7 +1713,7 @@ void control_drop_gold(char vkey) { char input[6]; - if (plr[myplr]._pHitPoints >> 6 <= 0) { + if (Players[MyPlayerId]._pHitPoints >> 6 <= 0) { dropGoldFlag = false; dropGoldValue = 0; return; @@ -1723,7 +1723,7 @@ void control_drop_gold(char vkey) snprintf(input, sizeof(input), "%i", dropGoldValue); if (vkey == DVL_VK_RETURN) { if (dropGoldValue > 0) - control_remove_gold(myplr, initialDropGoldIndex); + control_remove_gold(MyPlayerId, initialDropGoldIndex); dropGoldFlag = false; } else if (vkey == DVL_VK_ESCAPE) { dropGoldFlag = false; @@ -1751,7 +1751,7 @@ static void ControlSetGoldCurs(PlayerStruct &player) void control_remove_gold(int pnum, int goldIndex) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; int gi = goldIndex - INVITEM_INV_FIRST; player.InvList[gi]._ivalue -= dropGoldValue; @@ -1795,7 +1795,7 @@ void DrawTalkPan(const Surface &out) x += 46; int talkBtn = 0; for (int i = 0; i < 4; i++) { - if (i == myplr) + if (i == MyPlayerId) continue; uint16_t color = UIS_RED; @@ -1812,7 +1812,7 @@ void DrawTalkPan(const Surface &out) nCel += 4; CelDrawTo(out, talkPanPosition, *talkButtons, nCel); } - auto &player = plr[i]; + auto &player = Players[i]; if (player.plractive) { DrawString(out, player._pName, { { x, y + 60 + talkBtn * 18 }, { 204, 0 } }, color); } @@ -1859,7 +1859,7 @@ void control_release_talk_btn() int p = 0; for (; p < MAX_PLRS && off != -1; p++) { - if (p != myplr) + if (p != MyPlayerId) off--; } if (p <= MAX_PLRS) diff --git a/Source/controls/plrctrls.cpp b/Source/controls/plrctrls.cpp index 4d544c2be..a15e13527 100644 --- a/Source/controls/plrctrls.cpp +++ b/Source/controls/plrctrls.cpp @@ -40,7 +40,7 @@ bool InGameMenu() || qtextflag || gmenu_is_active() || PauseMode == 2 - || plr[myplr]._pInvincible; + || Players[MyPlayerId]._pInvincible; } namespace { @@ -54,7 +54,7 @@ int slot = SLOTXY_INV_FIRST; */ int GetRotaryDistance(Point destination) { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (myPlayer.position.future == destination) return -1; @@ -75,7 +75,7 @@ int GetRotaryDistance(Point destination) */ int GetMinDistance(Point position) { - return plr[myplr].position.future.WalkingDistance(position); + return Players[MyPlayerId].position.future.WalkingDistance(position); } /** @@ -91,7 +91,7 @@ int GetDistance(Point destination, int maxDistance) } int8_t walkpath[MAX_PATH_LENGTH]; - int steps = FindPath(PosOkPlayer, myplr, plr[myplr].position.future.x, plr[myplr].position.future.y, destination.x, destination.y, walkpath); + int steps = FindPath(PosOkPlayer, MyPlayerId, Players[MyPlayerId].position.future.x, Players[MyPlayerId].position.future.y, destination.x, destination.y, walkpath); if (steps > maxDistance) return 0; @@ -104,7 +104,7 @@ int GetDistance(Point destination, int maxDistance) */ int GetDistanceRanged(Point destination) { - return plr[myplr].position.future.ExactDistance(destination); + return Players[MyPlayerId].position.future.ExactDistance(destination); } /** @@ -114,8 +114,8 @@ int GetDistanceRanged(Point destination) */ void FindItemOrObject() { - int mx = plr[myplr].position.future.x; - int my = plr[myplr].position.future.y; + int mx = Players[MyPlayerId].position.future.x; + int my = Players[MyPlayerId].position.future.y; int rotations = 5; // As the player can not stand on the edge of the map this is safe from OOB @@ -176,7 +176,7 @@ void CheckTownersNearby() bool HasRangedSpell() { - int spl = plr[myplr]._pRSpell; + int spl = Players[MyPlayerId]._pRSpell; return spl != SPL_INVALID && spl != SPL_TOWN @@ -247,8 +247,8 @@ void FindMeleeTarget() std::list queue; { - const int startX = plr[myplr].position.future.x; - const int startY = plr[myplr].position.future.y; + const int startX = Players[MyPlayerId].position.future.x; + const int startY = Players[MyPlayerId].position.future.y; visited[startX][startY] = true; queue.push_back({ startX, startY, 0 }); } @@ -269,7 +269,7 @@ void FindMeleeTarget() continue; } - if (!PosOkPlayer(myplr, { dx, dy })) { + if (!PosOkPlayer(MyPlayerId, { dx, dy })) { visited[dx][dy] = true; if (dMonster[dx][dy] != 0) { @@ -305,7 +305,7 @@ void FindMeleeTarget() void CheckMonstersNearby() { - if (plr[myplr]._pwtype == WT_RANGED || HasRangedSpell()) { + if (Players[MyPlayerId]._pwtype == WT_RANGED || HasRangedSpell()) { FindRangedTarget(); return; } @@ -322,16 +322,16 @@ void CheckPlayerNearby() if (pcursmonst != -1) return; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; int spl = myPlayer._pRSpell; if (gbFriendlyMode && spl != SPL_RESURRECT && spl != SPL_HEALOTHER) return; for (int i = 0; i < MAX_PLRS; i++) { - if (i == myplr) + if (i == MyPlayerId) continue; - const auto &player = plr[i]; + const auto &player = Players[i]; const int mx = player.position.future.x; const int my = player.position.future.y; if (dPlayer[mx][my] == 0 @@ -442,13 +442,13 @@ void Interact() if (leveltype == DTYPE_TOWN && pcursmonst != -1) { NetSendCmdLocParam1(true, CMD_TALKXY, towners[pcursmonst].position, pcursmonst); } else if (pcursmonst != -1) { - if (plr[myplr]._pwtype != WT_RANGED || CanTalkToMonst(pcursmonst)) { + if (Players[MyPlayerId]._pwtype != WT_RANGED || CanTalkToMonst(pcursmonst)) { NetSendCmdParam1(true, CMD_ATTACKID, pcursmonst); } else { NetSendCmdParam1(true, CMD_RATTACKID, pcursmonst); } } else if (leveltype != DTYPE_TOWN && pcursplr != -1 && !gbFriendlyMode) { - NetSendCmdParam1(true, plr[myplr]._pwtype == WT_RANGED ? CMD_RATTACKPID : CMD_ATTACKPID, pcursplr); + NetSendCmdParam1(true, Players[MyPlayerId]._pwtype == WT_RANGED ? CMD_RATTACKPID : CMD_ATTACKPID, pcursplr); } } @@ -459,7 +459,7 @@ void AttrIncBtnSnap(AxisDirection dir) if (dir.y == AxisDirectionY_NONE) return; - if (chrbtnactive && plr[myplr]._pStatPts <= 0) + if (chrbtnactive && Players[MyPlayerId]._pStatPts <= 0) return; // first, find our cursor location @@ -576,7 +576,7 @@ Size GetItemSizeOnSlot(int slot, char &itemInvId) { if (slot >= SLOTXY_INV_FIRST && slot <= SLOTXY_INV_LAST) { int ig = slot - SLOTXY_INV_FIRST; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; char ii = myPlayer.InvGrid[ig]; if (ii != 0) { int iv = ii; @@ -614,7 +614,7 @@ void ResetInvCursorPosition() // search the 'first slot' for that item in the inventory, it should have the positive number of that same InvId if (itemInvId < 0) { for (int s = 0; s < SLOTXY_INV_LAST - SLOTXY_INV_FIRST; ++s) { - if (plr[myplr].InvGrid[s] == -itemInvId) { + if (Players[MyPlayerId].InvGrid[s] == -itemInvId) { slot = SLOTXY_INV_FIRST + s; break; } @@ -670,7 +670,7 @@ void InvMove(AxisDirection dir) slot = SLOTXY_BELT_LAST; const int initialSlot = slot; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; // when item is on cursor (pcurs > 1), this is the real cursor XY if (dir.x == AxisDirectionX_LEFT) { @@ -952,7 +952,7 @@ void HotSpellMove(AxisDirection dir) if (dir.x == AxisDirectionX_NONE && dir.y == AxisDirectionY_NONE) return; - int spbslot = plr[myplr]._pRSpell; + int spbslot = Players[MyPlayerId]._pRSpell; for (int r = 0; r < speedspellcount; r++) { if (MousePosition.x >= speedspellscoords[r].x - SPLICONLENGTH / 2 && MousePosition.x < speedspellscoords[r].x + SPLICONLENGTH / 2 @@ -1053,7 +1053,7 @@ bool IsPathBlocked(Point position, Direction dir) if (!nSolidTable[dPiece[leftStep.x][leftStep.y]] && !nSolidTable[dPiece[rightStep.x][rightStep.y]]) return false; - return !PosOkPlayer(myplr, leftStep) && !PosOkPlayer(myplr, rightStep); + return !PosOkPlayer(MyPlayerId, leftStep) && !PosOkPlayer(MyPlayerId, rightStep); } bool CanChangeDirection(const PlayerStruct &player) @@ -1071,7 +1071,7 @@ bool CanChangeDirection(const PlayerStruct &player) void WalkInDir(int playerId, AxisDirection dir) { - auto &player = plr[playerId]; + auto &player = Players[playerId]; if (dir.x == AxisDirectionX_NONE && dir.y == AxisDirectionY_NONE) { if (sgbControllerActive && player.walkpath[0] != WALK_NONE && player.destAction == ACTION_NONE) @@ -1118,7 +1118,7 @@ HandleLeftStickOrDPadFn GetLeftStickOrDPadGameUIHandler() if (invflag) { return &InvMove; } - if (chrflag && plr[myplr]._pStatPts > 0) { + if (chrflag && Players[MyPlayerId]._pStatPts > 0) { return &AttrIncBtnSnap; } if (spselflag) { @@ -1207,7 +1207,7 @@ void StoreSpellCoords() int yo = endY; for (int i = RSPLTYPE_SKILL; i <= RSPLTYPE_CHARGES; i++) { std::uint64_t spells; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; switch (i) { case RSPLTYPE_SKILL: spells = myPlayer._pAblSpells; @@ -1315,7 +1315,7 @@ void plrctrls_after_check_curs_move() pcursquest = -1; cursmx = -1; cursmy = -1; - if (plr[myplr]._pInvincible) { + if (Players[MyPlayerId]._pInvincible) { return; } if (DoomFlag) { @@ -1339,20 +1339,20 @@ void plrctrls_every_frame() void plrctrls_after_game_logic() { - Movement(myplr); + Movement(MyPlayerId); } void UseBeltItem(int type) { for (int i = 0; i < MAXBELTITEMS; i++) { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; const int id = AllItemsList[myPlayer.SpdList[i].IDidx].iMiscId; const int spellId = AllItemsList[myPlayer.SpdList[i].IDidx].iSpell; if ((type == BLT_HEALING && (id == IMISC_HEAL || id == IMISC_FULLHEAL || (id == IMISC_SCROLL && spellId == SPL_HEAL))) || (type == BLT_MANA && (id == IMISC_MANA || id == IMISC_FULLMANA)) || id == IMISC_REJUV || id == IMISC_FULLREJUV) { if (myPlayer.SpdList[i]._itype > -1) { - UseInvItem(myplr, INVITEM_BELT_FIRST + i); + UseInvItem(MyPlayerId, INVITEM_BELT_FIRST + i); break; } } @@ -1376,7 +1376,7 @@ void PerformPrimaryAction() return; } - if (chrflag && !chrbtnactive && plr[myplr]._pStatPts > 0) { + if (chrflag && !chrbtnactive && Players[MyPlayerId]._pStatPts > 0) { CheckChrBtns(); for (int i = 0; i < 4; i++) { if (ChrBtnsRect[i].Contains(MousePosition)) { @@ -1393,7 +1393,7 @@ void PerformPrimaryAction() bool SpellHasActorTarget() { - int spl = plr[myplr]._pRSpell; + int spl = Players[MyPlayerId]._pRSpell; if (spl == SPL_TOWN || spl == SPL_TELEPORT) return false; @@ -1414,10 +1414,10 @@ void UpdateSpellTarget() pcursmonst = -1; int range = 1; - if (plr[myplr]._pRSpell == SPL_TELEPORT) + if (Players[MyPlayerId]._pRSpell == SPL_TELEPORT) range = 4; - auto cursm = plr[myplr].position.future + Displacement::fromDirection(plr[myplr]._pdir) * range; + auto cursm = Players[MyPlayerId].position.future + Displacement::fromDirection(Players[MyPlayerId]._pdir) * range; cursmx = cursm.x; cursmy = cursm.y; } @@ -1427,7 +1427,7 @@ void UpdateSpellTarget() */ bool TryDropItem() { - const auto &myPlayer = plr[myplr]; + const auto &myPlayer = Players[MyPlayerId]; cursmx = myPlayer.position.future.x + 1; cursmy = myPlayer.position.future.y; @@ -1469,7 +1469,7 @@ void PerformSpellAction() return; } - const auto &myPlayer = plr[myplr]; + const auto &myPlayer = Players[MyPlayerId]; int spl = myPlayer._pRSpell; if ((pcursplr == -1 && (spl == SPL_RESURRECT || spl == SPL_HEALOTHER)) || (pcursobj == -1 && spl == SPL_DISARM)) { @@ -1488,7 +1488,7 @@ void CtrlUseInvItem() if (pcursinvitem == -1) return; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (pcursinvitem <= INVITEM_INV_LAST) item = &myPlayer.InvList[pcursinvitem - INVITEM_INV_FIRST]; @@ -1503,7 +1503,7 @@ void CtrlUseInvItem() CheckInvItem(true); // auto-equip if it's an equipment ResetInvCursorPosition(); } else { - UseInvItem(myplr, pcursinvitem); + UseInvItem(MyPlayerId, pcursinvitem); } } @@ -1524,14 +1524,14 @@ void PerformSecondaryAction() } else if (pcursobj != -1) { NetSendCmdLocParam1(true, CMD_OPOBJXY, { cursmx, cursmy }, pcursobj); } else if (pcursmissile != -1) { - MakePlrPath(myplr, missile[pcursmissile].position.tile, true); - plr[myplr].destAction = ACTION_WALK; + MakePlrPath(MyPlayerId, missile[pcursmissile].position.tile, true); + Players[MyPlayerId].destAction = ACTION_WALK; } else if (pcurstrig != -1) { - MakePlrPath(myplr, trigs[pcurstrig].position, true); - plr[myplr].destAction = ACTION_WALK; + MakePlrPath(MyPlayerId, trigs[pcurstrig].position, true); + Players[MyPlayerId].destAction = ACTION_WALK; } else if (pcursquest != -1) { - MakePlrPath(myplr, quests[pcursquest].position, true); - plr[myplr].destAction = ACTION_WALK; + MakePlrPath(MyPlayerId, quests[pcursquest].position, true); + Players[MyPlayerId].destAction = ACTION_WALK; } } diff --git a/Source/cursor.cpp b/Source/cursor.cpp index 62457248d..b405daa2b 100644 --- a/Source/cursor.cpp +++ b/Source/cursor.cpp @@ -192,7 +192,7 @@ void CelDrawCursor(const Surface &out, Point position, int cursId) const auto &sprite = GetInvItemSprite(cursId); const int frame = GetInvItemFrame(cursId); if (IsItemSprite(cursId)) { - const auto &heldItem = plr[myplr].HoldItem; + const auto &heldItem = Players[MyPlayerId].HoldItem; CelBlitOutlineTo(out, GetOutlineColor(heldItem, true), position, sprite, frame, false); CelDrawItem(heldItem, out, position, sprite, frame); } else { @@ -228,7 +228,7 @@ void CheckTown() trigflag = true; ClearPanel(); strcpy(infostr, _("Town Portal")); - strcpy(tempstr, fmt::format(_("from {:s}"), plr[missile[mx]._misource]._pName).c_str()); + strcpy(tempstr, fmt::format(_("from {:s}"), Players[missile[mx]._misource]._pName).c_str()); AddPanelString(tempstr); cursmx = missile[mx].position.tile.x; cursmy = missile[mx].position.tile.y; @@ -300,7 +300,7 @@ void CheckCursMove() int xo = 0; int yo = 0; CalcTileOffset(&xo, &yo); - const auto &myPlayer = plr[myplr]; + const auto &myPlayer = Players[MyPlayerId]; Displacement offset = ScrollInfo.offset; if (myPlayer.IsWalking()) offset = GetOffsetForWalking(myPlayer.AnimInfo, myPlayer._pdir, true); @@ -574,7 +574,7 @@ void CheckCursMove() if (pcursmonst == -1) { if (!flipflag && mx + 1 < MAXDUNX && dPlayer[mx + 1][my] != 0) { int8_t bv = dPlayer[mx + 1][my] > 0 ? dPlayer[mx + 1][my] - 1 : -(dPlayer[mx + 1][my] + 1); - if (bv != myplr && plr[bv]._pHitPoints != 0) { + if (bv != MyPlayerId && Players[bv]._pHitPoints != 0) { cursmx = mx + 1; cursmy = my; pcursplr = bv; @@ -582,7 +582,7 @@ void CheckCursMove() } if (flipflag && my + 1 < MAXDUNY && dPlayer[mx][my + 1] != 0) { int8_t bv = dPlayer[mx][my + 1] > 0 ? dPlayer[mx][my + 1] - 1 : -(dPlayer[mx][my + 1] + 1); - if (bv != myplr && plr[bv]._pHitPoints != 0) { + if (bv != MyPlayerId && Players[bv]._pHitPoints != 0) { cursmx = mx; cursmy = my + 1; pcursplr = bv; @@ -590,7 +590,7 @@ void CheckCursMove() } if (dPlayer[mx][my] != 0) { int8_t bv = dPlayer[mx][my] > 0 ? dPlayer[mx][my] - 1 : -(dPlayer[mx][my] + 1); - if (bv != myplr) { + if (bv != MyPlayerId) { cursmx = mx; cursmy = my; pcursplr = bv; @@ -598,7 +598,7 @@ void CheckCursMove() } if ((dFlags[mx][my] & BFLAG_DEAD_PLAYER) != 0) { for (int i = 0; i < MAX_PLRS; i++) { - if (plr[i].position.tile.x == mx && plr[i].position.tile.y == my && i != myplr) { + if (Players[i].position.tile.x == mx && Players[i].position.tile.y == my && i != MyPlayerId) { cursmx = mx; cursmy = my; pcursplr = i; @@ -610,7 +610,7 @@ void CheckCursMove() for (int yy = -1; yy < 2; yy++) { if (mx + xx < MAXDUNX && my + yy < MAXDUNY && (dFlags[mx + xx][my + yy] & BFLAG_DEAD_PLAYER) != 0) { for (int i = 0; i < MAX_PLRS; i++) { - if (plr[i].position.tile.x == mx + xx && plr[i].position.tile.y == my + yy && i != myplr) { + if (Players[i].position.tile.x == mx + xx && Players[i].position.tile.y == my + yy && i != MyPlayerId) { cursmx = mx + xx; cursmy = my + yy; pcursplr = i; @@ -622,7 +622,7 @@ void CheckCursMove() } if (mx + 1 < MAXDUNX && my + 1 < MAXDUNY && dPlayer[mx + 1][my + 1] != 0) { int8_t bv = dPlayer[mx + 1][my + 1] > 0 ? dPlayer[mx + 1][my + 1] - 1 : -(dPlayer[mx + 1][my + 1] + 1); - if (bv != myplr && plr[bv]._pHitPoints != 0) { + if (bv != MyPlayerId && Players[bv]._pHitPoints != 0) { cursmx = mx + 1; cursmy = my + 1; pcursplr = bv; diff --git a/Source/debug.cpp b/Source/debug.cpp index 1fbb215e9..3b1db6a81 100644 --- a/Source/debug.cpp +++ b/Source/debug.cpp @@ -53,7 +53,7 @@ void CheckDungeonClear() void GiveGoldCheat() { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; for (int8_t &itemId : myPlayer.InvGrid) { if (itemId != 0) @@ -71,7 +71,7 @@ void GiveGoldCheat() void TakeGoldCheat() { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; for (auto itemId : myPlayer.InvGrid) { itemId -= 1; @@ -89,7 +89,7 @@ void TakeGoldCheat() void MaxSpellsCheat() { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; for (int i = SPL_FIREBOLT; i < MAX_SPELLS; i++) { if (GetSpellBookLevel((spell_id)i) != -1) { @@ -101,7 +101,7 @@ void MaxSpellsCheat() void SetSpellLevelCheat(spell_id spl, int spllvl) { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; myPlayer._pMemSpells |= GetSpellBitmask(spl); myPlayer._pSplLvl[spl] = spllvl; @@ -142,23 +142,23 @@ void PrintDebugPlayer(bool bNextPlayer) if (bNextPlayer) DebugPlayerId = ((BYTE)DebugPlayerId + 1) & 3; - auto &player = plr[DebugPlayerId]; + auto &player = Players[DebugPlayerId]; sprintf(dstr, "Plr %i : Active = %i", DebugPlayerId, player.plractive ? 1 : 0); - NetSendCmdString(1 << myplr, dstr); + NetSendCmdString(1 << MyPlayerId, dstr); if (player.plractive) { sprintf(dstr, " Plr %i is %s", DebugPlayerId, player._pName); - NetSendCmdString(1 << myplr, dstr); + NetSendCmdString(1 << MyPlayerId, dstr); sprintf(dstr, " Lvl = %i : Change = %i", player.plrlevel, player._pLvlChanging ? 1 : 0); - NetSendCmdString(1 << myplr, dstr); + NetSendCmdString(1 << MyPlayerId, dstr); const Point target = player.GetTargetPosition(); sprintf(dstr, " x = %i, y = %i : tx = %i, ty = %i", player.position.tile.x, player.position.tile.y, target.x, target.y); - NetSendCmdString(1 << myplr, dstr); + NetSendCmdString(1 << MyPlayerId, dstr); sprintf(dstr, " mode = %i : daction = %i : walk[0] = %i", player._pmode, player.destAction, player.walkpath[0]); - NetSendCmdString(1 << myplr, dstr); + NetSendCmdString(1 << MyPlayerId, dstr); sprintf(dstr, " inv = %i : hp = %i", player._pInvincible ? 1 : 0, player._pHitPoints); - NetSendCmdString(1 << myplr, dstr); + NetSendCmdString(1 << MyPlayerId, dstr); } } @@ -169,7 +169,7 @@ void PrintDebugQuest() char dstr[128]; sprintf(dstr, "Quest %i : Active = %i, Var1 = %i", DebugQuestId, quests[DebugQuestId]._qactive, quests[DebugQuestId]._qvar1); - NetSendCmdString(1 << myplr, dstr); + NetSendCmdString(1 << MyPlayerId, dstr); DebugQuestId++; if (DebugQuestId == MAXQUESTS) @@ -183,13 +183,13 @@ void PrintDebugMonster(int m) char dstr[128]; sprintf(dstr, "Monster %i = %s", m, _(Monsters[m].mName)); - NetSendCmdString(1 << myplr, dstr); + NetSendCmdString(1 << MyPlayerId, dstr); sprintf(dstr, "X = %i, Y = %i", Monsters[m].position.tile.x, Monsters[m].position.tile.y); - NetSendCmdString(1 << myplr, dstr); + NetSendCmdString(1 << MyPlayerId, dstr); sprintf(dstr, "Enemy = %i, HP = %i", Monsters[m]._menemy, Monsters[m]._mhitpoints); - NetSendCmdString(1 << myplr, dstr); + NetSendCmdString(1 << MyPlayerId, dstr); sprintf(dstr, "Mode = %i, Var1 = %i", Monsters[m]._mmode, Monsters[m]._mVar1); - NetSendCmdString(1 << myplr, dstr); + NetSendCmdString(1 << MyPlayerId, dstr); bActive = false; @@ -199,7 +199,7 @@ void PrintDebugMonster(int m) } sprintf(dstr, "Active List = %i, Squelch = %i", bActive ? 1 : 0, Monsters[m]._msquelch); - NetSendCmdString(1 << myplr, dstr); + NetSendCmdString(1 << MyPlayerId, dstr); } int DebugMonsterId; @@ -229,7 +229,7 @@ void NextDebugMonster() DebugMonsterId = 0; sprintf(dstr, "Current debug monster = %i", DebugMonsterId); - NetSendCmdString(1 << myplr, dstr); + NetSendCmdString(1 << MyPlayerId, dstr); } #endif diff --git a/Source/diablo.cpp b/Source/diablo.cpp index eddccc3c4..27fce0dc3 100644 --- a/Source/diablo.cpp +++ b/Source/diablo.cpp @@ -245,7 +245,7 @@ static void DiabloParseFlags(int argc, char **argv) leveldebug = true; leveltype = (dungeon_type)SDL_atoi(argv[++i]); currlevel = SDL_atoi(argv[++i]); - plr[0].plrlevel = currlevel; + Players[0].plrlevel = currlevel; } else if (strcasecmp("-m", argv[i]) == 0) { monstdebug = true; DebugMonsters[debugmonsttypes++] = (_monster_id)SDL_atoi(argv[++i]); @@ -316,7 +316,7 @@ static void FreeGame() FreeQuestText(); FreeStoreMem(); - for (auto &player : plr) + for (auto &player : Players) ResetPlayerGFX(player); FreeCursor(); @@ -450,7 +450,7 @@ bool StartGame(bool bNewGame, bool bSinglePlayer) InitLevels(); InitQuests(); InitPortals(); - InitDungMsgs(plr[myplr]); + InitDungMsgs(Players[MyPlayerId]); } interface_mode uMsg = WM_DIABNEWGAME; if (gbValidSaveFile && gbLoadGame) { @@ -621,7 +621,7 @@ static bool LeftMouseCmd(bool bShift) if (pcursitem == -1 && pcursmonst == -1 && pcursplr == -1) return true; } else { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; bNear = myPlayer.position.tile.WalkingDistance({ cursmx, cursmy }) < 2; if (pcursitem != -1 && pcurs == CURSOR_HAND && !bShift) { NetSendCmdLocParam1(true, invflag ? CMD_GOTOGETITEM : CMD_GOTOAGETITEM, { cursmx, cursmy }, pcursitem); @@ -629,7 +629,7 @@ static bool LeftMouseCmd(bool bShift) NetSendCmdLocParam1(true, pcurs == CURSOR_DISARM ? CMD_DISARMXY : CMD_OPOBJXY, { cursmx, cursmy }, pcursobj); } else if (myPlayer._pwtype == WT_RANGED) { if (bShift) { - NetSendCmdLoc(myplr, true, CMD_RATTACKXY, { cursmx, cursmy }); + NetSendCmdLoc(MyPlayerId, true, CMD_RATTACKXY, { cursmx, cursmy }); } else if (pcursmonst != -1) { if (CanTalkToMonst(pcursmonst)) { NetSendCmdParam1(true, CMD_ATTACKID, pcursmonst); @@ -645,10 +645,10 @@ static bool LeftMouseCmd(bool bShift) if (CanTalkToMonst(pcursmonst)) { NetSendCmdParam1(true, CMD_ATTACKID, pcursmonst); } else { - NetSendCmdLoc(myplr, true, CMD_SATTACKXY, { cursmx, cursmy }); + NetSendCmdLoc(MyPlayerId, true, CMD_SATTACKXY, { cursmx, cursmy }); } } else { - NetSendCmdLoc(myplr, true, CMD_SATTACKXY, { cursmx, cursmy }); + NetSendCmdLoc(MyPlayerId, true, CMD_SATTACKXY, { cursmx, cursmy }); } } else if (pcursmonst != -1) { NetSendCmdParam1(true, CMD_ATTACKID, pcursmonst); @@ -682,7 +682,7 @@ bool TryIconCurs() if (pcurs == CURSOR_IDENTIFY) { if (pcursinvitem != -1) - CheckIdentify(myplr, pcursinvitem); + CheckIdentify(MyPlayerId, pcursinvitem); else NewCursor(CURSOR_HAND); return true; @@ -690,7 +690,7 @@ bool TryIconCurs() if (pcurs == CURSOR_REPAIR) { if (pcursinvitem != -1) - DoRepair(myplr, pcursinvitem); + DoRepair(MyPlayerId, pcursinvitem); else NewCursor(CURSOR_HAND); return true; @@ -698,7 +698,7 @@ bool TryIconCurs() if (pcurs == CURSOR_RECHARGE) { if (pcursinvitem != -1) - DoRecharge(myplr, pcursinvitem); + DoRecharge(MyPlayerId, pcursinvitem); else NewCursor(CURSOR_HAND); return true; @@ -706,20 +706,20 @@ bool TryIconCurs() if (pcurs == CURSOR_OIL) { if (pcursinvitem != -1) - DoOil(myplr, pcursinvitem); + DoOil(MyPlayerId, pcursinvitem); else NewCursor(CURSOR_HAND); return true; } if (pcurs == CURSOR_TELEPORT) { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (pcursmonst != -1) - NetSendCmdParam3(true, CMD_TSPELLID, pcursmonst, myPlayer._pTSpell, GetSpellLevel(myplr, myPlayer._pTSpell)); + NetSendCmdParam3(true, CMD_TSPELLID, pcursmonst, myPlayer._pTSpell, GetSpellLevel(MyPlayerId, myPlayer._pTSpell)); else if (pcursplr != -1) - NetSendCmdParam3(true, CMD_TSPELLPID, pcursplr, myPlayer._pTSpell, GetSpellLevel(myplr, myPlayer._pTSpell)); + NetSendCmdParam3(true, CMD_TSPELLPID, pcursplr, myPlayer._pTSpell, GetSpellLevel(MyPlayerId, myPlayer._pTSpell)); else - NetSendCmdLocParam2(true, CMD_TSPELLXY, { cursmx, cursmy }, myPlayer._pTSpell, GetSpellLevel(myplr, myPlayer._pTSpell)); + NetSendCmdLocParam2(true, CMD_TSPELLXY, { cursmx, cursmy }, myPlayer._pTSpell, GetSpellLevel(MyPlayerId, myPlayer._pTSpell)); NewCursor(CURSOR_HAND); return true; } @@ -743,7 +743,7 @@ static bool LeftMouseDown(int wParam) if (sgnTimeoutCurs != CURSOR_NONE) return false; - if (deathflag) { + if (MyPlayerIsDead) { control_check_btn_press(); return false; } @@ -788,7 +788,7 @@ static bool LeftMouseDown(int wParam) NewCursor(CURSOR_HAND); } } else { - if (plr[myplr]._pStatPts != 0 && !spselflag) + if (Players[MyPlayerId]._pStatPts != 0 && !spselflag) CheckLvlBtn(); if (!lvlbtndown) return LeftMouseCmd(isShiftHeld); @@ -822,7 +822,7 @@ static void LeftMouseUp(int wParam) static void RightMouseDown() { - if (gmenu_is_active() || sgnTimeoutCurs != CURSOR_NONE || PauseMode == 2 || plr[myplr]._pInvincible) { + if (gmenu_is_active() || sgnTimeoutCurs != CURSOR_NONE || PauseMode == 2 || Players[MyPlayerId]._pInvincible) { return; } @@ -839,9 +839,9 @@ static void RightMouseDown() if (MousePosition.y >= SPANEL_HEIGHT || ((!sbookflag || MousePosition.x <= RIGHT_PANEL) && !TryIconCurs() - && (pcursinvitem == -1 || !UseInvItem(myplr, pcursinvitem)))) { + && (pcursinvitem == -1 || !UseInvItem(MyPlayerId, pcursinvitem)))) { if (pcurs == CURSOR_HAND) { - if (pcursinvitem == -1 || !UseInvItem(myplr, pcursinvitem)) + if (pcursinvitem == -1 || !UseInvItem(MyPlayerId, pcursinvitem)) CheckPlrSpell(); } else if (pcurs > CURSOR_HAND && pcurs < CURSOR_FIRSTITEM) { NewCursor(CURSOR_HAND); @@ -969,7 +969,7 @@ static void PressKey(int vkey) if (vkey == DVL_VK_MENU || vkey == DVL_VK_LMENU || vkey == DVL_VK_RMENU) AltPressed(true); - if (deathflag) { + if (MyPlayerIsDead) { if (sgnTimeoutCurs != CURSOR_NONE) { return; } @@ -1075,7 +1075,7 @@ static void PressKey(int vkey) */ static void PressChar(int32_t vkey) { - if (gmenu_is_active() || control_talk_last_key(vkey) || sgnTimeoutCurs != CURSOR_NONE || deathflag) { + if (gmenu_is_active() || control_talk_last_key(vkey) || sgnTimeoutCurs != CURSOR_NONE || MyPlayerIsDead) { return; } if ((char)vkey == 'p' || (char)vkey == 'P') { @@ -1114,7 +1114,7 @@ static void PressChar(int32_t vkey) if (arrowdebug > 2) { arrowdebug = 0; } - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (arrowdebug == 0) { myPlayer._pIFlags &= ~ISPL_FIRE_ARROWS; myPlayer._pIFlags &= ~ISPL_LIGHT_ARROWS; @@ -1146,7 +1146,7 @@ static void PressChar(int32_t vkey) case 'a': if (debug_mode_key_inverted_v) { spelldata[SPL_TELEPORT].sTownSpell = true; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; myPlayer._pSplLvl[myPlayer._pSpell]++; } return; @@ -1171,20 +1171,20 @@ static void PressChar(int32_t vkey) case 'R': case 'r': sprintf(tempstr, "seed = %i", glSeedTbl[currlevel]); - NetSendCmdString(1 << myplr, tempstr); + NetSendCmdString(1 << MyPlayerId, tempstr); sprintf(tempstr, "Mid1 = %i : Mid2 = %i : Mid3 = %i", glMid1Seed[currlevel], glMid2Seed[currlevel], glMid3Seed[currlevel]); - NetSendCmdString(1 << myplr, tempstr); + NetSendCmdString(1 << MyPlayerId, tempstr); sprintf(tempstr, "End = %i", glEndSeed[currlevel]); - NetSendCmdString(1 << myplr, tempstr); + NetSendCmdString(1 << MyPlayerId, tempstr); return; case 'T': case 't': if (debug_mode_key_inverted_v) { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; sprintf(tempstr, "PX = %i PY = %i", myPlayer.position.tile.x, myPlayer.position.tile.y); - NetSendCmdString(1 << myplr, tempstr); + NetSendCmdString(1 << MyPlayerId, tempstr); sprintf(tempstr, "CX = %i CY = %i DP = %i", cursmx, cursmy, dungeon[cursmx][cursmy]); - NetSendCmdString(1 << myplr, tempstr); + NetSendCmdString(1 << MyPlayerId, tempstr); } return; case '|': @@ -1453,7 +1453,7 @@ static void UpdateMonsterLights() for (int i = 0; i < ActiveMonsterCount; i++) { MonsterStruct *mon = &Monsters[ActiveMonsters[i]]; if (mon->mlid != NO_LIGHT) { - if (mon->mlid == plr[myplr]._plid) { // Fix old saves where some monsters had 0 instead of NO_LIGHT + if (mon->mlid == Players[MyPlayerId]._plid) { // Fix old saves where some monsters had 0 instead of NO_LIGHT mon->mlid = NO_LIGHT; continue; } @@ -1506,7 +1506,7 @@ void LoadGameLevel(bool firstflag, lvl_entry lvldir) InitLevelMonsters(); IncProgress(); - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (!setlevel) { CreateLevel(lvldir); @@ -1536,7 +1536,7 @@ void LoadGameLevel(bool firstflag, lvl_entry lvldir) IncProgress(); for (int i = 0; i < MAX_PLRS; i++) { - auto &player = plr[i]; + auto &player = Players[i]; if (player.plractive && currlevel == player.plrlevel) { InitPlayerGFX(player); if (lvldir != ENTRY_LOAD) @@ -1551,7 +1551,7 @@ void LoadGameLevel(bool firstflag, lvl_entry lvldir) bool visited = false; int players = gbIsMultiplayer ? MAX_PLRS : 1; for (int i = 0; i < players; i++) { - auto &player = plr[i]; + auto &player = Players[i]; if (player.plractive) visited = visited || player._pLvlVisited[currlevel]; } @@ -1631,7 +1631,7 @@ void LoadGameLevel(bool firstflag, lvl_entry lvldir) IncProgress(); for (int i = 0; i < MAX_PLRS; i++) { - auto &player = plr[i]; + auto &player = Players[i]; if (player.plractive && currlevel == player.plrlevel) { InitPlayerGFX(player); if (lvldir != ENTRY_LOAD) @@ -1657,8 +1657,8 @@ void LoadGameLevel(bool firstflag, lvl_entry lvldir) SyncPortals(); for (int i = 0; i < MAX_PLRS; i++) { - auto &player = plr[i]; - if (player.plractive && player.plrlevel == currlevel && (!player._pLvlChanging || i == myplr)) { + auto &player = Players[i]; + if (player.plractive && player.plrlevel == currlevel && (!player._pLvlChanging || i == MyPlayerId)) { if (player._pHitPoints > 0) { if (!gbIsMultiplayer) dPlayer[player.position.tile.x][player.position.tile.y] = i + 1; @@ -1849,10 +1849,10 @@ void itemInfoKeyPressed() Items[pcursitem].IDidx, Items[pcursitem]._iSeed, Items[pcursitem]._iCreateInfo); - NetSendCmdString(1 << myplr, tempstr); + NetSendCmdString(1 << MyPlayerId, tempstr); } sprintf(tempstr, "Numitems : %i", ActiveItemCount); - NetSendCmdString(1 << myplr, tempstr); + NetSendCmdString(1 << MyPlayerId, tempstr); } #endif @@ -1954,7 +1954,7 @@ void spellBookKeyPressed() bool isPlayerDead() { - return plr[myplr]._pmode == PM_DEATH || deathflag; + return Players[MyPlayerId]._pmode == PM_DEATH || MyPlayerIsDead; } void initKeymapActions() @@ -2062,7 +2062,7 @@ void initKeymapActions() _("Hell"), }; strcpy(pszStr, fmt::format(_(/* TRANSLATORS: {:s} means: Character Name, Game Version, Game Difficulty. */ "{:s}, version = {:s}, mode = {:s}"), gszProductName, PROJECT_VERSION, difficulties[sgGameInitInfo.nDifficulty]).c_str()); - NetSendCmdString(1 << myplr, pszStr); + NetSendCmdString(1 << MyPlayerId, pszStr); }, [&]() { return !isPlayerDead(); }, }); @@ -2071,9 +2071,9 @@ void initKeymapActions() std::string("BeltItem") + std::to_string(i + 1), '1' + i, [i] { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (!myPlayer.SpdList[i].isEmpty() && myPlayer.SpdList[i]._itype != ITYPE_GOLD) { - UseInvItem(myplr, INVITEM_BELT_FIRST + i); + UseInvItem(MyPlayerId, INVITEM_BELT_FIRST + i); } }, [&]() { return !isPlayerDead(); }, @@ -2112,7 +2112,7 @@ void initKeymapActions() keymapper.addAction({ "StopHero", DVL_VK_INVALID, - [] { plr[myplr].Stop(); }, + [] { Players[MyPlayerId].Stop(); }, [&]() { return !isPlayerDead(); }, }); } diff --git a/Source/drlg_l1.cpp b/Source/drlg_l1.cpp index 7ef6880bf..6ada1bb1f 100644 --- a/Source/drlg_l1.cpp +++ b/Source/drlg_l1.cpp @@ -2310,7 +2310,7 @@ static void DrlgL5(lvl_entry entry) } } else if (entry == ENTRY_MAIN) { if (currlevel < 21) { - if (!plr[myplr].pOriginalCathedral) { + if (!Players[MyPlayerId].pOriginalCathedral) { if (DrlgPlaceMiniSet(STAIRSUP, 1, 1, 0, 0, true, -1, 0) < 0) doneflag = false; if (DrlgPlaceMiniSet(STAIRSDOWN, 1, 1, 0, 0, false, -1, 1) < 0) @@ -2336,7 +2336,7 @@ static void DrlgL5(lvl_entry entry) } ViewY++; } - } else if (!plr[myplr].pOriginalCathedral && entry == ENTRY_PREV) { + } else if (!Players[MyPlayerId].pOriginalCathedral && entry == ENTRY_PREV) { if (currlevel < 21) { if (DrlgPlaceMiniSet(STAIRSUP, 1, 1, 0, 0, false, -1, 0) < 0) doneflag = false; @@ -2360,7 +2360,7 @@ static void DrlgL5(lvl_entry entry) } } else { if (currlevel < 21) { - if (!plr[myplr].pOriginalCathedral) { + if (!Players[MyPlayerId].pOriginalCathedral) { if (DrlgPlaceMiniSet(STAIRSUP, 1, 1, 0, 0, false, -1, 0) < 0) doneflag = false; if (DrlgPlaceMiniSet(STAIRSDOWN, 1, 1, 0, 0, false, -1, 1) < 0) diff --git a/Source/dvlnet/base_protocol.h b/Source/dvlnet/base_protocol.h index 1b0df6d2f..c70ae6ed3 100644 --- a/Source/dvlnet/base_protocol.h +++ b/Source/dvlnet/base_protocol.h @@ -155,7 +155,7 @@ template void base_protocol

::send(packet &pkt) { if (pkt.dest() < MAX_PLRS) { - if (pkt.dest() == myplr) + if (pkt.dest() == MyPlayerId) return; if (peers[pkt.dest()]) proto.send(peers[pkt.dest()], pkt.data()); diff --git a/Source/effects.cpp b/Source/effects.cpp index 6a4c80d4f..5183d4676 100644 --- a/Source/effects.cpp +++ b/Source/effects.cpp @@ -1144,7 +1144,7 @@ void FreeMonsterSnd() bool calc_snd_position(Point soundPosition, int *plVolume, int *plPan) { - const auto &playerPosition = plr[myplr].position.tile; + const auto &playerPosition = Players[MyPlayerId].position.tile; const auto delta = soundPosition - playerPosition; int pan = (delta.deltaX - delta.deltaY) * 256; @@ -1163,7 +1163,7 @@ bool calc_snd_position(Point soundPosition, int *plVolume, int *plPan) static void PlaySfxPriv(TSFX *pSFX, bool loc, Point position) { - if (plr[myplr].pLvlLoad != 0 && gbIsMultiplayer) { + if (Players[MyPlayerId].pLvlLoad != 0 && gbIsMultiplayer) { return; } if (!gbSndInited || !gbSoundOn || gbBufferMsgs != 0) { @@ -1194,7 +1194,7 @@ static void PlaySfxPriv(TSFX *pSFX, bool loc, Point position) void PlayEffect(int i, int mode) { - if (plr[myplr].pLvlLoad != 0) { + if (Players[MyPlayerId].pLvlLoad != 0) { return; } @@ -1337,7 +1337,7 @@ void sound_init() if (gbIsHellfire) mask |= sfx_MONK; } else { - switch (plr[myplr]._pClass) { + switch (Players[MyPlayerId]._pClass) { case HeroClass::Warrior: case HeroClass::Barbarian: mask |= sfx_WARRIOR; diff --git a/Source/gamemenu.cpp b/Source/gamemenu.cpp index a455e0458..85a84e796 100644 --- a/Source/gamemenu.cpp +++ b/Source/gamemenu.cpp @@ -80,14 +80,14 @@ void GamemenuUpdateSingle() { gmenu_enable(&sgSingleMenu[3], gbValidSaveFile); - bool enable = plr[myplr]._pmode != PM_DEATH && !deathflag; + bool enable = Players[MyPlayerId]._pmode != PM_DEATH && !MyPlayerIsDead; gmenu_enable(&sgSingleMenu[0], enable); } void GamemenuUpdateMulti() { - gmenu_enable(&sgMultiMenu[2], deathflag); + gmenu_enable(&sgMultiMenu[2], MyPlayerIsDead); } void GamemenuPrevious(bool /*bActivate*/) @@ -97,12 +97,12 @@ void GamemenuPrevious(bool /*bActivate*/) void GamemenuNewGame(bool /*bActivate*/) { - for (auto &player : plr) { + for (auto &player : Players) { player._pmode = PM_QUIT; player._pInvincible = true; } - deathflag = false; + MyPlayerIsDead = false; force_redraw = 255; scrollrt_draw_game_screen(); CornerStone.activated = false; @@ -319,7 +319,7 @@ void gamemenu_load_game(bool /*bActivate*/) ClrDiabloMsg(); CornerStone.activated = false; PaletteFadeOut(8); - deathflag = false; + MyPlayerIsDead = false; force_redraw = 255; DrawAndBlit(); LoadPWaterPalette(); @@ -335,7 +335,7 @@ void gamemenu_save_game(bool /*bActivate*/) return; } - if (plr[myplr]._pmode == PM_DEATH || deathflag) { + if (Players[MyPlayerId]._pmode == PM_DEATH || MyPlayerIsDead) { gamemenu_off(); return; } diff --git a/Source/interfac.cpp b/Source/interfac.cpp index 1aa032b22..6c2080415 100644 --- a/Source/interfac.cpp +++ b/Source/interfac.cpp @@ -55,7 +55,7 @@ static Cutscenes PickCutscene(interface_mode uMsg) case WM_DIABPREVLVL: case WM_DIABTOWNWARP: case WM_DIABTWARPUP: { - int lvl = plr[myplr].plrlevel; + int lvl = Players[MyPlayerId].plrlevel; if (lvl == 1 && uMsg == WM_DIABNEXTLVL) return CutTown; if (lvl == 16 && uMsg == WM_DIABNEXTLVL) @@ -235,7 +235,7 @@ void ShowProgress(interface_mode uMsg) sound_init(); IncProgress(); - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; switch (uMsg) { case WM_DIABLOADGAME: diff --git a/Source/inv.cpp b/Source/inv.cpp index 33725f49e..efd9b4eea 100644 --- a/Source/inv.cpp +++ b/Source/inv.cpp @@ -141,7 +141,7 @@ void FreeInvGFX() void InitInv() { - switch (plr[myplr]._pClass) { + switch (Players[MyPlayerId]._pClass) { case HeroClass::Warrior: case HeroClass::Barbarian: pInvCels = LoadCel("Data\\Inv\\Inv.CEL", SPANEL_WIDTH); @@ -210,7 +210,7 @@ void DrawInv(const Surface &out) { 133, 160 }, // chest }; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; for (int slot = INVLOC_HEAD; slot < NUM_INVLOC; slot++) { if (!myPlayer.InvBody[slot].isEmpty()) { @@ -303,7 +303,7 @@ void DrawInvBelt(const Surface &out) DrawPanelBox(out, { 205, 21, 232, 28 }, { PANEL_X + 205, PANEL_Y + 5 }); - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; for (int i = 0; i < MAXBELTITEMS; i++) { if (myPlayer.SpdList[i].isEmpty()) { @@ -534,7 +534,7 @@ bool CanEquip(PlayerStruct &player, const ItemStruct &item, inv_body_loc bodyLoc */ bool AutoEquip(int playerId, const ItemStruct &item, inv_body_loc bodyLocation, bool persistItem) { - auto &player = plr[playerId]; + auto &player = Players[playerId]; if (!CanEquip(player, item, bodyLocation)) { return false; @@ -543,7 +543,7 @@ bool AutoEquip(int playerId, const ItemStruct &item, inv_body_loc bodyLocation, if (persistItem) { player.InvBody[bodyLocation] = item; - if (sgOptions.Audio.bAutoEquipSound && playerId == myplr) { + if (sgOptions.Audio.bAutoEquipSound && playerId == MyPlayerId) { PlaySFX(ItemInvSnds[ItemCAnimTbl[item._iCurs]]); } @@ -791,7 +791,7 @@ int SwapItem(ItemStruct *a, ItemStruct *b) void CheckInvPaste(int pnum, Point cursorPosition) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; SetICursor(player.HoldItem._iCurs + CURSOR_FIRSTITEM); int i = cursorPosition.x + (IsHardwareCursor() ? 0 : (icursW / 2)); @@ -922,7 +922,7 @@ void CheckInvPaste(int pnum, Point cursorPosition) if (!done) return; - if (pnum == myplr) + if (pnum == MyPlayerId) PlaySFX(ItemInvSnds[ItemCAnimTbl[player.HoldItem._iCurs]]); int cn = CURSOR_HAND; @@ -1013,13 +1013,13 @@ void CheckInvPaste(int pnum, Point cursorPosition) player.HoldItem = player.InvBody[INVLOC_HAND_RIGHT]; else player.HoldItem = player.InvBody[INVLOC_HAND_LEFT]; - if (pnum == myplr) + if (pnum == MyPlayerId) NewCursor(player.HoldItem._iCurs + CURSOR_FIRSTITEM); else SetICursor(player.HoldItem._iCurs + CURSOR_FIRSTITEM); bool done2h = AutoPlaceItemInInventory(player, player.HoldItem, true); player.HoldItem = tempitem; - if (pnum == myplr) + if (pnum == MyPlayerId) NewCursor(player.HoldItem._iCurs + CURSOR_FIRSTITEM); else SetICursor(player.HoldItem._iCurs + CURSOR_FIRSTITEM); @@ -1122,7 +1122,7 @@ void CheckInvPaste(int pnum, Point cursorPosition) break; } CalcPlrInv(pnum, true); - if (pnum == myplr) { + if (pnum == MyPlayerId) { if (cn == CURSOR_HAND && !IsHardwareCursor()) SetCursorPos(MousePosition.x + (cursW / 2), MousePosition.y + (cursH / 2)); NewCursor(cn); @@ -1134,7 +1134,7 @@ void CheckInvSwap(int pnum, BYTE bLoc, int idx, uint16_t wCI, int seed, bool bId memset(&Items[MAXITEMS], 0, sizeof(*Items)); RecreateItem(MAXITEMS, idx, wCI, seed, 0, (dwBuff & CF_HELLFIRE) != 0); - auto &player = plr[pnum]; + auto &player = Players[pnum]; player.HoldItem = Items[MAXITEMS]; @@ -1157,7 +1157,7 @@ void CheckInvSwap(int pnum, BYTE bLoc, int idx, uint16_t wCI, int seed, bool bId void CheckInvCut(int pnum, Point cursorPosition, bool automaticMove) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (player._pmode > PM_WALK3) { return; @@ -1343,7 +1343,7 @@ void CheckInvCut(int pnum, Point cursorPosition, bool automaticMove) CalcPlrInv(pnum, true); CheckItemStats(player); - if (pnum == myplr) { + if (pnum == MyPlayerId) { if (automaticallyEquipped) { PlaySFX(ItemInvSnds[ItemCAnimTbl[holdItem._iCurs]]); } else if (!automaticMove || automaticallyMoved) { @@ -1373,7 +1373,7 @@ void CheckInvCut(int pnum, Point cursorPosition, bool automaticMove) void inv_update_rem_item(int pnum, BYTE iv) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (iv < NUM_INVLOC) { player.InvBody[iv]._itype = ITYPE_NONE; @@ -1385,9 +1385,9 @@ void inv_update_rem_item(int pnum, BYTE iv) void CheckInvItem(bool isShiftHeld) { if (pcurs >= CURSOR_FIRSTITEM) { - CheckInvPaste(myplr, MousePosition); + CheckInvPaste(MyPlayerId, MousePosition); } else { - CheckInvCut(myplr, MousePosition, isShiftHeld); + CheckInvCut(MyPlayerId, MousePosition, isShiftHeld); } } @@ -1447,7 +1447,7 @@ static void CheckNaKrulNotes(PlayerStruct &player) } } - plr[myplr].Say(HeroSpeech::JustWhatIWasLookingFor, 10); + Players[MyPlayerId].Say(HeroSpeech::JustWhatIWasLookingFor, 10); for (auto note : notes) { if (idx != note) { @@ -1466,7 +1466,7 @@ static void CheckNaKrulNotes(PlayerStruct &player) static void CheckQuestItem(PlayerStruct &player) { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (player.HoldItem.IDidx == IDI_OPTAMULET && quests[Q_BLIND]._qactive == QUEST_ACTIVE) quests[Q_BLIND]._qactive = QUEST_DONE; @@ -1507,7 +1507,7 @@ static void CheckQuestItem(PlayerStruct &player) quests[Q_GRAVE]._qlog = false; quests[Q_GRAVE]._qactive = QUEST_ACTIVE; quests[Q_GRAVE]._qvar1 = 1; - plr[myplr].Say(HeroSpeech::UhHuh, 10); + Players[MyPlayerId].Say(HeroSpeech::UhHuh, 10); } CheckNaKrulNotes(player); @@ -1548,9 +1548,9 @@ void InvGetItem(int pnum, ItemStruct *item, int ii) if (dItem[item->position.x][item->position.y] == 0) return; - auto &player = plr[pnum]; + auto &player = Players[pnum]; - if (myplr == pnum && pcurs >= CURSOR_FIRSTITEM) + if (MyPlayerId == pnum && pcurs >= CURSOR_FIRSTITEM) NetSendCmdPItem(true, CMD_SYNCPUTITEM, player.position.tile); item->_iCreateInfo &= ~CF_PREGEN; @@ -1583,7 +1583,7 @@ void AutoGetItem(int pnum, ItemStruct *item, int ii) if (dItem[item->position.x][item->position.y] == 0) return; - auto &player = plr[pnum]; + auto &player = Players[pnum]; item->_iCreateInfo &= ~CF_PREGEN; player.HoldItem = *item; /// BUGFIX: overwrites cursor item, allowing for belt dupe bug @@ -1612,7 +1612,7 @@ void AutoGetItem(int pnum, ItemStruct *item, int ii) return; } - if (pnum == myplr) { + if (pnum == MyPlayerId) { player.Say(HeroSpeech::ICantCarryAnymore); } player.HoldItem = *item; @@ -1706,7 +1706,7 @@ bool TryInvPut() if (ActiveItemCount >= MAXITEMS) return false; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; Direction dir = GetDirection(myPlayer.position.tile, { cursmx, cursmy }); if (CanPut(myPlayer.position.tile + dir)) { @@ -1877,7 +1877,7 @@ char CheckInvHLight() int8_t rv = -1; infoclr = UIS_SILVER; ItemStruct *pi = nullptr; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; ClearPanel(); if (r >= SLOTXY_HEAD_FIRST && r <= SLOTXY_HEAD_LAST) { @@ -1970,7 +1970,7 @@ bool UseScroll() if (pcurs != CURSOR_HAND) return false; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (leveltype == DTYPE_TOWN && !spelldata[myPlayer._pRSpell].sTownSpell) return false; @@ -2018,7 +2018,7 @@ bool UseStaff() return false; } - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; return CanUseStaff(myPlayer.InvBody[INVLOC_HAND_LEFT], myPlayer._pRSpell); } @@ -2027,7 +2027,7 @@ void StartGoldDrop() { initialDropGoldIndex = pcursinvitem; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (pcursinvitem <= INVITEM_INV_LAST) initialDropGoldValue = myPlayer.InvList[pcursinvitem - INVITEM_INV_FIRST]._ivalue; @@ -2046,9 +2046,9 @@ bool UseInvItem(int pnum, int cii) int c; ItemStruct *item; - auto &player = plr[pnum]; + auto &player = Players[pnum]; - if (player._pInvincible && player._pHitPoints == 0 && pnum == myplr) + if (player._pInvincible && player._pHitPoints == 0 && pnum == MyPlayerId) return true; if (pcurs != CURSOR_HAND) return true; @@ -2113,7 +2113,7 @@ bool UseInvItem(int pnum, int cii) int idata = ItemCAnimTbl[item->_iCurs]; if (item->_iMiscId == IMISC_BOOK) PlaySFX(IS_RBOOK); - else if (pnum == myplr) + else if (pnum == MyPlayerId) PlaySFX(ItemInvSnds[idata]); UseItem(pnum, item->_iMiscId, item->_iSpell); @@ -2144,7 +2144,7 @@ void DoTelekinesis() if (pcursobj != -1) NetSendCmdParam1(true, CMD_OPOBJT, pcursobj); if (pcursitem != -1) - NetSendCmdGItem(true, CMD_REQUESTAGITEM, myplr, myplr, pcursitem); + NetSendCmdGItem(true, CMD_REQUESTAGITEM, MyPlayerId, MyPlayerId, pcursitem); if (pcursmonst != -1 && !M_Talker(pcursmonst) && Monsters[pcursmonst].mtalkmsg == TEXT_NONE) NetSendCmdParam1(true, CMD_KNOCKBACK, pcursmonst); NewCursor(CURSOR_HAND); diff --git a/Source/items.cpp b/Source/items.cpp index be4fa9303..567c0a7be 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -553,7 +553,7 @@ void InitItems() void CalcPlrItemVals(int playerId, bool loadgfx) { - auto &player = plr[playerId]; + auto &player = Players[playerId]; int mind = 0; // min damage int maxd = 0; // max damage @@ -686,7 +686,7 @@ void CalcPlrItemVals(int playerId, bool loadgfx) lrad = clamp(lrad, 2, 15); - if (player._pLightRad != lrad && playerId == myplr) { + if (player._pLightRad != lrad && playerId == MyPlayerId) { ChangeLightRadius(player._plid, lrad); ChangeVisionRadius(player._pvid, lrad); player._pLightRad = lrad; @@ -795,7 +795,7 @@ void CalcPlrItemVals(int playerId, bool loadgfx) player._pMaxHP = ihp + player._pMaxHPBase; player._pHitPoints = std::min(ihp + player._pHPBase, player._pMaxHP); - if (playerId == myplr && (player._pHitPoints >> 6) <= 0) { + if (playerId == MyPlayerId && (player._pHitPoints >> 6) <= 0) { SetPlayerHitPoints(playerId, 0); } @@ -1016,17 +1016,17 @@ void CalcPlrBookVals(PlayerStruct &player) void CalcPlrInv(int playerId, bool loadgfx) { - auto &player = plr[playerId]; + auto &player = Players[playerId]; CalcPlrItemMin(player); CalcSelfItems(player); CalcPlrItemVals(playerId, loadgfx); CalcPlrItemMin(player); - if (playerId == myplr) { + if (playerId == MyPlayerId) { CalcPlrBookVals(player); player.CalcScrolls(); CalcPlrStaff(player); - if (playerId == myplr && currlevel == 0) + if (playerId == MyPlayerId && currlevel == 0) RecalcStoreStats(); } } @@ -1095,9 +1095,9 @@ void GetGoldSeed(int pnum, ItemStruct *h) if (Items[ii]._iSeed == s) doneflag = false; } - if (pnum == myplr) { - for (int i = 0; i < plr[pnum]._pNumInv; i++) { - if (plr[pnum].InvList[i]._iSeed == s) + if (pnum == MyPlayerId) { + for (int i = 0; i < Players[pnum]._pNumInv; i++) { + if (Players[pnum].InvList[i]._iSeed == s) doneflag = false; } } @@ -1133,7 +1133,7 @@ void SetPlrHandGoldCurs(ItemStruct *h) void CreatePlrItems(int playerId) { - auto &player = plr[playerId]; + auto &player = Players[playerId]; for (auto &item : player.InvBody) { item._itype = ITYPE_NONE; @@ -1992,7 +1992,7 @@ void SaveItemPower(int i, item_effect_type power, int param1, int param2, int mi Items[i]._iLMaxDam = 0; break; case IPL_FIRERESCLVL: - Items[i]._iPLFR = 30 - plr[myplr]._pLevel; + Items[i]._iPLFR = 30 - Players[MyPlayerId]._pLevel; Items[i]._iPLFR = std::max(Items[i]._iPLFR, 0); break; @@ -2030,12 +2030,12 @@ void SaveItemPower(int i, item_effect_type power, int param1, int param2, int mi Items[i]._iDamAcFlags |= ISPLHF_ACUNDEAD; break; case IPL_MANATOLIFE: - r2 = ((plr[myplr]._pMaxManaBase >> 6) * 50 / 100); + r2 = ((Players[MyPlayerId]._pMaxManaBase >> 6) * 50 / 100); Items[i]._iPLMana -= (r2 << 6); Items[i]._iPLHP += (r2 << 6); break; case IPL_LIFETOMANA: - r2 = ((plr[myplr]._pMaxHPBase >> 6) * 40 / 100); + r2 = ((Players[MyPlayerId]._pMaxHPBase >> 6) * 40 / 100); Items[i]._iPLHP -= (r2 << 6); Items[i]._iPLMana += (r2 << 6); break; @@ -2209,7 +2209,7 @@ void GetItemBonus(int i, int minlvl, int maxlvl, bool onlygood, bool allowspells void SetupItem(int i) { - Items[i].SetNewAnimation(plr[myplr].pLvlLoad == 0); + Items[i].SetNewAnimation(Players[MyPlayerId].pLvlLoad == 0); Items[i]._iIdentified = false; } @@ -2985,14 +2985,14 @@ void CheckIdentify(int pnum, int cii) ItemStruct *pi; if (cii >= NUM_INVLOC) - pi = &plr[pnum].InvList[cii - NUM_INVLOC]; + pi = &Players[pnum].InvList[cii - NUM_INVLOC]; else - pi = &plr[pnum].InvBody[cii]; + pi = &Players[pnum].InvBody[cii]; pi->_iIdentified = true; CalcPlrInv(pnum, true); - if (pnum == myplr) + if (pnum == MyPlayerId) NewCursor(CURSOR_HAND); } @@ -3024,7 +3024,7 @@ void DoRepair(int pnum, int cii) { ItemStruct *pi; - auto &player = plr[pnum]; + auto &player = Players[pnum]; PlaySfxLoc(IS_REPAIR, player.position.tile); @@ -3037,7 +3037,7 @@ void DoRepair(int pnum, int cii) RepairItem(pi, player._pLevel); CalcPlrInv(pnum, true); - if (pnum == myplr) + if (pnum == MyPlayerId) NewCursor(CURSOR_HAND); } @@ -3061,7 +3061,7 @@ void DoRecharge(int pnum, int cii) { ItemStruct *pi; - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (cii >= NUM_INVLOC) { pi = &player.InvList[cii - NUM_INVLOC]; } else { @@ -3074,7 +3074,7 @@ void DoRecharge(int pnum, int cii) CalcPlrInv(pnum, true); } - if (pnum == myplr) + if (pnum == MyPlayerId) NewCursor(CURSOR_HAND); } @@ -3191,11 +3191,11 @@ void DoOil(int pnum, int cii) { if (cii < NUM_INVLOC && cii != INVLOC_HEAD && (cii <= INVLOC_AMULET || cii > INVLOC_CHEST)) return; - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (!OilItem(&player.InvBody[cii], player)) return; CalcPlrInv(pnum, true); - if (pnum == myplr) { + if (pnum == MyPlayerId) { NewCursor(CURSOR_HAND); } } @@ -3847,7 +3847,7 @@ void PrintItemDur(ItemStruct *x) void UseItem(int p, item_misc_id mid, spell_id spl) { - auto &player = plr[p]; + auto &player = Players[p]; switch (mid) { case IMISC_HEAL: @@ -3944,7 +3944,7 @@ void UseItem(int p, item_misc_id mid, spell_id spl) case IMISC_SCROLL: if (spelldata[spl].sTargeted) { player._pTSpell = spl; - if (p == myplr) + if (p == MyPlayerId) NewCursor(CURSOR_TELEPORT); } else { ClrPlrPath(player); @@ -3954,14 +3954,14 @@ void UseItem(int p, item_misc_id mid, spell_id spl) player.destAction = ACTION_SPELL; player.destParam1 = cursmx; player.destParam2 = cursmy; - if (p == myplr && spl == SPL_NOVA) - NetSendCmdLoc(myplr, true, CMD_NOVA, { cursmx, cursmy }); + if (p == MyPlayerId && spl == SPL_NOVA) + NetSendCmdLoc(MyPlayerId, true, CMD_NOVA, { cursmx, cursmy }); } break; case IMISC_SCROLLT: if (spelldata[spl].sTargeted) { player._pTSpell = spl; - if (p == myplr) + if (p == MyPlayerId) NewCursor(CURSOR_TELEPORT); } else { ClrPlrPath(player); @@ -3983,7 +3983,7 @@ void UseItem(int p, item_misc_id mid, spell_id spl) player._pManaBase += spelldata[spl].sManaCost << 6; player._pManaBase = std::min(player._pManaBase, player._pMaxManaBase); } - if (p == myplr) + if (p == MyPlayerId) CalcPlrBookVals(player); drawmanaflag = true; break; @@ -4001,7 +4001,7 @@ void UseItem(int p, item_misc_id mid, spell_id spl) case IMISC_OILHARD: case IMISC_OILIMP: player._pOilType = mid; - if (p != myplr) { + if (p != MyPlayerId) { return; } if (sbookflag) { @@ -4020,27 +4020,27 @@ void UseItem(int p, item_misc_id mid, spell_id spl) break; case IMISC_RUNEF: player._pTSpell = SPL_RUNEFIRE; - if (p == myplr) + if (p == MyPlayerId) NewCursor(CURSOR_TELEPORT); break; case IMISC_RUNEL: player._pTSpell = SPL_RUNELIGHT; - if (p == myplr) + if (p == MyPlayerId) NewCursor(CURSOR_TELEPORT); break; case IMISC_GR_RUNEL: player._pTSpell = SPL_RUNENOVA; - if (p == myplr) + if (p == MyPlayerId) NewCursor(CURSOR_TELEPORT); break; case IMISC_GR_RUNEF: player._pTSpell = SPL_RUNEIMMOLAT; - if (p == myplr) + if (p == MyPlayerId) NewCursor(CURSOR_TELEPORT); break; case IMISC_RUNES: player._pTSpell = SPL_RUNESTONE; - if (p == myplr) + if (p == MyPlayerId) NewCursor(CURSOR_TELEPORT); break; default: @@ -4050,7 +4050,7 @@ void UseItem(int p, item_misc_id mid, spell_id spl) bool StoreStatOk(ItemStruct *h) { - const auto &myPlayer = plr[myplr]; + const auto &myPlayer = Players[MyPlayerId]; if (myPlayer._pStrength < h->_iMinStr) return false; @@ -4195,7 +4195,7 @@ static void SpawnOnePremium(int i, int plvl, int playerId) bool keepGoing = false; ItemStruct tempItem = Items[0]; - auto &player = plr[playerId]; + auto &player = Players[playerId]; int strength = std::max(player.GetMaximumAttributeValue(CharacterAttribute::Strength), player._pStrength); int dexterity = std::max(player.GetMaximumAttributeValue(CharacterAttribute::Dexterity), player._pDexterity); @@ -4277,7 +4277,7 @@ static void SpawnOnePremium(int i, int plvl, int playerId) void SpawnPremium(int pnum) { - int8_t lvl = plr[pnum]._pLevel; + int8_t lvl = Players[pnum]._pLevel; int maxItems = gbIsHellfire ? SMITH_PREMIUM_ITEMS : 6; if (numpremium < maxItems) { for (int i = 0; i < maxItems; i++) { @@ -4342,7 +4342,7 @@ void WitchBookLevel(int ii) if (witchitem[ii]._iMiscId != IMISC_BOOK) return; witchitem[ii]._iMinMag = spelldata[witchitem[ii]._iSpell].sMinInt; - int8_t spellLevel = plr[myplr]._pSplLvl[witchitem[ii]._iSpell]; + int8_t spellLevel = Players[MyPlayerId]._pSplLvl[witchitem[ii]._iSpell]; while (spellLevel > 0) { witchitem[ii]._iMinMag += 20 * witchitem[ii]._iMinMag / 100; spellLevel--; @@ -4442,7 +4442,7 @@ void SpawnBoy(int lvl) bool keepgoing = false; int count = 0; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; HeroClass pc = myPlayer._pClass; int strength = std::max(myPlayer.GetMaximumAttributeValue(CharacterAttribute::Strength), myPlayer._pStrength); @@ -4562,7 +4562,7 @@ bool HealerItemOk(int i) return AllItemsList[i].iSpell == SPL_HEALOTHER && gbIsMultiplayer; if (!gbIsMultiplayer) { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (AllItemsList[i].iMiscId == IMISC_ELIXSTR) return !gbIsHellfire || myPlayer._pBaseStr < myPlayer.GetMaximumAttributeValue(CharacterAttribute::Strength); diff --git a/Source/lighting.cpp b/Source/lighting.cpp index eb02e3d93..c31591194 100644 --- a/Source/lighting.cpp +++ b/Source/lighting.cpp @@ -940,7 +940,7 @@ void ToggleLighting() } memcpy(dLight, dPreLight, sizeof(dLight)); - for (const auto &player : plr) { + for (const auto &player : Players) { if (player.plractive && player.plrlevel == currlevel) { DoLighting(player.position.tile, player._pLightRad, -1); } diff --git a/Source/loadsave.cpp b/Source/loadsave.cpp index 7915c2b65..61ccf9439 100644 --- a/Source/loadsave.cpp +++ b/Source/loadsave.cpp @@ -324,7 +324,7 @@ static void LoadItems(LoadHelper *file, const int n, ItemStruct *pItem) static void LoadPlayer(LoadHelper *file, int p) { - auto &player = plr[p]; + auto &player = Players[p]; player._pmode = static_cast(file->NextLE()); @@ -413,7 +413,7 @@ static void LoadPlayer(LoadHelper *file, int p) player._pDamageMod = file->NextLE(); player._pBaseToBlk = file->NextLE(); if (player._pBaseToBlk == 0) - player._pBaseToBlk = ToBlkTbl[static_cast(player._pClass)]; + player._pBaseToBlk = BlockBonuses[static_cast(player._pClass)]; player._pHPBase = file->NextLE(); player._pMaxHPBase = file->NextLE(); player._pHitPoints = file->NextLE(); @@ -642,7 +642,7 @@ static void LoadMonster(LoadHelper *file, int i) pMonster->leaderflag = file->NextLE(); pMonster->packsize = file->NextLE(); pMonster->mlid = file->NextLE(); - if (pMonster->mlid == plr[myplr]._plid) + if (pMonster->mlid == Players[MyPlayerId]._plid) pMonster->mlid = NO_LIGHT; // Correct incorect values in old saves // Omit pointer mName; @@ -1000,7 +1000,7 @@ void LoadHotkeys() if (!file.IsValid()) return; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; for (auto &spellId : myPlayer._pSplHotKey) { spellId = static_cast(file.NextLE()); @@ -1014,7 +1014,7 @@ void LoadHotkeys() void SaveHotkeys() { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; const size_t nHotkeyTypes = sizeof(myPlayer._pSplHotKey) / sizeof(myPlayer._pSplHotKey[0]); const size_t nHotkeySpells = sizeof(myPlayer._pSplTHotKey) / sizeof(myPlayer._pSplTHotKey[0]); @@ -1131,9 +1131,9 @@ void LoadGame(bool firstflag) file.Skip(4); // Skip loading gnLevelTypeTbl } - LoadPlayer(&file, myplr); + LoadPlayer(&file, MyPlayerId); - sgGameInitInfo.nDifficulty = plr[myplr].pDifficulty; + sgGameInitInfo.nDifficulty = Players[MyPlayerId].pDifficulty; if (sgGameInitInfo.nDifficulty < DIFF_NORMAL || sgGameInitInfo.nDifficulty > DIFF_HELL) sgGameInitInfo.nDifficulty = DIFF_NORMAL; @@ -1144,12 +1144,12 @@ void LoadGame(bool firstflag) if (gbIsHellfireSaveGame != gbIsHellfire) { ConvertLevels(); - RemoveEmptyInventory(plr[myplr]); + RemoveEmptyInventory(Players[MyPlayerId]); } LoadGameLevel(firstflag, ENTRY_LOAD); - SyncInitPlr(myplr); - SyncPlrAnim(myplr); + SyncInitPlr(MyPlayerId); + SyncPlrAnim(MyPlayerId); ViewX = viewX; ViewY = viewY; @@ -1258,7 +1258,7 @@ void LoadGame(bool firstflag) for (int i = 0; i < giNumberOfSmithPremiumItems; i++) LoadPremium(&file, i); if (gbIsHellfire && !gbIsHellfireSaveGame) - SpawnPremium(myplr); + SpawnPremium(MyPlayerId); AutomapActive = file.NextBool8(); AutoMapScale = file.NextBE(); @@ -1385,7 +1385,7 @@ static void SaveItems(SaveHelper *file, ItemStruct *pItem, const int n) static void SavePlayer(SaveHelper *file, int p) { - auto &player = plr[p]; + auto &player = Players[p]; file->WriteLE(player._pmode); for (int8_t step : player.walkpath) @@ -1915,8 +1915,8 @@ void SaveGameData() file.WriteBE(gnLevelTypeTbl[i]); } - plr[myplr].pDifficulty = sgGameInitInfo.nDifficulty; - SavePlayer(&file, myplr); + Players[MyPlayerId].pDifficulty = sgGameInitInfo.nDifficulty; + SavePlayer(&file, MyPlayerId); for (int i = 0; i < giNumberQuests; i++) SaveQuest(&file, i); @@ -2034,7 +2034,7 @@ void SaveLevel() { PFileScopedArchiveWriter scopedWriter; - DoUnVision(plr[myplr].position.tile, plr[myplr]._pLightRad); // fix for vision staying on the level + DoUnVision(Players[MyPlayerId].position.tile, Players[MyPlayerId]._pLightRad); // fix for vision staying on the level if (currlevel == 0) glSeedTbl[0] = AdvanceRndSeed(); @@ -2112,9 +2112,9 @@ void SaveLevel() } if (!setlevel) - plr[myplr]._pLvlVisited[currlevel] = true; + Players[MyPlayerId]._pLvlVisited[currlevel] = true; else - plr[myplr]._pSLvlVisited[setlvlnum] = true; + Players[MyPlayerId]._pSLvlVisited[setlvlnum] = true; } void LoadLevel() @@ -2208,7 +2208,7 @@ void LoadLevel() UpdateLighting = true; } - for (auto &player : plr) { + for (auto &player : Players) { if (player.plractive && currlevel == player.plrlevel) Lights[player._plid]._lunflag = true; } diff --git a/Source/mainmenu.cpp b/Source/mainmenu.cpp index 20c9e5ed9..190737606 100644 --- a/Source/mainmenu.cpp +++ b/Source/mainmenu.cpp @@ -104,7 +104,7 @@ bool mainmenu_select_hero_dialog(GameData *gameData) return false; } - pfile_read_player_from_save(gszHero, myplr); + pfile_read_player_from_save(gszHero, MyPlayerId); return true; } diff --git a/Source/miniwin/misc_msg.cpp b/Source/miniwin/misc_msg.cpp index b6cc40e08..c6a3f9101 100644 --- a/Source/miniwin/misc_msg.cpp +++ b/Source/miniwin/misc_msg.cpp @@ -48,7 +48,7 @@ void SetCursorPos(int x, int y) // Moves the mouse to the first attribute "+" button. void FocusOnCharInfo() { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (invflag || myPlayer._pStatPts <= 0) return; @@ -283,7 +283,7 @@ bool BlurInventory() { if (pcurs >= CURSOR_FIRSTITEM) { if (!TryDropItem()) { - plr[myplr].Say(HeroSpeech::WhereWouldIPutThis); + Players[MyPlayerId].Say(HeroSpeech::WhereWouldIPutThis); return false; } } diff --git a/Source/missiles.cpp b/Source/missiles.cpp index 53c9c8de3..ec469c238 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -67,10 +67,10 @@ int GenerateRndSum(int range, int iterations) void GetDamageAmt(int i, int *mind, int *maxd) { - assert(myplr >= 0 && myplr < MAX_PLRS); + assert(MyPlayerId >= 0 && MyPlayerId < MAX_PLRS); assert(i >= 0 && i < 64); - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; int sl = myPlayer._pSplLvl[i] + myPlayer._pISplLvlAdd; @@ -226,9 +226,9 @@ static int FindClosest(Point source, int rad) int GetSpellLevel(int playerId, spell_id sn) { - auto &player = plr[playerId]; + auto &player = Players[playerId]; - if (playerId != myplr) + if (playerId != MyPlayerId) return 1; // BUGFIX spell level will be wrong in multiplayer return std::max(player._pISplLvlAdd + player._pSplLvl[sn], 0); @@ -300,9 +300,9 @@ void DeleteMissile(int mi, int i) { if (missile[mi]._mitype == MIS_MANASHIELD) { int src = missile[mi]._misource; - if (src == myplr) + if (src == MyPlayerId) NetSendCmd(true, CMD_REMSHIELD); - plr[src].pManaShield = false; + Players[src].pManaShield = false; } missileavail[MAXMISSILES - nummissiles] = mi; @@ -506,7 +506,7 @@ bool MonsterMHit(int pnum, int m, int mindam, int maxdam, int dist, int t, bool int hit = GenerateRnd(100); int hper = 0; if (pnum != -1) { - const auto &player = plr[pnum]; + const auto &player = Players[pnum]; if (missiledata[t].mType == 0) { hper = player._pDexterity; hper += player._pIBonusToHit; @@ -555,7 +555,7 @@ bool MonsterMHit(int pnum, int m, int mindam, int maxdam, int dist, int t, bool } if (missiledata[t].mType == 0) { - const auto &player = plr[pnum]; + const auto &player = Players[pnum]; dam = player._pIBonusDamMod + dam * player._pIBonusDam / 100 + dam; if (player._pClass == HeroClass::Rogue) dam += player._pDamageMod; @@ -568,10 +568,10 @@ bool MonsterMHit(int pnum, int m, int mindam, int maxdam, int dist, int t, bool if (resist) dam >>= 2; - if (pnum == myplr) + if (pnum == MyPlayerId) Monsters[m]._mhitpoints -= dam; - if ((gbIsHellfire && (plr[pnum]._pIFlags & ISPL_NOHEALMON) != 0) || (!gbIsHellfire && (plr[pnum]._pIFlags & ISPL_FIRE_ARROWS) != 0)) + if ((gbIsHellfire && (Players[pnum]._pIFlags & ISPL_NOHEALMON) != 0) || (!gbIsHellfire && (Players[pnum]._pIFlags & ISPL_FIRE_ARROWS) != 0)) Monsters[m]._mFlags |= MFLAG_NOHEAL; if (Monsters[m]._mhitpoints >> 6 <= 0) { @@ -589,7 +589,7 @@ bool MonsterMHit(int pnum, int m, int mindam, int maxdam, int dist, int t, bool M_StartHit(m, pnum, dam); Monsters[m].Petrify(); } else { - if (missiledata[t].mType == 0 && (plr[pnum]._pIFlags & ISPL_KNOCKBACK) != 0) { + if (missiledata[t].mType == 0 && (Players[pnum]._pIFlags & ISPL_KNOCKBACK) != 0) { M_GetKnockback(m); } if (m > MAX_PLRS - 1) @@ -599,7 +599,7 @@ bool MonsterMHit(int pnum, int m, int mindam, int maxdam, int dist, int t, bool if (Monsters[m]._msquelch == 0) { Monsters[m]._msquelch = UINT8_MAX; - Monsters[m].position.last = plr[pnum].position.tile; + Monsters[m].position.last = Players[pnum].position.tile; } return true; @@ -609,7 +609,7 @@ bool PlayerMHit(int pnum, int m, int dist, int mind, int maxd, int mtype, bool s { *blocked = false; - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (player._pHitPoints >> 6 <= 0) { return false; @@ -728,7 +728,7 @@ bool PlayerMHit(int pnum, int m, int dist, int mind, int maxd, int mtype, bool s if (resper > 0) { dam -= dam * resper / 100; - if (pnum == myplr) { + if (pnum == MyPlayerId) { ApplyPlrDamage(pnum, 0, 0, dam, earflag); } @@ -738,7 +738,7 @@ bool PlayerMHit(int pnum, int m, int dist, int mind, int maxd, int mtype, bool s return true; } - if (pnum == myplr) { + if (pnum == MyPlayerId) { ApplyPlrDamage(pnum, 0, 0, dam, earflag); } @@ -756,8 +756,8 @@ bool Plr2PlrMHit(int pnum, int p, int mindam, int maxdam, int dist, int mtype, b *blocked = false; - auto &player = plr[pnum]; - auto &target = plr[p]; + auto &player = Players[pnum]; + auto &target = Players[p]; if (target._pInvincible) { return false; @@ -842,7 +842,7 @@ bool Plr2PlrMHit(int pnum, int p, int mindam, int maxdam, int dist, int mtype, b dam /= 2; if (resper > 0) { dam -= (dam * resper) / 100; - if (pnum == myplr) + if (pnum == MyPlayerId) NetSendCmdDamage(true, p, dam); player.Say(HeroSpeech::ArghClang); return true; @@ -852,7 +852,7 @@ bool Plr2PlrMHit(int pnum, int p, int mindam, int maxdam, int dist, int mtype, b StartPlrBlock(p, GetDirection(target.position.tile, player.position.tile)); *blocked = true; } else { - if (pnum == myplr) + if (pnum == MyPlayerId) NetSendCmdDamage(true, p, dam); StartPlrHit(p, dam, false); } @@ -1127,7 +1127,7 @@ void FreeMissiles2() void InitMissiles() { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; AutoMapShowItems = false; myPlayer._pSpellFlags &= ~0x1; @@ -1136,8 +1136,8 @@ void InitMissiles() int mi = missileactive[i]; if (missile[mi]._mitype == MIS_INFRA) { int src = missile[mi]._misource; - if (src == myplr) - CalcPlrItemVals(myplr, true); + if (src == MyPlayerId) + CalcPlrItemVals(MyPlayerId, true); } } } @@ -1148,10 +1148,10 @@ void InitMissiles() for (int i = 0; i < nummissiles; ++i) { int mi = missileactive[i]; if (missile[mi]._mitype == MIS_BLODBOIL) { - if (missile[mi]._misource == myplr) { + if (missile[mi]._misource == MyPlayerId) { int missingHP = myPlayer._pMaxHP - myPlayer._pHitPoints; - CalcPlrItemVals(myplr, true); - ApplyPlrDamage(myplr, 0, 1, missingHP + missile[mi]._miVar2); + CalcPlrItemVals(MyPlayerId, true); + ApplyPlrDamage(MyPlayerId, 0, 1, missingHP + missile[mi]._miVar2); } } } @@ -1303,7 +1303,7 @@ void AddReflection(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t / if (missile[mi]._mispllvl != 0) lvl = missile[mi]._mispllvl; - plr[id].wReflections += lvl * plr[id]._pLevel; + Players[id].wReflections += lvl * Players[id]._pLevel; UseMana(id, SPL_REFLECT); } @@ -1422,7 +1422,7 @@ void AddStealPotions(int mi, Point src, Point /*dst*/, int /*midir*/, int8_t /*m int8_t pnum = dPlayer[tx][ty]; if (pnum == 0) continue; - auto &player = plr[pnum > 0 ? pnum - 1 : -(pnum + 1)]; + auto &player = Players[pnum > 0 ? pnum - 1 : -(pnum + 1)]; bool hasPlayedSFX = false; for (int si = 0; si < MAXBELTITEMS; si++) { @@ -1495,7 +1495,7 @@ void AddManaTrap(int mi, Point src, Point /*dst*/, int /*midir*/, int8_t /*miene if (0 < tx && tx < MAXDUNX && 0 < ty && ty < MAXDUNY) { int8_t pid = dPlayer[tx][ty]; if (pid != 0) { - auto &player = plr[(pid > 0) ? pid - 1 : -(pid + 1)]; + auto &player = Players[(pid > 0) ? pid - 1 : -(pid + 1)]; player._pMana = 0; player._pManaBase = player._pMana + player._pMaxManaBase - player._pMaxMana; @@ -1515,7 +1515,7 @@ void AddSpecArrow(int mi, Point /*src*/, Point dst, int /*midir*/, int8_t mienem int av = 0; if (mienemy == TARGET_MONSTERS) { - auto &player = plr[id]; + auto &player = Players[id]; if (player._pClass == HeroClass::Rogue) av += (player._pLevel - 1) / 4; @@ -1542,7 +1542,7 @@ void AddWarp(int mi, Point src, Point /*dst*/, int /*midir*/, int8_t mienemy, in { int minDistanceSq = std::numeric_limits::max(); if (id >= 0) { - src = plr[id].position.tile; + src = Players[id].position.tile; } Point tile = src; @@ -1580,15 +1580,15 @@ void AddLightningWall(int mi, Point src, Point dst, int /*midir*/, int8_t /*mien missile[mi]._miVar1 = src.x; missile[mi]._miVar2 = src.y; } else { - missile[mi]._miVar1 = plr[id].position.tile.x; - missile[mi]._miVar2 = plr[id].position.tile.y; + missile[mi]._miVar1 = Players[id].position.tile.x; + missile[mi]._miVar2 = Players[id].position.tile.y; } } void AddRuneExplosion(int mi, Point src, Point /*dst*/, int /*midir*/, int8_t mienemy, int id, int /*dam*/) { if (mienemy == TARGET_MONSTERS || mienemy == TARGET_BOTH) { - int dmg = 2 * (plr[id]._pLevel + GenerateRndSum(10, 2)) + 4; + int dmg = 2 * (Players[id]._pLevel + GenerateRndSum(10, 2)) + 4; dmg = ScaleSpellEffect(dmg, missile[mi]._mispllvl); missile[mi]._midam = dmg; @@ -1612,7 +1612,7 @@ void AddImmolation(int mi, Point src, Point dst, int midir, int8_t mienemy, int if (mienemy == TARGET_MONSTERS) { sp += std::min(missile[mi]._mispllvl * 2, 34); - int dmg = 2 * (plr[id]._pLevel + GenerateRndSum(10, 2)) + 4; + int dmg = 2 * (Players[id]._pLevel + GenerateRndSum(10, 2)) + 4; missile[mi]._midam = ScaleSpellEffect(dmg, missile[mi]._mispllvl); UseMana(id, SPL_FIREBALL); @@ -1662,15 +1662,15 @@ void AddLightningArrow(int mi, Point src, Point dst, int midir, int8_t /*mienemy missile[mi]._miVar1 = src.x; missile[mi]._miVar2 = src.y; } else { - missile[mi]._miVar1 = plr[id].position.tile.x; - missile[mi]._miVar2 = plr[id].position.tile.y; + missile[mi]._miVar1 = Players[id].position.tile.x; + missile[mi]._miVar2 = Players[id].position.tile.y; } missile[mi]._midam <<= 6; } void AddMana(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t /*mienemy*/, int id, int /*dam*/) { - auto &player = plr[id]; + auto &player = Players[id]; int manaAmount = (GenerateRnd(10) + 1) << 6; for (int i = 0; i < player._pLevel; i++) { @@ -1696,7 +1696,7 @@ void AddMana(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t /*miene void AddMagi(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t /*mienemy*/, int id, int /*dam*/) { - auto &player = plr[id]; + auto &player = Players[id]; player._pMana = player._pMaxMana; player._pManaBase = player._pMaxManaBase; @@ -1736,7 +1736,7 @@ void AddSearch(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t miene AutoMapShowItems = true; int lvl = 2; if (id > -1) - lvl = plr[id]._pLevel * 2; + lvl = Players[id]._pLevel * 2; missile[mi]._mirange = lvl + 10 * missile[mi]._mispllvl + 245; if (mienemy == TARGET_MONSTERS) UseMana(id, SPL_SEARCH); @@ -1783,7 +1783,7 @@ void AddLArrow(int mi, Point src, Point dst, int midir, int8_t mienemy, int id, } int av = 32; if (mienemy == TARGET_MONSTERS) { - auto &player = plr[id]; + auto &player = Players[id]; if (player._pClass == HeroClass::Rogue) av += (player._pLevel) / 4; else if (player._pClass == HeroClass::Warrior || player._pClass == HeroClass::Bard) @@ -1819,7 +1819,7 @@ void AddArrow(int mi, Point src, Point dst, int midir, int8_t mienemy, int id, i } int av = 32; if (mienemy == TARGET_MONSTERS) { - auto &player = plr[id]; + auto &player = Players[id]; if ((player._pIFlags & ISPL_RNDARROWVEL) != 0) { av = GenerateRnd(32) + 16; @@ -1852,7 +1852,7 @@ void UpdateVileMissPos(int mi, Point dst) int yy = j + dst.y; for (int i = -k; i <= k; i++) { int xx = i + dst.x; - if (PosOkPlayer(myplr, { xx, yy })) { + if (PosOkPlayer(MyPlayerId, { xx, yy })) { missile[mi].position.tile = { xx, yy }; return; } @@ -1901,7 +1901,7 @@ void AddRndTeleport(int mi, Point src, Point dst, int /*midir*/, int8_t mienemy, // BUGFIX: should only run magic circle check if dObject[dx][dy] is non-zero. if (object[oi]._otype == OBJ_MCIRCLE1 || object[oi]._otype == OBJ_MCIRCLE2) { missile[mi].position.tile = dst; - if (!PosOkPlayer(myplr, dst)) + if (!PosOkPlayer(MyPlayerId, dst)) UpdateVileMissPos(mi, dst); } } @@ -1997,15 +1997,15 @@ void AddLightball(int mi, Point src, Point dst, int /*midir*/, int8_t /*mienemy* missile[mi]._miVar1 = src.x; missile[mi]._miVar2 = src.y; } else { - missile[mi]._miVar1 = plr[id].position.tile.x; - missile[mi]._miVar2 = plr[id].position.tile.y; + missile[mi]._miVar1 = Players[id].position.tile.x; + missile[mi]._miVar2 = Players[id].position.tile.y; } } void AddFirewall(int mi, Point src, Point dst, int /*midir*/, int8_t mienemy, int id, int /*dam*/) { missile[mi]._midam = GenerateRndSum(10, 2) + 2; - missile[mi]._midam += id >= 0 ? plr[id]._pLevel : currlevel; // BUGFIX: missing parenthesis around ternary (fixed) + missile[mi]._midam += id >= 0 ? Players[id]._pLevel : currlevel; // BUGFIX: missing parenthesis around ternary (fixed) missile[mi]._midam <<= 3; UpdateMissileVel(mi, src, dst, 16); int i = missile[mi]._mispllvl; @@ -2015,7 +2015,7 @@ void AddFirewall(int mi, Point src, Point dst, int /*midir*/, int8_t mienemy, in if (mienemy == TARGET_PLAYERS || id < 0) missile[mi]._mirange += currlevel; else - missile[mi]._mirange += (plr[id]._pISplDur * missile[mi]._mirange) / 128; + missile[mi]._mirange += (Players[id]._pISplDur * missile[mi]._mirange) / 128; missile[mi]._mirange *= 16; missile[mi]._miVar1 = missile[mi]._mirange - missile[mi]._miAnimLen; missile[mi]._miVar2 = 0; @@ -2030,7 +2030,7 @@ void AddFireball(int mi, Point src, Point dst, int midir, int8_t mienemy, int id if (mienemy == TARGET_MONSTERS) { sp += std::min(missile[mi]._mispllvl * 2, 34); - int dmg = 2 * (plr[id]._pLevel + GenerateRndSum(10, 2)) + 4; + int dmg = 2 * (Players[id]._pLevel + GenerateRndSum(10, 2)) + 4; missile[mi]._midam = ScaleSpellEffect(dmg, missile[mi]._mispllvl); UseMana(id, SPL_FIREBALL); @@ -2174,7 +2174,7 @@ void AddTown(int mi, Point /*src*/, Point dst, int /*midir*/, int8_t /*mienemy*/ missile[mx]._mirange = 0; } PutMissile(mi); - if (id == myplr && !missile[mi]._miDelFlag && currlevel != 0) { + if (id == MyPlayerId && !missile[mi]._miDelFlag && currlevel != 0) { if (!setlevel) { NetSendCmdLocParam3(true, CMD_ACTIVATEPORTAL, { tx, ty }, currlevel, leveltype, 0); } else { @@ -2187,7 +2187,7 @@ void AddFlash(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t mienem { if (id != -1) { if (mienemy == TARGET_MONSTERS) { - int dmg = GenerateRndSum(20, plr[id]._pLevel + 1) + plr[id]._pLevel + 1; + int dmg = GenerateRndSum(20, Players[id]._pLevel + 1) + Players[id]._pLevel + 1; missile[mi]._midam = ScaleSpellEffect(dmg, missile[mi]._mispllvl); missile[mi]._midam += missile[mi]._midam / 2; UseMana(id, SPL_FLASH); @@ -2204,7 +2204,7 @@ void AddFlash2(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t miene { if (mienemy == TARGET_MONSTERS) { if (id != -1) { - int dmg = GenerateRndSum(20, plr[id]._pLevel + 1) + plr[id]._pLevel + 1; + int dmg = GenerateRndSum(20, Players[id]._pLevel + 1) + Players[id]._pLevel + 1; missile[mi]._midam = ScaleSpellEffect(dmg, missile[mi]._mispllvl); missile[mi]._midam += missile[mi]._midam / 2; } else { @@ -2217,17 +2217,17 @@ void AddFlash2(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t miene void AddManashield(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t mienemy, int id, int /*dam*/) { - missile[mi]._mirange = 48 * plr[id]._pLevel; + missile[mi]._mirange = 48 * Players[id]._pLevel; if (mienemy == TARGET_MONSTERS) UseMana(id, SPL_MANASHIELD); - if (id == myplr) + if (id == MyPlayerId) NetSendCmd(true, CMD_SETSHIELD); - plr[id].pManaShield = true; + Players[id].pManaShield = true; } void AddFiremove(int mi, Point src, Point dst, int /*midir*/, int8_t /*mienemy*/, int id, int /*dam*/) { - missile[mi]._midam = GenerateRnd(10) + plr[id]._pLevel + 1; + missile[mi]._midam = GenerateRnd(10) + Players[id]._pLevel + 1; UpdateMissileVel(mi, src, dst, 16); missile[mi]._mirange = 255; missile[mi]._miVar1 = 0; @@ -2239,7 +2239,7 @@ void AddFiremove(int mi, Point src, Point dst, int /*midir*/, int8_t /*mienemy*/ void AddGuardian(int mi, Point src, Point dst, int /*midir*/, int8_t /*mienemy*/, int id, int /*dam*/) { - int dmg = GenerateRnd(10) + (plr[id]._pLevel / 2) + 1; + int dmg = GenerateRnd(10) + (Players[id]._pLevel / 2) + 1; missile[mi]._midam = ScaleSpellEffect(dmg, missile[mi]._mispllvl); missile[mi]._miDelFlag = true; @@ -2268,8 +2268,8 @@ void AddGuardian(int mi, Point src, Point dst, int /*midir*/, int8_t /*mienemy*/ if (!missile[mi]._miDelFlag) { missile[mi]._misource = id; missile[mi]._mlid = AddLight(missile[mi].position.tile, 1); - missile[mi]._mirange = missile[mi]._mispllvl + (plr[id]._pLevel / 2); - missile[mi]._mirange += (missile[mi]._mirange * plr[id]._pISplDur) / 128; + missile[mi]._mirange = missile[mi]._mispllvl + (Players[id]._pLevel / 2); + missile[mi]._mirange += (missile[mi]._mirange * Players[id]._pISplDur) / 128; if (missile[mi]._mirange > 30) missile[mi]._mirange = 30; @@ -2473,7 +2473,7 @@ void AddStone(int mi, Point /*src*/, Point dst, int /*midir*/, int8_t /*mienemy* missile[mi].position.tile = { tx, ty }; missile[mi].position.start = missile[mi].position.tile; missile[mi]._mirange = missile[mi]._mispllvl + 6; - missile[mi]._mirange += (missile[mi]._mirange * plr[id]._pISplDur) / 128; + missile[mi]._mirange += (missile[mi]._mirange * Players[id]._pISplDur) / 128; if (missile[mi]._mirange > 15) missile[mi]._mirange = 15; @@ -2497,14 +2497,14 @@ void AddGolem(int mi, Point src, Point dst, int /*midir*/, int8_t /*mienemy*/, i missile[mi]._miVar2 = src.y; missile[mi]._miVar4 = dst.x; missile[mi]._miVar5 = dst.y; - if ((Monsters[id].position.tile.x != 1 || Monsters[id].position.tile.y != 0) && id == myplr) + if ((Monsters[id].position.tile.x != 1 || Monsters[id].position.tile.y != 0) && id == MyPlayerId) M_StartKill(id, id); UseMana(id, SPL_GOLEM); } void AddEtherealize(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t mienemy, int id, int /*dam*/) { - auto &player = plr[id]; + auto &player = Players[id]; int range = 8 * player._pLevel; missile[mi]._mirange = ScaleSpellEffect(range, missile[mi]._mispllvl); @@ -2547,7 +2547,7 @@ void AddBoom(int mi, Point /*src*/, Point dst, int /*midir*/, int8_t /*mienemy*/ void AddHeal(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t /*mienemy*/, int id, int /*dam*/) { - auto &player = plr[id]; + auto &player = Players[id]; int hp = (GenerateRnd(10) + 1) << 6; for (int i = 0; i < player._pLevel; i++) { @@ -2575,7 +2575,7 @@ void AddHealOther(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t /* { missile[mi]._miDelFlag = true; UseMana(id, SPL_HEALOTHER); - if (id == myplr) { + if (id == MyPlayerId) { NewCursor(CURSOR_HEALOTHER); if (sgbControllerActive) TryIconCurs(); @@ -2588,7 +2588,7 @@ void AddElement(int mi, Point src, Point dst, int midir, int8_t /*mienemy*/, int dst += static_cast(midir); } - int dmg = 2 * (plr[id]._pLevel + GenerateRndSum(10, 2)) + 4; + int dmg = 2 * (Players[id]._pLevel + GenerateRndSum(10, 2)) + 4; missile[mi]._midam = ScaleSpellEffect(dmg, missile[mi]._mispllvl) / 2; UpdateMissileVel(mi, src, dst, 16); @@ -2609,7 +2609,7 @@ void AddIdentify(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t /*m { missile[mi]._miDelFlag = true; UseMana(id, SPL_IDENTIFY); - if (id == myplr) { + if (id == MyPlayerId) { if (sbookflag) sbookflag = false; if (!invflag) { @@ -2660,7 +2660,7 @@ void AddFirewallC(int mi, Point src, Point dst, int midir, int8_t /*mienemy*/, i void AddInfra(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t mienemy, int id, int /*dam*/) { missile[mi]._mirange = ScaleSpellEffect(1584, missile[mi]._mispllvl); - missile[mi]._mirange += missile[mi]._mirange * plr[id]._pISplDur / 128; + missile[mi]._mirange += missile[mi]._mirange * Players[id]._pISplDur / 128; if (mienemy == TARGET_MONSTERS) UseMana(id, SPL_INFRA); @@ -2683,7 +2683,7 @@ void AddNova(int mi, Point /*src*/, Point dst, int /*midir*/, int8_t mienemy, in missile[mi]._miVar2 = dst.y; if (id != -1) { - int dmg = GenerateRndSum(6, 5) + plr[id]._pLevel + 5; + int dmg = GenerateRndSum(6, 5) + Players[id]._pLevel + 5; missile[mi]._midam = ScaleSpellEffect(dmg / 2, missile[mi]._mispllvl); if (mienemy == TARGET_MONSTERS) @@ -2697,7 +2697,7 @@ void AddNova(int mi, Point /*src*/, Point dst, int /*midir*/, int8_t mienemy, in void AddBlodboil(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t /*mienemy*/, int id, int /*dam*/) { - auto &player = plr[id]; + auto &player = Players[id]; if ((player._pSpellFlags & 6) != 0 || player._pHitPoints <= player._pLevel << 6) { missile[mi]._miDelFlag = true; @@ -2721,7 +2721,7 @@ void AddRepair(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t /*mie { missile[mi]._miDelFlag = true; UseMana(id, SPL_REPAIR); - if (id == myplr) { + if (id == MyPlayerId) { if (sbookflag) sbookflag = false; if (!invflag) { @@ -2737,7 +2737,7 @@ void AddRecharge(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t /*m { missile[mi]._miDelFlag = true; UseMana(id, SPL_RECHARGE); - if (id == myplr) { + if (id == MyPlayerId) { if (sbookflag) sbookflag = false; if (!invflag) { @@ -2753,7 +2753,7 @@ void AddDisarm(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t /*mie { missile[mi]._miDelFlag = true; UseMana(id, SPL_DISARM); - if (id == myplr) { + if (id == MyPlayerId) { NewCursor(CURSOR_DISARM); if (sgbControllerActive) { if (pcursobj != -1) @@ -2780,7 +2780,7 @@ void AddApoca(int mi, Point src, Point /*dst*/, int /*midir*/, int8_t /*mienemy* missile[mi]._miVar4 = 1; if (missile[mi]._miVar5 >= MAXDUNX) missile[mi]._miVar5 = MAXDUNX - 1; - missile[mi]._midam = GenerateRndSum(6, plr[id]._pLevel) + plr[id]._pLevel; + missile[mi]._midam = GenerateRndSum(6, Players[id]._pLevel) + Players[id]._pLevel; missile[mi]._mirange = 255; missile[mi]._miDelFlag = false; UseMana(id, SPL_APOCA); @@ -2795,7 +2795,7 @@ void AddFlame(int mi, Point src, Point dst, int midir, int8_t mienemy, int id, i missile[mi]._mirange = missile[mi]._miVar2 + 20; missile[mi]._mlid = AddLight(src, 1); if (mienemy == TARGET_MONSTERS) { - int i = GenerateRnd(plr[id]._pLevel) + GenerateRnd(2); + int i = GenerateRnd(Players[id]._pLevel) + GenerateRnd(2); missile[mi]._midam = 8 * i + 16 + ((8 * i + 16) / 2); } else { missile[mi]._midam = Monsters[id].mMinDamage + GenerateRnd(Monsters[id].mMaxDamage - Monsters[id].mMinDamage + 1); @@ -2822,7 +2822,7 @@ void AddCbolt(int mi, Point src, Point dst, int midir, int8_t micaster, int id, assert((DWORD)mi < MAXMISSILES); missile[mi]._mirnd = GenerateRnd(15) + 1; - missile[mi]._midam = (micaster == 0) ? (GenerateRnd(plr[id]._pMagic / 4) + 1) : 15; + missile[mi]._midam = (micaster == 0) ? (GenerateRnd(Players[id]._pMagic / 4) + 1) : 15; if (src == dst) { dst += static_cast(midir); @@ -2854,14 +2854,14 @@ void AddHbolt(int mi, Point src, Point dst, int midir, int8_t /*micaster*/, int missile[mi]._miVar1 = src.x; missile[mi]._miVar2 = src.y; missile[mi]._mlid = AddLight(src, 8); - missile[mi]._midam = GenerateRnd(10) + plr[id]._pLevel + 9; + missile[mi]._midam = GenerateRnd(10) + Players[id]._pLevel + 9; UseMana(id, SPL_HBOLT); } void AddResurrect(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t /*mienemy*/, int id, int /*dam*/) { UseMana(id, SPL_RESURRECT); - if (id == myplr) { + if (id == MyPlayerId) { NewCursor(CURSOR_RESURRECT); if (sgbControllerActive) TryIconCurs(); @@ -2881,7 +2881,7 @@ void AddTelekinesis(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t { missile[mi]._miDelFlag = true; UseMana(id, SPL_TELEKINESIS); - if (id == myplr) + if (id == MyPlayerId) NewCursor(CURSOR_TELEKINESIS); } @@ -2920,7 +2920,7 @@ void AddDiabApoca(int mi, Point src, Point /*dst*/, int /*midir*/, int8_t mienem { int players = gbIsMultiplayer ? MAX_PLRS : 1; for (int pnum = 0; pnum < players; pnum++) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (!player.plractive) continue; if (!LineClearMissile(src, player.position.future)) @@ -2936,8 +2936,8 @@ int AddMissile(Point src, Point dst, int midir, int mitype, int8_t micaster, int if (nummissiles >= MAXMISSILES - 1) return -1; - if (mitype == MIS_MANASHIELD && plr[id].pManaShield) { - if (currlevel != plr[id].plrlevel) + if (mitype == MIS_MANASHIELD && Players[id].pManaShield) { + if (currlevel != Players[id].plrlevel) return -1; for (int i = 0; i < nummissiles; i++) { @@ -3053,8 +3053,8 @@ void MI_LArrow(int i) int mind; int maxd; if (p != -1) { - mind = plr[p]._pILMinDam; - maxd = plr[p]._pILMaxDam; + mind = Players[p]._pILMinDam; + maxd = Players[p]._pILMaxDam; } else { mind = GenerateRnd(10) + 1 + currlevel; maxd = GenerateRnd(10) + 1 + currlevel * 2; @@ -3066,8 +3066,8 @@ void MI_LArrow(int i) int mind; int maxd; if (p != -1) { - mind = plr[p]._pIFMinDam; - maxd = plr[p]._pIFMaxDam; + mind = Players[p]._pIFMinDam; + maxd = Players[p]._pIFMaxDam; } else { mind = GenerateRnd(10) + 1 + currlevel; maxd = GenerateRnd(10) + 1 + currlevel * 2; @@ -3085,8 +3085,8 @@ void MI_LArrow(int i) int maxd; if (p != -1) { if (missile[i]._micaster == TARGET_MONSTERS) { - mind = plr[p]._pIMinDam; - maxd = plr[p]._pIMaxDam; + mind = Players[p]._pIMinDam; + maxd = Players[p]._pIMaxDam; } else { mind = Monsters[p].mMinDamage; maxd = Monsters[p].mMaxDamage; @@ -3139,8 +3139,8 @@ void MI_Arrow(int i) int maxd; if (p != -1) { if (missile[i]._micaster == TARGET_MONSTERS) { - mind = plr[p]._pIMinDam; - maxd = plr[p]._pIMaxDam; + mind = Players[p]._pIMinDam; + maxd = Players[p]._pIMaxDam; } else { mind = Monsters[p].mMinDamage; maxd = Monsters[p].mMaxDamage; @@ -3171,10 +3171,10 @@ void MI_Firebolt(int i) if (missile[i]._micaster == TARGET_MONSTERS) { switch (missile[i]._mitype) { case MIS_FIREBOLT: - d = GenerateRnd(10) + (plr[p]._pMagic / 8) + missile[i]._mispllvl + 1; + d = GenerateRnd(10) + (Players[p]._pMagic / 8) + missile[i]._mispllvl + 1; break; case MIS_FLARE: - d = 3 * missile[i]._mispllvl - (plr[p]._pMagic / 8) + (plr[p]._pMagic / 2); + d = 3 * missile[i]._mispllvl - (Players[p]._pMagic / 8) + (Players[p]._pMagic / 2); break; case MIS_BONESPIRIT: d = 0; @@ -3332,7 +3332,7 @@ static void FireballUpdate(int i, Displacement offset, bool alwaysDelete) missile[i]._mirange--; int id = missile[i]._misource; - Point p = (missile[i]._micaster == TARGET_MONSTERS) ? plr[id].position.tile : Monsters[id].position.tile; + Point p = (missile[i]._micaster == TARGET_MONSTERS) ? Players[id].position.tile : Monsters[id].position.tile; if (missile[i]._miAnimType == MFILE_BIGEXP) { if (missile[i]._mirange == 0) { @@ -3436,7 +3436,7 @@ void MI_Rune(int i) dir = GetDirection(missile[i].position.tile, Monsters[mid].position.tile); } else { pid = (pid > 0) ? (pid - 1) : -(pid + 1); - dir = GetDirection(missile[i].position.tile, plr[pid].position.tile); + dir = GetDirection(missile[i].position.tile, Players[pid].position.tile); } missile[i]._miDelFlag = true; AddUnLight(missile[i]._mlid); @@ -3568,9 +3568,9 @@ void MI_FlashFront(int i) { int src = missile[i]._misource; if (missile[i]._micaster == TARGET_MONSTERS && src != -1) { - missile[i].position.tile = plr[src].position.tile; - missile[i].position.traveled.deltaX = plr[src].position.offset.deltaX << 16; - missile[i].position.traveled.deltaY = plr[src].position.offset.deltaY << 16; + missile[i].position.tile = Players[src].position.tile; + missile[i].position.traveled.deltaX = Players[src].position.offset.deltaX << 16; + missile[i].position.traveled.deltaY = Players[src].position.offset.deltaY << 16; } missile[i]._mirange--; if (missile[i]._mirange == 0) { @@ -3578,7 +3578,7 @@ void MI_FlashFront(int i) if (missile[i]._micaster == TARGET_MONSTERS) { src = missile[i]._misource; if (src != -1) - plr[src]._pBaseToBlk -= 50; + Players[src]._pBaseToBlk -= 50; } } PutMissile(i); @@ -3587,9 +3587,9 @@ void MI_FlashFront(int i) void MI_Reflect(int i) { int src = missile[i]._misource; - if (src != myplr && currlevel != plr[src].plrlevel) + if (src != MyPlayerId && currlevel != Players[src].plrlevel) missile[i]._miDelFlag = true; - if (plr[src].wReflections <= 0) { + if (Players[src].wReflections <= 0) { missile[i]._miDelFlag = true; NetSendCmd(true, CMD_REFLECT); } @@ -3600,7 +3600,7 @@ static void MissileRing(int i, int type) { missile[i]._miDelFlag = true; int8_t src = missile[i]._micaster; - uint8_t lvl = src > 0 ? plr[src]._pLevel : currlevel; + uint8_t lvl = src > 0 ? Players[src]._pLevel : currlevel; int dmg = 16 * (GenerateRndSum(10, 2) + lvl + 2) / 2; int k = CrawlNum[3]; @@ -3643,7 +3643,7 @@ void MI_Search(int i) return; missile[i]._miDelFlag = true; - PlaySfxLoc(IS_CAST7, plr[missile[i]._miVar1].position.tile); + PlaySfxLoc(IS_CAST7, Players[missile[i]._miVar1].position.tile); AutoMapShowItems = false; } @@ -3656,7 +3656,7 @@ bool GrowWall(int playerId, Point position, Point target, missile_id type, int s return false; } - AddMissile(position, position, plr[playerId]._pdir, type, TARGET_BOTH, playerId, damage, spellLevel); + AddMissile(position, position, Players[playerId]._pdir, type, TARGET_BOTH, playerId, damage, spellLevel); return true; } @@ -3669,7 +3669,7 @@ void MI_LightningWallC(int i) } int id = missile[i]._misource; - int lvl = (id > -1) ? plr[id]._pLevel : 0; + int lvl = (id > -1) ? Players[id]._pLevel : 0; int dmg = 16 * (GenerateRndSum(10, 2) + lvl + 2); { @@ -3707,7 +3707,7 @@ void MI_FireNova(int i) Direction dir = DIR_S; mienemy_type en = TARGET_PLAYERS; if (id != -1) { - dir = plr[id]._pdir; + dir = Players[id]._pdir; en = TARGET_MONSTERS; } for (const auto &k : VisionCrawlTable) { @@ -3735,10 +3735,10 @@ void MI_SpecArrow(int i) Direction dir = DIR_S; mienemy_type micaster = TARGET_PLAYERS; if (id != -1) { - dir = plr[id]._pdir; + dir = Players[id]._pdir; micaster = TARGET_MONSTERS; - switch (plr[id]._pILMinDam) { + switch (Players[id]._pILMinDam) { case 0: mitype = MIS_FIRENOVA; break; @@ -3772,7 +3772,7 @@ void MI_Lightctrl(int i) int id = missile[i]._misource; if (id != -1) { if (missile[i]._micaster == TARGET_MONSTERS) { - dam = (GenerateRnd(2) + GenerateRnd(plr[id]._pLevel) + 2) << 6; + dam = (GenerateRnd(2) + GenerateRnd(Players[id]._pLevel) + 2) << 6; } else { dam = 2 * (Monsters[id].mMinDamage + GenerateRnd(Monsters[id].mMaxDamage - Monsters[id].mMinDamage + 1)); } @@ -3873,10 +3873,10 @@ void MI_Town(int i) } for (int p = 0; p < MAX_PLRS; p++) { - auto &player = plr[p]; + auto &player = Players[p]; if (player.plractive && currlevel == player.plrlevel && !player._pLvlChanging && player._pmode == PM_STAND && player.position.tile == missile[i].position.tile) { ClrPlrPath(player); - if (p == myplr) { + if (p == MyPlayerId) { NetSendCmdParam1(true, CMD_WARP, missile[i]._misource); player._pmode = PM_NEWLVL; } @@ -3894,7 +3894,7 @@ void MI_Flash(int i) { if (missile[i]._micaster == TARGET_MONSTERS) { if (missile[i]._misource != -1) - plr[missile[i]._misource]._pInvincible = true; + Players[missile[i]._misource]._pInvincible = true; } missile[i]._mirange--; @@ -3906,7 +3906,7 @@ void MI_Flash(int i) missile[i]._miDelFlag = true; if (missile[i]._micaster == TARGET_MONSTERS) { if (missile[i]._misource != -1) - plr[missile[i]._misource]._pInvincible = false; + Players[missile[i]._misource]._pInvincible = false; } } PutMissile(i); @@ -3916,7 +3916,7 @@ void MI_Flash2(int i) { if (missile[i]._micaster == TARGET_MONSTERS) { if (missile[i]._misource != -1) - plr[missile[i]._misource]._pInvincible = true; + Players[missile[i]._misource]._pInvincible = true; } missile[i]._mirange--; @@ -3928,7 +3928,7 @@ void MI_Flash2(int i) missile[i]._miDelFlag = true; if (missile[i]._micaster == TARGET_MONSTERS) { if (missile[i]._misource != -1) - plr[missile[i]._misource]._pInvincible = false; + Players[missile[i]._misource]._pInvincible = false; } } PutMissile(i); @@ -3937,11 +3937,11 @@ void MI_Flash2(int i) void MI_Manashield(int i) { int id = missile[i]._misource; - if (id != myplr) { - if (currlevel != plr[id].plrlevel) + if (id != MyPlayerId) { + if (currlevel != Players[id].plrlevel) missile[i]._miDelFlag = true; } else { - if (plr[id]._pMana <= 0 || !plr[id].plractive) + if (Players[id]._pMana <= 0 || !Players[id].plractive) missile[i]._mirange = 0; if (missile[i]._mirange == 0) { @@ -3956,7 +3956,7 @@ void MI_Etherealize(int i) { missile[i]._mirange--; - auto &player = plr[missile[i]._misource]; + auto &player = Players[missile[i]._misource]; missile[i].position.tile = player.position.tile; missile[i].position.traveled.deltaX = player.position.offset.deltaX << 16; @@ -4136,12 +4136,12 @@ void MI_Weapexp(int i) int mind; int maxd; if (missile[i]._miVar2 == 1) { - mind = plr[id]._pIFMinDam; - maxd = plr[id]._pIFMaxDam; + mind = Players[id]._pIFMinDam; + maxd = Players[id]._pIFMaxDam; missiledata[missile[i]._mitype].mResist = MISR_FIRE; } else { - mind = plr[id]._pILMinDam; - maxd = plr[id]._pILMaxDam; + mind = Players[id]._pILMinDam; + maxd = Players[id]._pILMaxDam; missiledata[missile[i]._mitype].mResist = MISR_LIGHTNING; } CheckMissileCol(i, mind, maxd, false, missile[i].position.tile, false); @@ -4205,7 +4205,7 @@ void MI_Teleport(int i) } int id = missile[i]._misource; - auto &player = plr[id]; + auto &player = Players[id]; dPlayer[player.position.tile.x][player.position.tile.y] = 0; PlrClrTrans(player.position.tile); @@ -4219,7 +4219,7 @@ void MI_Teleport(int i) ChangeLightXY(player._plid, player.position.tile); ChangeVisionXY(player._pvid, player.position.tile); } - if (id == myplr) { + if (id == MyPlayerId) { ViewX = player.position.tile.x - ScrollInfo.tile.x; ViewY = player.position.tile.y - ScrollInfo.tile.y; } @@ -4310,7 +4310,7 @@ void MI_Fireman(int i) int src = missile[i]._misource; Point b = missile[i].position.tile; int enemy = Monsters[src]._menemy; - Point c = (Monsters[src]._mFlags & MFLAG_TARGETS_MONSTER) == 0 ? plr[enemy].position.tile : Monsters[enemy].position.tile; + Point c = (Monsters[src]._mFlags & MFLAG_TARGETS_MONSTER) == 0 ? Players[enemy].position.tile : Monsters[enemy].position.tile; int j = 0; if (b != a && (((missile[i]._miVar1 & 1) != 0 && a.WalkingDistance(c) >= 4) || missile[i]._miVar2 > 1) && PosOkMonst(missile[i]._misource, a)) { @@ -4371,7 +4371,7 @@ void MI_FirewallC(int i) void MI_Infra(int i) { missile[i]._mirange--; - plr[missile[i]._misource]._pInfraFlag = true; + Players[missile[i]._misource]._pInfraFlag = true; if (missile[i]._mirange == 0) { missile[i]._miDelFlag = true; CalcPlrItemVals(missile[i]._misource, true); @@ -4392,7 +4392,7 @@ void MI_Apoca(int i) continue; if (gbIsHellfire && !LineClearMissile(missile[i].position.tile, { k, j })) continue; - AddMissile({ k, j }, { k, j }, plr[id]._pdir, MIS_BOOM, TARGET_MONSTERS, id, missile[i]._midam, 0); + AddMissile({ k, j }, { k, j }, Players[id]._pdir, MIS_BOOM, TARGET_MONSTERS, id, missile[i]._midam, 0); exit = true; } if (!exit) { @@ -4423,7 +4423,7 @@ void MI_Wave(int i) int pn = dPiece[na.x][na.y]; assert((DWORD)pn <= MAXTILES); if (!nMissileTable[pn]) { - Direction pdir = plr[id]._pdir; + Direction pdir = Players[id]._pdir; AddMissile(na, na + sd, pdir, MIS_FIREMOVE, TARGET_MONSTERS, id, 0, missile[i]._mispllvl); na += dira; Point nb = src + sd + dirb; @@ -4462,7 +4462,7 @@ void MI_Nova(int i) Direction dir = DIR_S; mienemy_type en = TARGET_PLAYERS; if (id != -1) { - dir = plr[id]._pdir; + dir = Players[id]._pdir; en = TARGET_MONSTERS; } for (const auto &k : VisionCrawlTable) { @@ -4489,7 +4489,7 @@ void MI_Blodboil(int i) } int id = missile[i]._miVar1; - auto &player = plr[id]; + auto &player = Players[id]; int hpdif = player._pMaxHP - player._pHitPoints; @@ -4646,7 +4646,7 @@ void MI_Element(int i) int id = missile[i]._misource; if (missile[i]._miAnimType == MFILE_BIGEXP) { Point c = missile[i].position.tile; - Point p = plr[id].position.tile; + Point p = Players[id].position.tile; ChangeLight(missile[i]._mlid, missile[i].position.tile, missile[i]._miAnimFrame); if (!CheckBlock(p, c)) CheckMissileCol(i, dam, dam, true, c, true); @@ -4677,7 +4677,7 @@ void MI_Element(int i) SetMissDir(i, sd); UpdateMissileVel(i, c, Monsters[mid].position.tile, 16); } else { - Direction sd = plr[id]._pdir; + Direction sd = Players[id]._pdir; SetMissDir(i, sd); UpdateMissileVel(i, c, c + sd, 16); } @@ -4724,7 +4724,7 @@ void MI_Bonespirit(int i) SetMissDir(i, GetDirection(c, Monsters[mid].position.tile)); UpdateMissileVel(i, c, Monsters[mid].position.tile, 16); } else { - Direction sd = plr[id]._pdir; + Direction sd = Players[id]._pdir; SetMissDir(i, sd); UpdateMissileVel(i, c, c + sd, 16); } diff --git a/Source/monster.cpp b/Source/monster.cpp index 34914a6fb..b702deb69 100644 --- a/Source/monster.cpp +++ b/Source/monster.cpp @@ -627,7 +627,7 @@ void ClrAllMonsters() monst->_mFlags = 0; monst->_mDelFlag = false; monst->_menemy = GenerateRnd(gbActivePlayers); - monst->enemyPosition = plr[monst->_menemy].position.future; + monst->enemyPosition = Players[monst->_menemy].position.future; } } @@ -1309,18 +1309,18 @@ void M_Enemy(int i) MonsterStruct *monst = &Monsters[i]; if ((monst->_mFlags & MFLAG_BERSERK) != 0 || (monst->_mFlags & MFLAG_GOLEM) == 0) { for (int pnum = 0; pnum < MAX_PLRS; pnum++) { - if (!plr[pnum].plractive || currlevel != plr[pnum].plrlevel || plr[pnum]._pLvlChanging - || (((plr[pnum]._pHitPoints >> 6) == 0) && gbIsMultiplayer)) + if (!Players[pnum].plractive || currlevel != Players[pnum].plrlevel || Players[pnum]._pLvlChanging + || (((Players[pnum]._pHitPoints >> 6) == 0) && gbIsMultiplayer)) continue; - bool sameroom = (dTransVal[monst->position.tile.x][monst->position.tile.y] == dTransVal[plr[pnum].position.tile.x][plr[pnum].position.tile.y]); - int dist = monst->position.tile.WalkingDistance(plr[pnum].position.tile); + bool sameroom = (dTransVal[monst->position.tile.x][monst->position.tile.y] == dTransVal[Players[pnum].position.tile.x][Players[pnum].position.tile.y]); + int dist = monst->position.tile.WalkingDistance(Players[pnum].position.tile); if ((sameroom && !bestsameroom) || ((sameroom || !bestsameroom) && dist < bestDist) || (menemy == -1)) { monst->_mFlags &= ~MFLAG_TARGETS_MONSTER; menemy = pnum; - enemyx = plr[pnum].position.future.x; - enemyy = plr[pnum].position.future.y; + enemyx = Players[pnum].position.future.x; + enemyy = Players[pnum].position.future.y; bestDist = dist; bestsameroom = sameroom; } @@ -1587,7 +1587,7 @@ void M_StartHit(int i, int pnum, int dam) { if (pnum >= 0) Monsters[i].mWhoHit |= 1 << pnum; - if (pnum == myplr) { + if (pnum == MyPlayerId) { delta_monster_hp(i, Monsters[i]._mhitpoints, currlevel); NetSendCmdMonDmg(false, i, dam); } @@ -1595,7 +1595,7 @@ void M_StartHit(int i, int pnum, int dam) if ((Monsters[i].MType->mtype >= MT_SNEAK && Monsters[i].MType->mtype <= MT_ILLWEAV) || dam >> 6 >= Monsters[i].mLevel + 3) { if (pnum >= 0) { Monsters[i]._menemy = pnum; - Monsters[i].enemyPosition = plr[pnum].position.future; + Monsters[i].enemyPosition = Players[pnum].position.future; Monsters[i]._mFlags &= ~MFLAG_TARGETS_MONSTER; Monsters[i]._mdir = M_GetDir(i); } @@ -1815,7 +1815,7 @@ void M_StartKill(int i, int pnum) { assurance((DWORD)i < MAXMONSTERS, i); - if (myplr == pnum) { + if (MyPlayerId == pnum) { delta_kill_monster(i, Monsters[i].position.tile, currlevel); if (i != pnum) { NetSendCmdLocParam1(false, CMD_MONSTDEATH, Monsters[i].position.tile, i); @@ -2016,9 +2016,9 @@ void M_TryH2HHit(int i, int pnum, int hit, int minDam, int maxDam) M_TryM2MHit(i, pnum, hit, minDam, maxDam); return; } - if (plr[pnum]._pHitPoints >> 6 <= 0 || plr[pnum]._pInvincible || (plr[pnum]._pSpellFlags & 1) != 0) + if (Players[pnum]._pHitPoints >> 6 <= 0 || Players[pnum]._pInvincible || (Players[pnum]._pSpellFlags & 1) != 0) return; - if (Monsters[i].position.tile.WalkingDistance(plr[pnum].position.tile) >= 2) + if (Monsters[i].position.tile.WalkingDistance(Players[pnum].position.tile) >= 2) return; int hper = GenerateRnd(100); @@ -2026,15 +2026,15 @@ void M_TryH2HHit(int i, int pnum, int hit, int minDam, int maxDam) if (debug_mode_dollar_sign || debug_mode_key_inverted_v) hper = 1000; #endif - int ac = plr[pnum]._pIBonusAC + plr[pnum]._pIAC; - if ((plr[pnum].pDamAcFlags & ISPLHF_ACDEMON) != 0 && Monsters[i].MData->mMonstClass == MC_DEMON) + int ac = Players[pnum]._pIBonusAC + Players[pnum]._pIAC; + if ((Players[pnum].pDamAcFlags & ISPLHF_ACDEMON) != 0 && Monsters[i].MData->mMonstClass == MC_DEMON) ac += 40; - if ((plr[pnum].pDamAcFlags & ISPLHF_ACUNDEAD) != 0 && Monsters[i].MData->mMonstClass == MC_UNDEAD) + if ((Players[pnum].pDamAcFlags & ISPLHF_ACUNDEAD) != 0 && Monsters[i].MData->mMonstClass == MC_UNDEAD) ac += 20; - hit += 2 * (Monsters[i].mLevel - plr[pnum]._pLevel) + hit += 2 * (Monsters[i].mLevel - Players[pnum]._pLevel) + 30 - ac - - plr[pnum]._pDexterity / 5; + - Players[pnum]._pDexterity / 5; if (hit < 15) hit = 15; if (currlevel == 14 && hit < 20) @@ -2044,13 +2044,13 @@ void M_TryH2HHit(int i, int pnum, int hit, int minDam, int maxDam) if (currlevel == 16 && hit < 30) hit = 30; int blkper = 100; - if ((plr[pnum]._pmode == PM_STAND || plr[pnum]._pmode == PM_ATTACK) && plr[pnum]._pBlockFlag) { + if ((Players[pnum]._pmode == PM_STAND || Players[pnum]._pmode == PM_ATTACK) && Players[pnum]._pBlockFlag) { blkper = GenerateRnd(100); } - int blk = plr[pnum]._pDexterity - + plr[pnum]._pBaseToBlk + int blk = Players[pnum]._pDexterity + + Players[pnum]._pBaseToBlk - (Monsters[i].mLevel * 2) - + (plr[pnum]._pLevel * 2); + + (Players[pnum]._pLevel * 2); if (blk < 0) blk = 0; if (blk > 100) @@ -2058,12 +2058,12 @@ void M_TryH2HHit(int i, int pnum, int hit, int minDam, int maxDam) if (hper >= hit) return; if (blkper < blk) { - Direction dir = GetDirection(plr[pnum].position.tile, Monsters[i].position.tile); + Direction dir = GetDirection(Players[pnum].position.tile, Monsters[i].position.tile); StartPlrBlock(pnum, dir); - if (pnum == myplr && plr[pnum].wReflections > 0) { - plr[pnum].wReflections--; + if (pnum == MyPlayerId && Players[pnum].wReflections > 0) { + Players[pnum].wReflections--; int dam = GenerateRnd((maxDam - minDam + 1) << 6) + (minDam << 6); - dam += plr[pnum]._pIGetHit << 6; + dam += Players[pnum]._pIGetHit << 6; if (dam < 64) dam = 64; int mdam = dam * (GenerateRnd(10) + 20L) / 100; @@ -2078,7 +2078,7 @@ void M_TryH2HHit(int i, int pnum, int hit, int minDam, int maxDam) } return; } - if (Monsters[i].MType->mtype == MT_YZOMBIE && pnum == myplr) { + if (Monsters[i].MType->mtype == MT_YZOMBIE && pnum == MyPlayerId) { int currentMissileId = -1; for (int j = 0; j < nummissiles; j++) { int mi = missileactive[j]; @@ -2087,30 +2087,30 @@ void M_TryH2HHit(int i, int pnum, int hit, int minDam, int maxDam) if (missile[mi]._misource == pnum) currentMissileId = mi; } - if (plr[pnum]._pMaxHP > 64) { - if (plr[pnum]._pMaxHPBase > 64) { - plr[pnum]._pMaxHP -= 64; - if (plr[pnum]._pHitPoints > plr[pnum]._pMaxHP) { - plr[pnum]._pHitPoints = plr[pnum]._pMaxHP; + if (Players[pnum]._pMaxHP > 64) { + if (Players[pnum]._pMaxHPBase > 64) { + Players[pnum]._pMaxHP -= 64; + if (Players[pnum]._pHitPoints > Players[pnum]._pMaxHP) { + Players[pnum]._pHitPoints = Players[pnum]._pMaxHP; if (currentMissileId >= 0) - missile[currentMissileId]._miVar1 = plr[pnum]._pHitPoints; + missile[currentMissileId]._miVar1 = Players[pnum]._pHitPoints; } - plr[pnum]._pMaxHPBase -= 64; - if (plr[pnum]._pHPBase > plr[pnum]._pMaxHPBase) { - plr[pnum]._pHPBase = plr[pnum]._pMaxHPBase; + Players[pnum]._pMaxHPBase -= 64; + if (Players[pnum]._pHPBase > Players[pnum]._pMaxHPBase) { + Players[pnum]._pHPBase = Players[pnum]._pMaxHPBase; if (currentMissileId >= 0) - missile[currentMissileId]._miVar2 = plr[pnum]._pHPBase; + missile[currentMissileId]._miVar2 = Players[pnum]._pHPBase; } } } } int dam = (minDam << 6) + GenerateRnd((maxDam - minDam + 1) << 6); - dam += (plr[pnum]._pIGetHit << 6); + dam += (Players[pnum]._pIGetHit << 6); if (dam < 64) dam = 64; - if (pnum == myplr) { - if (plr[pnum].wReflections > 0) { - plr[pnum].wReflections--; + if (pnum == MyPlayerId) { + if (Players[pnum].wReflections > 0) { + Players[pnum].wReflections--; int mdam = dam * (GenerateRnd(10) + 20L) / 100; Monsters[i]._mhitpoints -= mdam; dam -= mdam; @@ -2123,7 +2123,7 @@ void M_TryH2HHit(int i, int pnum, int hit, int minDam, int maxDam) } ApplyPlrDamage(pnum, 0, 0, dam); } - if ((plr[pnum]._pIFlags & ISPL_THORNS) != 0) { + if ((Players[pnum]._pIFlags & ISPL_THORNS) != 0) { int mdam = (GenerateRnd(3) + 1) << 6; Monsters[i]._mhitpoints -= mdam; if (Monsters[i]._mhitpoints >> 6 <= 0) @@ -2133,23 +2133,23 @@ void M_TryH2HHit(int i, int pnum, int hit, int minDam, int maxDam) } if ((Monsters[i]._mFlags & MFLAG_NOLIFESTEAL) == 0 && Monsters[i].MType->mtype == MT_SKING && gbIsMultiplayer) Monsters[i]._mhitpoints += dam; - if (plr[pnum]._pHitPoints >> 6 <= 0) { + if (Players[pnum]._pHitPoints >> 6 <= 0) { if (gbIsHellfire) M_StartStand(i, Monsters[i]._mdir); return; } StartPlrHit(pnum, dam, false); if ((Monsters[i]._mFlags & MFLAG_KNOCKBACK) != 0) { - if (plr[pnum]._pmode != PM_GOTHIT) + if (Players[pnum]._pmode != PM_GOTHIT) StartPlrHit(pnum, 0, true); - Point newPosition = plr[pnum].position.tile + Monsters[i]._mdir; + Point newPosition = Players[pnum].position.tile + Monsters[i]._mdir; if (PosOkPlayer(pnum, newPosition)) { - plr[pnum].position.tile = newPosition; - FixPlayerLocation(pnum, plr[pnum]._pdir); + Players[pnum].position.tile = newPosition; + FixPlayerLocation(pnum, Players[pnum]._pdir); FixPlrWalkTags(pnum); dPlayer[newPosition.x][newPosition.y] = pnum + 1; - SetPlayerOld(plr[pnum]); + SetPlayerOld(Players[pnum]); } } } @@ -2489,7 +2489,7 @@ void DoEnding() if (gbIsSpawn) return; - switch (plr[myplr]._pClass) { + switch (Players[MyPlayerId]._pClass) { case HeroClass::Sorcerer: case HeroClass::Monk: play_movie("gendata\\DiabVic1.smk", false); @@ -2524,12 +2524,12 @@ void PrepDoEnding() { gbSoundOn = sgbSaveSoundOn; gbRunGame = false; - deathflag = false; + MyPlayerIsDead = false; cineflag = true; - plr[myplr].pDiabloKillLevel = std::max(plr[myplr].pDiabloKillLevel, static_cast(sgGameInitInfo.nDifficulty + 1)); + Players[MyPlayerId].pDiabloKillLevel = std::max(Players[MyPlayerId].pDiabloKillLevel, static_cast(sgGameInitInfo.nDifficulty + 1)); - for (auto &player : plr) { + for (auto &player : Players) { player._pmode = PM_QUIT; player._pInvincible = true; if (gbIsMultiplayer) { @@ -3131,7 +3131,7 @@ void MAI_Sneak(int i) if ((monst->_mFlags & MFLAG_TARGETS_MONSTER) != 0) md = GetDirection(monst->position.tile, Monsters[monst->_menemy].position.tile); else - md = GetDirection(monst->position.tile, plr[monst->_menemy].position.last); + md = GetDirection(monst->position.tile, Players[monst->_menemy].position.last); md = opposite[md]; if (monst->MType->mtype == MT_UNSEEN) { if (GenerateRnd(2) != 0) @@ -3792,7 +3792,7 @@ void MAI_Golum(int i) if (Monsters[i]._pathcount > 8) Monsters[i]._pathcount = 5; - bool ok = M_CallWalk(i, plr[i]._pdir); + bool ok = M_CallWalk(i, Players[i]._pdir); if (ok) return; @@ -4203,7 +4203,7 @@ void MAI_Lazurus(int i) Direction md = M_GetDir(i); if ((dFlags[mx][my] & BFLAG_VISIBLE) != 0) { if (!gbIsMultiplayer) { - if (monst->mtalkmsg == TEXT_VILE13 && monst->_mgoal == MGOAL_INQUIRING && plr[myplr].position.tile.x == 35 && plr[myplr].position.tile.y == 46) { + if (monst->mtalkmsg == TEXT_VILE13 && monst->_mgoal == MGOAL_INQUIRING && Players[MyPlayerId].position.tile.x == 35 && Players[MyPlayerId].position.tile.y == 46) { PlayInGameMovie("gendata\\fprst3.smk"); monst->_mmode = MM_TALK; quests[Q_BETRAYER]._qvar1 = 5; @@ -4402,10 +4402,10 @@ void ProcessMonsters() } else { menemy = monst->_menemy; assurance((DWORD)menemy < MAX_PLRS, menemy); - monst->enemyPosition = plr[monst->_menemy].position.future; + monst->enemyPosition = Players[monst->_menemy].position.future; if ((dFlags[mx][my] & BFLAG_VISIBLE) != 0) { monst->_msquelch = UINT8_MAX; - monst->position.last = plr[monst->_menemy].position.future; + monst->position.last = Players[monst->_menemy].position.future; } else if (monst->_msquelch != 0 && monst->MType->mtype != MT_DIABLO) { /// BUGFIX: change '_mAi' to 'MType->mtype' monst->_msquelch--; } @@ -4871,15 +4871,15 @@ void MissToMonst(int i, Point position) if (monst->MType->mtype != MT_GLOOM && (monst->MType->mtype < MT_INCIN || monst->MType->mtype > MT_HELLBURN)) { M_TryH2HHit(m, dPlayer[oldPosition.x][oldPosition.y] - 1, 500, monst->mMinDamage2, monst->mMaxDamage2); if (pnum == dPlayer[oldPosition.x][oldPosition.y] - 1 && (monst->MType->mtype < MT_NSNAKE || monst->MType->mtype > MT_GSNAKE)) { - if (plr[pnum]._pmode != PM_GOTHIT && plr[pnum]._pmode != PM_DEATH) + if (Players[pnum]._pmode != PM_GOTHIT && Players[pnum]._pmode != PM_DEATH) StartPlrHit(pnum, 0, true); Point newPosition = oldPosition + monst->_mdir; if (PosOkPlayer(pnum, newPosition)) { - plr[pnum].position.tile = newPosition; - FixPlayerLocation(pnum, plr[pnum]._pdir); + Players[pnum].position.tile = newPosition; + FixPlayerLocation(pnum, Players[pnum]._pdir); FixPlrWalkTags(pnum); dPlayer[newPosition.x][newPosition.y] = pnum + 1; - SetPlayerOld(plr[pnum]); + SetPlayerOld(Players[pnum]); } } } @@ -5107,14 +5107,14 @@ void TalktoMonster(int i) } if (QuestStatus(Q_LTBANNER) && quests[Q_LTBANNER]._qvar1 == 2) { - if (plr[pnum].TryRemoveInvItemById(IDI_BANNER)) { + if (Players[pnum].TryRemoveInvItemById(IDI_BANNER)) { quests[Q_LTBANNER]._qactive = QUEST_DONE; monst->mtalkmsg = TEXT_BANNER12; monst->_mgoal = MGOAL_INQUIRING; } } if (QuestStatus(Q_VEIL) && monst->mtalkmsg >= TEXT_VEIL9) { - if (plr[pnum].TryRemoveInvItemById(IDI_GLDNELIX)) { + if (Players[pnum].TryRemoveInvItemById(IDI_GLDNELIX)) { monst->mtalkmsg = TEXT_VEIL11; monst->_mgoal = MGOAL_INQUIRING; } @@ -5130,16 +5130,16 @@ void SpawnGolum(int i, Point position, int mi) Monsters[i].position.future = position; Monsters[i].position.old = position; Monsters[i]._pathcount = 0; - Monsters[i]._mmaxhp = 2 * (320 * missile[mi]._mispllvl + plr[i]._pMaxMana / 3); + Monsters[i]._mmaxhp = 2 * (320 * missile[mi]._mispllvl + Players[i]._pMaxMana / 3); Monsters[i]._mhitpoints = Monsters[i]._mmaxhp; Monsters[i].mArmorClass = 25; - Monsters[i].mHit = 5 * (missile[mi]._mispllvl + 8) + 2 * plr[i]._pLevel; + Monsters[i].mHit = 5 * (missile[mi]._mispllvl + 8) + 2 * Players[i]._pLevel; Monsters[i].mMinDamage = 2 * (missile[mi]._mispllvl + 4); Monsters[i].mMaxDamage = 2 * (missile[mi]._mispllvl + 8); Monsters[i]._mFlags |= MFLAG_GOLEM; M_StartSpStand(i, DIR_S); M_Enemy(i); - if (i == myplr) { + if (i == MyPlayerId) { NetSendCmdGolem( Monsters[i].position.tile.x, Monsters[i].position.tile.y, @@ -5195,7 +5195,7 @@ void decode_enemy(int m, int enemy) if (enemy < MAX_PLRS) { Monsters[m]._mFlags &= ~MFLAG_TARGETS_MONSTER; Monsters[m]._menemy = enemy; - Monsters[m].enemyPosition = plr[enemy].position.future; + Monsters[m].enemyPosition = Players[enemy].position.future; } else { Monsters[m]._mFlags |= MFLAG_TARGETS_MONSTER; enemy -= MAX_PLRS; diff --git a/Source/msg.cpp b/Source/msg.cpp index e39f0f347..cef0c4416 100644 --- a/Source/msg.cpp +++ b/Source/msg.cpp @@ -151,7 +151,7 @@ int WaitForTurns() if (gbDeltaSender >= MAX_PLRS) { sgbDeltaChunks = 0; sgbRecvCmd = CMD_DLEVEL_END; - gbDeltaSender = myplr; + gbDeltaSender = MyPlayerId; nthread_set_turn_upper_bit(); } if (sgbDeltaChunks == MAX_CHUNKS - 1) { @@ -509,17 +509,17 @@ bool IOwnLevel(int nReqLevel) int i; for (i = 0; i < MAX_PLRS; i++) { - if (!plr[i].plractive) + if (!Players[i].plractive) continue; - if (plr[i]._pLvlChanging) + if (Players[i]._pLvlChanging) continue; - if (plr[i].plrlevel != nReqLevel) + if (Players[i].plrlevel != nReqLevel) continue; - if (i == myplr && gbBufferMsgs != 0) + if (i == MyPlayerId && gbBufferMsgs != 0) continue; break; } - return i == myplr; + return i == MyPlayerId; } void DeltaOpenPortal(int pnum, uint8_t x, uint8_t y, uint8_t bLevel, dungeon_type bLType, bool bSetLvl) @@ -534,7 +534,7 @@ void DeltaOpenPortal(int pnum, uint8_t x, uint8_t y, uint8_t bLevel, dungeon_typ void CheckUpdatePlayer(int pnum) { - if (gbIsMultiplayer && pnum == myplr) + if (gbIsMultiplayer && pnum == MyPlayerId) pfile_update(true); } @@ -566,7 +566,7 @@ void NetSendCmdGItem2(bool usonly, _cmd_id bCmd, BYTE mast, BYTE pnum, TCmdGItem if (!usonly) { cmd.dwTime = 0; - NetSendHiPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); return; } @@ -607,7 +607,7 @@ void NetSendCmdExtra(TCmdGItem *p) memcpy(&cmd, p, sizeof(cmd)); cmd.dwTime = 0; cmd.bCmd = CMD_ITEMEXTRA; - NetSendHiPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); } DWORD OnSyncData(TCmd *pCmd, int pnum) @@ -619,10 +619,10 @@ DWORD OnWalk(TCmd *pCmd, int pnum) { auto *p = (TCmdLoc *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { - ClrPlrPath(plr[pnum]); + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { + ClrPlrPath(Players[pnum]); MakePlrPath(pnum, { p->x, p->y }, true); - plr[pnum].destAction = ACTION_NONE; + Players[pnum].destAction = ACTION_NONE; } return sizeof(*p); @@ -680,10 +680,10 @@ DWORD OnGotoGetItem(TCmd *pCmd, int pnum) { auto *p = (TCmdLocParam1 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { MakePlrPath(pnum, { p->x, p->y }, false); - plr[pnum].destAction = ACTION_PICKUPITEM; - plr[pnum].destParam1 = p->wParam1; + Players[pnum].destAction = ACTION_PICKUPITEM; + Players[pnum].destParam1 = p->wParam1; } return sizeof(*p); @@ -693,17 +693,17 @@ DWORD OnRequestGetItem(TCmd *pCmd, int pnum) { auto *p = (TCmdGItem *)pCmd; - if (gbBufferMsgs != 1 && IOwnLevel(plr[pnum].plrlevel)) { + if (gbBufferMsgs != 1 && IOwnLevel(Players[pnum].plrlevel)) { if (GetItemRecord(p->dwSeed, p->wCI, p->wIndx)) { int ii = FindGetItem(p->wIndx, p->wCI, p->dwSeed); if (ii != -1) { - NetSendCmdGItem2(false, CMD_GETITEM, myplr, p->bPnum, p); - if (p->bPnum != myplr) + NetSendCmdGItem2(false, CMD_GETITEM, MyPlayerId, p->bPnum, p); + if (p->bPnum != MyPlayerId) SyncGetItem({ p->x, p->y }, p->wIndx, p->wCI, p->dwSeed); else - InvGetItem(myplr, &Items[ii], ii); + InvGetItem(MyPlayerId, &Items[ii], ii); SetItemRecord(p->dwSeed, p->wCI, p->wIndx); - } else if (!NetSendCmdReq2(CMD_REQUESTGITEM, myplr, p->bPnum, p)) { + } else if (!NetSendCmdReq2(CMD_REQUESTGITEM, MyPlayerId, p->bPnum, p)) { NetSendCmdExtra(p); } } @@ -721,14 +721,14 @@ DWORD OnGetItem(TCmd *pCmd, int pnum) } else { int ii = FindGetItem(p->wIndx, p->wCI, p->dwSeed); if (DeltaGetItem(p, p->bLevel)) { - if ((currlevel == p->bLevel || p->bPnum == myplr) && p->bMaster != myplr) { - if (p->bPnum == myplr) { + if ((currlevel == p->bLevel || p->bPnum == MyPlayerId) && p->bMaster != MyPlayerId) { + if (p->bPnum == MyPlayerId) { if (currlevel != p->bLevel) { - ii = SyncPutItem(plr[myplr], plr[myplr].position.tile, p->wIndx, p->wCI, p->dwSeed, p->bId, p->bDur, p->bMDur, p->bCh, p->bMCh, p->wValue, p->dwBuff, p->wToHit, p->wMaxDam, p->bMinStr, p->bMinMag, p->bMinDex, p->bAC); + ii = SyncPutItem(Players[MyPlayerId], Players[MyPlayerId].position.tile, p->wIndx, p->wCI, p->dwSeed, p->bId, p->bDur, p->bMDur, p->bCh, p->bMCh, p->wValue, p->dwBuff, p->wToHit, p->wMaxDam, p->bMinStr, p->bMinMag, p->bMinDex, p->bAC); if (ii != -1) - InvGetItem(myplr, &Items[ii], ii); + InvGetItem(MyPlayerId, &Items[ii], ii); } else { - InvGetItem(myplr, &Items[ii], ii); + InvGetItem(MyPlayerId, &Items[ii], ii); } } else { SyncGetItem({ p->x, p->y }, p->wIndx, p->wCI, p->dwSeed); @@ -746,10 +746,10 @@ DWORD OnGotoAutoGetItem(TCmd *pCmd, int pnum) { auto *p = (TCmdLocParam1 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { MakePlrPath(pnum, { p->x, p->y }, false); - plr[pnum].destAction = ACTION_PICKUPAITEM; - plr[pnum].destParam1 = p->wParam1; + Players[pnum].destAction = ACTION_PICKUPAITEM; + Players[pnum].destParam1 = p->wParam1; } return sizeof(*p); @@ -759,17 +759,17 @@ DWORD OnRequestAutoGetItem(TCmd *pCmd, int pnum) { auto *p = (TCmdGItem *)pCmd; - if (gbBufferMsgs != 1 && IOwnLevel(plr[pnum].plrlevel)) { + if (gbBufferMsgs != 1 && IOwnLevel(Players[pnum].plrlevel)) { if (GetItemRecord(p->dwSeed, p->wCI, p->wIndx)) { int ii = FindGetItem(p->wIndx, p->wCI, p->dwSeed); if (ii != -1) { - NetSendCmdGItem2(false, CMD_AGETITEM, myplr, p->bPnum, p); - if (p->bPnum != myplr) + NetSendCmdGItem2(false, CMD_AGETITEM, MyPlayerId, p->bPnum, p); + if (p->bPnum != MyPlayerId) SyncGetItem({ p->x, p->y }, p->wIndx, p->wCI, p->dwSeed); else - AutoGetItem(myplr, &Items[p->bCursitem], p->bCursitem); + AutoGetItem(MyPlayerId, &Items[p->bCursitem], p->bCursitem); SetItemRecord(p->dwSeed, p->wCI, p->wIndx); - } else if (!NetSendCmdReq2(CMD_REQUESTAGITEM, myplr, p->bPnum, p)) { + } else if (!NetSendCmdReq2(CMD_REQUESTAGITEM, MyPlayerId, p->bPnum, p)) { NetSendCmdExtra(p); } } @@ -787,14 +787,14 @@ DWORD OnAutoGetItem(TCmd *pCmd, int pnum) } else { FindGetItem(p->wIndx, p->wCI, p->dwSeed); if (DeltaGetItem(p, p->bLevel)) { - if ((currlevel == p->bLevel || p->bPnum == myplr) && p->bMaster != myplr) { - if (p->bPnum == myplr) { + if ((currlevel == p->bLevel || p->bPnum == MyPlayerId) && p->bMaster != MyPlayerId) { + if (p->bPnum == MyPlayerId) { if (currlevel != p->bLevel) { - int ii = SyncPutItem(plr[myplr], plr[myplr].position.tile, p->wIndx, p->wCI, p->dwSeed, p->bId, p->bDur, p->bMDur, p->bCh, p->bMCh, p->wValue, p->dwBuff, p->wToHit, p->wMaxDam, p->bMinStr, p->bMinMag, p->bMinDex, p->bAC); + int ii = SyncPutItem(Players[MyPlayerId], Players[MyPlayerId].position.tile, p->wIndx, p->wCI, p->dwSeed, p->bId, p->bDur, p->bMDur, p->bCh, p->bMCh, p->wValue, p->dwBuff, p->wToHit, p->wMaxDam, p->bMinStr, p->bMinMag, p->bMinDex, p->bAC); if (ii != -1) - AutoGetItem(myplr, &Items[ii], ii); + AutoGetItem(MyPlayerId, &Items[ii], ii); } else { - AutoGetItem(myplr, &Items[p->bCursitem], p->bCursitem); + AutoGetItem(MyPlayerId, &Items[p->bCursitem], p->bCursitem); } } else { SyncGetItem({ p->x, p->y }, p->wIndx, p->wCI, p->dwSeed); @@ -816,7 +816,7 @@ DWORD OnItemExtra(TCmd *pCmd, int pnum) SendPacket(pnum, p, sizeof(*p)); } else { DeltaGetItem(p, p->bLevel); - if (currlevel == plr[pnum].plrlevel) + if (currlevel == Players[pnum].plrlevel) SyncGetItem({ p->x, p->y }, p->wIndx, p->wCI, p->dwSeed); } @@ -829,21 +829,21 @@ DWORD OnPutItem(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) SendPacket(pnum, p, sizeof(*p)); - else if (currlevel == plr[pnum].plrlevel) { + else if (currlevel == Players[pnum].plrlevel) { int ii; - if (pnum == myplr) - ii = InvPutItem(plr[pnum], { p->x, p->y }); + if (pnum == MyPlayerId) + ii = InvPutItem(Players[pnum], { p->x, p->y }); else - ii = SyncPutItem(plr[pnum], { p->x, p->y }, p->wIndx, p->wCI, p->dwSeed, p->bId, p->bDur, p->bMDur, p->bCh, p->bMCh, p->wValue, p->dwBuff, p->wToHit, p->wMaxDam, p->bMinStr, p->bMinMag, p->bMinDex, p->bAC); + ii = SyncPutItem(Players[pnum], { p->x, p->y }, p->wIndx, p->wCI, p->dwSeed, p->bId, p->bDur, p->bMDur, p->bCh, p->bMCh, p->wValue, p->dwBuff, p->wToHit, p->wMaxDam, p->bMinStr, p->bMinMag, p->bMinDex, p->bAC); if (ii != -1) { PutItemRecord(p->dwSeed, p->wCI, p->wIndx); - DeltaPutItem(p, Items[ii].position.x, Items[ii].position.y, plr[pnum].plrlevel); + DeltaPutItem(p, Items[ii].position.x, Items[ii].position.y, Players[pnum].plrlevel); CheckUpdatePlayer(pnum); } return sizeof(*p); } else { PutItemRecord(p->dwSeed, p->wCI, p->wIndx); - DeltaPutItem(p, p->x, p->y, plr[pnum].plrlevel); + DeltaPutItem(p, p->x, p->y, Players[pnum].plrlevel); CheckUpdatePlayer(pnum); } @@ -856,17 +856,17 @@ DWORD OnSyncPutItem(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) SendPacket(pnum, p, sizeof(*p)); - else if (currlevel == plr[pnum].plrlevel) { - int ii = SyncPutItem(plr[pnum], { p->x, p->y }, p->wIndx, p->wCI, p->dwSeed, p->bId, p->bDur, p->bMDur, p->bCh, p->bMCh, p->wValue, p->dwBuff, p->wToHit, p->wMaxDam, p->bMinStr, p->bMinMag, p->bMinDex, p->bAC); + else if (currlevel == Players[pnum].plrlevel) { + int ii = SyncPutItem(Players[pnum], { p->x, p->y }, p->wIndx, p->wCI, p->dwSeed, p->bId, p->bDur, p->bMDur, p->bCh, p->bMCh, p->wValue, p->dwBuff, p->wToHit, p->wMaxDam, p->bMinStr, p->bMinMag, p->bMinDex, p->bAC); if (ii != -1) { PutItemRecord(p->dwSeed, p->wCI, p->wIndx); - DeltaPutItem(p, Items[ii].position.x, Items[ii].position.y, plr[pnum].plrlevel); + DeltaPutItem(p, Items[ii].position.x, Items[ii].position.y, Players[pnum].plrlevel); CheckUpdatePlayer(pnum); } return sizeof(*p); } else { PutItemRecord(p->dwSeed, p->wCI, p->wIndx); - DeltaPutItem(p, p->x, p->y, plr[pnum].plrlevel); + DeltaPutItem(p, p->x, p->y, Players[pnum].plrlevel); CheckUpdatePlayer(pnum); } @@ -880,11 +880,11 @@ DWORD OnRespawnItem(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) { SendPacket(pnum, p, sizeof(*p)); } else { - if (currlevel == plr[pnum].plrlevel && pnum != myplr) { - SyncPutItem(plr[pnum], { p->x, p->y }, p->wIndx, p->wCI, p->dwSeed, p->bId, p->bDur, p->bMDur, p->bCh, p->bMCh, p->wValue, p->dwBuff, p->wToHit, p->wMaxDam, p->bMinStr, p->bMinMag, p->bMinDex, p->bAC); + if (currlevel == Players[pnum].plrlevel && pnum != MyPlayerId) { + SyncPutItem(Players[pnum], { p->x, p->y }, p->wIndx, p->wCI, p->dwSeed, p->bId, p->bDur, p->bMDur, p->bCh, p->bMCh, p->wValue, p->dwBuff, p->wToHit, p->wMaxDam, p->bMinStr, p->bMinMag, p->bMinDex, p->bAC); } PutItemRecord(p->dwSeed, p->wCI, p->wIndx); - DeltaPutItem(p, p->x, p->y, plr[pnum].plrlevel); + DeltaPutItem(p, p->x, p->y, Players[pnum].plrlevel); } return sizeof(*p); @@ -894,11 +894,11 @@ DWORD OnAttackTile(TCmd *pCmd, int pnum) { auto *p = (TCmdLoc *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { MakePlrPath(pnum, { p->x, p->y }, false); - plr[pnum].destAction = ACTION_ATTACK; - plr[pnum].destParam1 = p->x; - plr[pnum].destParam2 = p->y; + Players[pnum].destAction = ACTION_ATTACK; + Players[pnum].destParam1 = p->x; + Players[pnum].destParam2 = p->y; } return sizeof(*p); @@ -908,11 +908,11 @@ DWORD OnStandingAttackTile(TCmd *pCmd, int pnum) { auto *p = (TCmdLoc *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { - ClrPlrPath(plr[pnum]); - plr[pnum].destAction = ACTION_ATTACK; - plr[pnum].destParam1 = p->x; - plr[pnum].destParam2 = p->y; + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { + ClrPlrPath(Players[pnum]); + Players[pnum].destAction = ACTION_ATTACK; + Players[pnum].destParam1 = p->x; + Players[pnum].destParam2 = p->y; } return sizeof(*p); @@ -922,11 +922,11 @@ DWORD OnRangedAttackTile(TCmd *pCmd, int pnum) { auto *p = (TCmdLoc *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { - ClrPlrPath(plr[pnum]); - plr[pnum].destAction = ACTION_RATTACK; - plr[pnum].destParam1 = p->x; - plr[pnum].destParam2 = p->y; + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { + ClrPlrPath(Players[pnum]); + Players[pnum].destAction = ACTION_RATTACK; + Players[pnum].destParam1 = p->x; + Players[pnum].destParam2 = p->y; } return sizeof(*p); @@ -936,20 +936,20 @@ DWORD OnSpellWall(TCmd *pCmd, int pnum) { auto *p = (TCmdLocParam3 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { auto spell = static_cast(p->wParam1); if (currlevel != 0 || spelldata[spell].sTownSpell) { - ClrPlrPath(plr[pnum]); - plr[pnum].destAction = ACTION_SPELLWALL; - plr[pnum].destParam1 = p->x; - plr[pnum].destParam2 = p->y; - plr[pnum].destParam3 = static_cast(p->wParam2); - plr[pnum].destParam4 = p->wParam3; - plr[pnum]._pSpell = spell; - plr[pnum]._pSplType = plr[pnum]._pRSplType; - plr[pnum]._pSplFrom = 0; + ClrPlrPath(Players[pnum]); + Players[pnum].destAction = ACTION_SPELLWALL; + Players[pnum].destParam1 = p->x; + Players[pnum].destParam2 = p->y; + Players[pnum].destParam3 = static_cast(p->wParam2); + Players[pnum].destParam4 = p->wParam3; + Players[pnum]._pSpell = spell; + Players[pnum]._pSplType = Players[pnum]._pRSplType; + Players[pnum]._pSplFrom = 0; } else { - PlayerMessageFormat(fmt::format(_("{:s} has cast an illegal spell."), plr[pnum]._pName).c_str()); + PlayerMessageFormat(fmt::format(_("{:s} has cast an illegal spell."), Players[pnum]._pName).c_str()); } } @@ -960,19 +960,19 @@ DWORD OnSpellTile(TCmd *pCmd, int pnum) { auto *p = (TCmdLocParam2 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { auto spell = static_cast(p->wParam1); if (currlevel != 0 || spelldata[spell].sTownSpell) { - ClrPlrPath(plr[pnum]); - plr[pnum].destAction = ACTION_SPELL; - plr[pnum].destParam1 = p->x; - plr[pnum].destParam2 = p->y; - plr[pnum].destParam3 = static_cast(p->wParam2); - plr[pnum]._pSpell = spell; - plr[pnum]._pSplType = plr[pnum]._pRSplType; - plr[pnum]._pSplFrom = 0; + ClrPlrPath(Players[pnum]); + Players[pnum].destAction = ACTION_SPELL; + Players[pnum].destParam1 = p->x; + Players[pnum].destParam2 = p->y; + Players[pnum].destParam3 = static_cast(p->wParam2); + Players[pnum]._pSpell = spell; + Players[pnum]._pSplType = Players[pnum]._pRSplType; + Players[pnum]._pSplFrom = 0; } else { - PlayerMessageFormat(fmt::format(_("{:s} has cast an illegal spell."), plr[pnum]._pName).c_str()); + PlayerMessageFormat(fmt::format(_("{:s} has cast an illegal spell."), Players[pnum]._pName).c_str()); } } @@ -983,19 +983,19 @@ DWORD OnTargetSpellTile(TCmd *pCmd, int pnum) { auto *p = (TCmdLocParam2 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { auto spell = static_cast(p->wParam1); if (currlevel != 0 || spelldata[spell].sTownSpell) { - ClrPlrPath(plr[pnum]); - plr[pnum].destAction = ACTION_SPELL; - plr[pnum].destParam1 = p->x; - plr[pnum].destParam2 = p->y; - plr[pnum].destParam3 = static_cast(p->wParam2); - plr[pnum]._pSpell = spell; - plr[pnum]._pSplType = RSPLTYPE_INVALID; - plr[pnum]._pSplFrom = 2; + ClrPlrPath(Players[pnum]); + Players[pnum].destAction = ACTION_SPELL; + Players[pnum].destParam1 = p->x; + Players[pnum].destParam2 = p->y; + Players[pnum].destParam3 = static_cast(p->wParam2); + Players[pnum]._pSpell = spell; + Players[pnum]._pSplType = RSPLTYPE_INVALID; + Players[pnum]._pSplFrom = 2; } else { - PlayerMessageFormat(fmt::format(_("{:s} has cast an illegal spell."), plr[pnum]._pName).c_str()); + PlayerMessageFormat(fmt::format(_("{:s} has cast an illegal spell."), Players[pnum]._pName).c_str()); } } @@ -1006,13 +1006,13 @@ DWORD OnOperateObjectTile(TCmd *pCmd, int pnum) { auto *p = (TCmdLocParam1 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { if (object[p->wParam1]._oSolidFlag || object[p->wParam1]._oDoorFlag) MakePlrPath(pnum, { p->x, p->y }, false); else MakePlrPath(pnum, { p->x, p->y }, true); - plr[pnum].destAction = ACTION_OPERATE; - plr[pnum].destParam1 = p->wParam1; + Players[pnum].destAction = ACTION_OPERATE; + Players[pnum].destParam1 = p->wParam1; } return sizeof(*p); @@ -1022,13 +1022,13 @@ DWORD OnDisarm(TCmd *pCmd, int pnum) { auto *p = (TCmdLocParam1 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { if (object[p->wParam1]._oSolidFlag || object[p->wParam1]._oDoorFlag) MakePlrPath(pnum, { p->x, p->y }, false); else MakePlrPath(pnum, { p->x, p->y }, true); - plr[pnum].destAction = ACTION_DISARM; - plr[pnum].destParam1 = p->wParam1; + Players[pnum].destAction = ACTION_DISARM; + Players[pnum].destParam1 = p->wParam1; } return sizeof(*p); @@ -1038,9 +1038,9 @@ DWORD OnOperateObjectTelekinesis(TCmd *pCmd, int pnum) { auto *p = (TCmdParam1 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { - plr[pnum].destAction = ACTION_OPERATETK; - plr[pnum].destParam1 = p->wParam1; + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { + Players[pnum].destAction = ACTION_OPERATETK; + Players[pnum].destParam1 = p->wParam1; } return sizeof(*p); @@ -1050,11 +1050,11 @@ DWORD OnAttackMonster(TCmd *pCmd, int pnum) { auto *p = (TCmdParam1 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { - if (plr[pnum].position.tile.WalkingDistance(Monsters[p->wParam1].position.future) > 1) + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { + if (Players[pnum].position.tile.WalkingDistance(Monsters[p->wParam1].position.future) > 1) MakePlrPath(pnum, Monsters[p->wParam1].position.future, false); - plr[pnum].destAction = ACTION_ATTACKMON; - plr[pnum].destParam1 = p->wParam1; + Players[pnum].destAction = ACTION_ATTACKMON; + Players[pnum].destParam1 = p->wParam1; } return sizeof(*p); @@ -1064,10 +1064,10 @@ DWORD OnAttackPlayer(TCmd *pCmd, int pnum) { auto *p = (TCmdParam1 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { - MakePlrPath(pnum, plr[p->wParam1].position.future, false); - plr[pnum].destAction = ACTION_ATTACKPLR; - plr[pnum].destParam1 = p->wParam1; + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { + MakePlrPath(pnum, Players[p->wParam1].position.future, false); + Players[pnum].destAction = ACTION_ATTACKPLR; + Players[pnum].destParam1 = p->wParam1; } return sizeof(*p); @@ -1077,10 +1077,10 @@ DWORD OnRangedAttackMonster(TCmd *pCmd, int pnum) { auto *p = (TCmdParam1 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { - ClrPlrPath(plr[pnum]); - plr[pnum].destAction = ACTION_RATTACKMON; - plr[pnum].destParam1 = p->wParam1; + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { + ClrPlrPath(Players[pnum]); + Players[pnum].destAction = ACTION_RATTACKMON; + Players[pnum].destParam1 = p->wParam1; } return sizeof(*p); @@ -1090,10 +1090,10 @@ DWORD OnRangedAttackPlayer(TCmd *pCmd, int pnum) { auto *p = (TCmdParam1 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { - ClrPlrPath(plr[pnum]); - plr[pnum].destAction = ACTION_RATTACKPLR; - plr[pnum].destParam1 = p->wParam1; + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { + ClrPlrPath(Players[pnum]); + Players[pnum].destAction = ACTION_RATTACKPLR; + Players[pnum].destParam1 = p->wParam1; } return sizeof(*p); @@ -1103,18 +1103,18 @@ DWORD OnSpellMonster(TCmd *pCmd, int pnum) { auto *p = (TCmdParam3 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { auto spell = static_cast(p->wParam2); if (currlevel != 0 || spelldata[spell].sTownSpell) { - ClrPlrPath(plr[pnum]); - plr[pnum].destAction = ACTION_SPELLMON; - plr[pnum].destParam1 = p->wParam1; - plr[pnum].destParam2 = p->wParam3; - plr[pnum]._pSpell = spell; - plr[pnum]._pSplType = plr[pnum]._pRSplType; - plr[pnum]._pSplFrom = 0; + ClrPlrPath(Players[pnum]); + Players[pnum].destAction = ACTION_SPELLMON; + Players[pnum].destParam1 = p->wParam1; + Players[pnum].destParam2 = p->wParam3; + Players[pnum]._pSpell = spell; + Players[pnum]._pSplType = Players[pnum]._pRSplType; + Players[pnum]._pSplFrom = 0; } else { - PlayerMessageFormat(fmt::format(_("{:s} has cast an illegal spell."), plr[pnum]._pName).c_str()); + PlayerMessageFormat(fmt::format(_("{:s} has cast an illegal spell."), Players[pnum]._pName).c_str()); } } @@ -1125,18 +1125,18 @@ DWORD OnSpellPlayer(TCmd *pCmd, int pnum) { auto *p = (TCmdParam3 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { auto spell = static_cast(p->wParam2); if (currlevel != 0 || spelldata[spell].sTownSpell) { - ClrPlrPath(plr[pnum]); - plr[pnum].destAction = ACTION_SPELLPLR; - plr[pnum].destParam1 = p->wParam1; - plr[pnum].destParam2 = p->wParam3; - plr[pnum]._pSpell = spell; - plr[pnum]._pSplType = plr[pnum]._pRSplType; - plr[pnum]._pSplFrom = 0; + ClrPlrPath(Players[pnum]); + Players[pnum].destAction = ACTION_SPELLPLR; + Players[pnum].destParam1 = p->wParam1; + Players[pnum].destParam2 = p->wParam3; + Players[pnum]._pSpell = spell; + Players[pnum]._pSplType = Players[pnum]._pRSplType; + Players[pnum]._pSplFrom = 0; } else { - PlayerMessageFormat(fmt::format(_("{:s} has cast an illegal spell."), plr[pnum]._pName).c_str()); + PlayerMessageFormat(fmt::format(_("{:s} has cast an illegal spell."), Players[pnum]._pName).c_str()); } } @@ -1147,18 +1147,18 @@ DWORD OnTargetSpellMonster(TCmd *pCmd, int pnum) { auto *p = (TCmdParam3 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { auto spell = static_cast(p->wParam2); if (currlevel != 0 || spelldata[spell].sTownSpell) { - ClrPlrPath(plr[pnum]); - plr[pnum].destAction = ACTION_SPELLMON; - plr[pnum].destParam1 = p->wParam1; - plr[pnum].destParam2 = p->wParam3; - plr[pnum]._pSpell = spell; - plr[pnum]._pSplType = RSPLTYPE_INVALID; - plr[pnum]._pSplFrom = 2; + ClrPlrPath(Players[pnum]); + Players[pnum].destAction = ACTION_SPELLMON; + Players[pnum].destParam1 = p->wParam1; + Players[pnum].destParam2 = p->wParam3; + Players[pnum]._pSpell = spell; + Players[pnum]._pSplType = RSPLTYPE_INVALID; + Players[pnum]._pSplFrom = 2; } else { - PlayerMessageFormat(fmt::format(_("{:s} has cast an illegal spell."), plr[pnum]._pName).c_str()); + PlayerMessageFormat(fmt::format(_("{:s} has cast an illegal spell."), Players[pnum]._pName).c_str()); } } @@ -1169,18 +1169,18 @@ DWORD OnTargetSpellPlayer(TCmd *pCmd, int pnum) { auto *p = (TCmdParam3 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { auto spell = static_cast(p->wParam2); if (currlevel != 0 || spelldata[spell].sTownSpell) { - ClrPlrPath(plr[pnum]); - plr[pnum].destAction = ACTION_SPELLPLR; - plr[pnum].destParam1 = p->wParam1; - plr[pnum].destParam2 = p->wParam3; - plr[pnum]._pSpell = spell; - plr[pnum]._pSplType = RSPLTYPE_INVALID; - plr[pnum]._pSplFrom = 2; + ClrPlrPath(Players[pnum]); + Players[pnum].destAction = ACTION_SPELLPLR; + Players[pnum].destParam1 = p->wParam1; + Players[pnum].destParam2 = p->wParam3; + Players[pnum]._pSpell = spell; + Players[pnum]._pSplType = RSPLTYPE_INVALID; + Players[pnum]._pSplFrom = 2; } else { - PlayerMessageFormat(fmt::format(_("{:s} has cast an illegal spell."), plr[pnum]._pName).c_str()); + PlayerMessageFormat(fmt::format(_("{:s} has cast an illegal spell."), Players[pnum]._pName).c_str()); } } @@ -1191,7 +1191,7 @@ DWORD OnKnockback(TCmd *pCmd, int pnum) { auto *p = (TCmdParam1 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { M_GetKnockback(p->wParam1); M_StartHit(p->wParam1, pnum, 0); } @@ -1217,7 +1217,7 @@ DWORD OnHealOther(TCmd *pCmd, int pnum) { auto *p = (TCmdParam1 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) DoHealOther(pnum, p->wParam1); return sizeof(*p); @@ -1227,10 +1227,10 @@ DWORD OnTalkXY(TCmd *pCmd, int pnum) { auto *p = (TCmdLocParam1 *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel) { MakePlrPath(pnum, { p->x, p->y }, false); - plr[pnum].destAction = ACTION_TALK; - plr[pnum].destParam1 = p->wParam1; + Players[pnum].destAction = ACTION_TALK; + Players[pnum].destParam1 = p->wParam1; } return sizeof(*p); @@ -1242,7 +1242,7 @@ DWORD OnNewLevel(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) SendPacket(pnum, p, sizeof(*p)); - else if (pnum != myplr) + else if (pnum != MyPlayerId) StartNewLvl(pnum, (interface_mode)p->wParam1, p->wParam2); return sizeof(*p); @@ -1267,10 +1267,10 @@ DWORD OnMonstDeath(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) SendPacket(pnum, p, sizeof(*p)); - else if (pnum != myplr) { - if (currlevel == plr[pnum].plrlevel) + else if (pnum != MyPlayerId) { + if (currlevel == Players[pnum].plrlevel) M_SyncStartKill(p->wParam1, { p->x, p->y }, pnum); - delta_kill_monster(p->wParam1, { p->x, p->y }, plr[pnum].plrlevel); + delta_kill_monster(p->wParam1, { p->x, p->y }, Players[pnum].plrlevel); } return sizeof(*p); @@ -1282,10 +1282,10 @@ DWORD OnKillGolem(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) SendPacket(pnum, p, sizeof(*p)); - else if (pnum != myplr) { + else if (pnum != MyPlayerId) { if (currlevel == p->wParam1) M_SyncStartKill(pnum, { p->x, p->y }, pnum); - delta_kill_monster(pnum, { p->x, p->y }, plr[pnum].plrlevel); + delta_kill_monster(pnum, { p->x, p->y }, Players[pnum].plrlevel); } return sizeof(*p); @@ -1297,9 +1297,9 @@ DWORD OnAwakeGolem(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) SendPacket(pnum, p, sizeof(*p)); - else if (currlevel != plr[pnum].plrlevel) + else if (currlevel != Players[pnum].plrlevel) DeltaSyncGolem(p, pnum, p->_currlevel); - else if (pnum != myplr) { + else if (pnum != MyPlayerId) { int i; // check if this player already has an active golem bool addGolem = true; @@ -1311,7 +1311,7 @@ DWORD OnAwakeGolem(TCmd *pCmd, int pnum) } } if (addGolem) - AddMissile(plr[pnum].position.tile, { p->_mx, p->_my }, p->_mdir, MIS_GOLEM, TARGET_MONSTERS, pnum, 0, 1); + AddMissile(Players[pnum].position.tile, { p->_mx, p->_my }, p->_mdir, MIS_GOLEM, TARGET_MONSTERS, pnum, 0, 1); } return sizeof(*p); @@ -1323,14 +1323,14 @@ DWORD OnMonstDamage(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) SendPacket(pnum, p, sizeof(*p)); // BUGFIX: change to sizeof(*p) or it still uses TCmdParam2 size for hellfire (fixed) - else if (pnum != myplr) { - if (currlevel == plr[pnum].plrlevel) { + else if (pnum != MyPlayerId) { + if (currlevel == Players[pnum].plrlevel) { Monsters[p->wMon].mWhoHit |= 1 << pnum; if (Monsters[p->wMon]._mhitpoints > 0) { Monsters[p->wMon]._mhitpoints -= p->dwDam; if ((Monsters[p->wMon]._mhitpoints >> 6) < 1) Monsters[p->wMon]._mhitpoints = 1 << 6; - delta_monster_hp(p->wMon, Monsters[p->wMon]._mhitpoints, plr[pnum].plrlevel); + delta_monster_hp(p->wMon, Monsters[p->wMon]._mhitpoints, Players[pnum].plrlevel); } } } @@ -1344,7 +1344,7 @@ DWORD OnPlayerDeath(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) SendPacket(pnum, p, sizeof(*p)); - else if (pnum != myplr) + else if (pnum != MyPlayerId) StartPlayerKill(pnum, p->wParam1); else CheckUpdatePlayer(pnum); @@ -1356,9 +1356,9 @@ DWORD OnPlayerDamage(TCmd *pCmd, int pnum) { auto *p = (TCmdDamage *)pCmd; - if (p->bPlr == myplr && currlevel != 0 && gbBufferMsgs != 1) { - if (currlevel == plr[pnum].plrlevel && p->dwDam <= 192000 && plr[myplr]._pHitPoints >> 6 > 0) { - ApplyPlrDamage(myplr, 0, 0, p->dwDam, 1); + if (p->bPlr == MyPlayerId && currlevel != 0 && gbBufferMsgs != 1) { + if (currlevel == Players[pnum].plrlevel && p->dwDam <= 192000 && Players[MyPlayerId]._pHitPoints >> 6 > 0) { + ApplyPlrDamage(MyPlayerId, 0, 0, p->dwDam, 1); } } @@ -1372,9 +1372,9 @@ DWORD OnOpenDoor(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) { SendPacket(pnum, p, sizeof(*p)); } else { - if (currlevel == plr[pnum].plrlevel) + if (currlevel == Players[pnum].plrlevel) SyncOpObject(pnum, CMD_OPENDOOR, p->wParam1); - DeltaSyncObject(p->wParam1, CMD_OPENDOOR, plr[pnum].plrlevel); + DeltaSyncObject(p->wParam1, CMD_OPENDOOR, Players[pnum].plrlevel); } return sizeof(*p); @@ -1387,9 +1387,9 @@ DWORD OnCloseDoor(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) { SendPacket(pnum, p, sizeof(*p)); } else { - if (currlevel == plr[pnum].plrlevel) + if (currlevel == Players[pnum].plrlevel) SyncOpObject(pnum, CMD_CLOSEDOOR, p->wParam1); - DeltaSyncObject(p->wParam1, CMD_CLOSEDOOR, plr[pnum].plrlevel); + DeltaSyncObject(p->wParam1, CMD_CLOSEDOOR, Players[pnum].plrlevel); } return sizeof(*p); @@ -1402,9 +1402,9 @@ DWORD OnOperateObject(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) { SendPacket(pnum, p, sizeof(*p)); } else { - if (currlevel == plr[pnum].plrlevel) + if (currlevel == Players[pnum].plrlevel) SyncOpObject(pnum, CMD_OPERATEOBJ, p->wParam1); - DeltaSyncObject(p->wParam1, CMD_OPERATEOBJ, plr[pnum].plrlevel); + DeltaSyncObject(p->wParam1, CMD_OPERATEOBJ, Players[pnum].plrlevel); } return sizeof(*p); @@ -1417,9 +1417,9 @@ DWORD OnPlayerOperateObject(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) { SendPacket(pnum, p, sizeof(*p)); } else { - if (currlevel == plr[pnum].plrlevel) + if (currlevel == Players[pnum].plrlevel) SyncOpObject(p->wParam1, CMD_PLROPOBJ, p->wParam2); - DeltaSyncObject(p->wParam2, CMD_PLROPOBJ, plr[pnum].plrlevel); + DeltaSyncObject(p->wParam2, CMD_PLROPOBJ, Players[pnum].plrlevel); } return sizeof(*p); @@ -1432,9 +1432,9 @@ DWORD OnBreakObject(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) { SendPacket(pnum, p, sizeof(*p)); } else { - if (currlevel == plr[pnum].plrlevel) + if (currlevel == Players[pnum].plrlevel) SyncBreakObj(p->wParam1, p->wParam2); - DeltaSyncObject(p->wParam2, CMD_BREAKOBJ, plr[pnum].plrlevel); + DeltaSyncObject(p->wParam2, CMD_BREAKOBJ, Players[pnum].plrlevel); } return sizeof(*p); @@ -1446,7 +1446,7 @@ DWORD OnChangePlayerItems(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) SendPacket(pnum, p, sizeof(*p)); - else if (pnum != myplr) + else if (pnum != MyPlayerId) CheckInvSwap(pnum, p->bLoc, p->wIndx, p->wCI, p->dwSeed, p->bId != 0, p->dwBuff); return sizeof(*p); @@ -1458,7 +1458,7 @@ DWORD OnDeletePlayerItems(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) SendPacket(pnum, p, sizeof(*p)); - else if (pnum != myplr) + else if (pnum != MyPlayerId) inv_update_rem_item(pnum, p->bLoc); return sizeof(*p); @@ -1470,8 +1470,8 @@ DWORD OnPlayerLevel(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) SendPacket(pnum, p, sizeof(*p)); - else if (p->wParam1 <= MAXCHARLEVEL && pnum != myplr) - plr[pnum]._pLevel = p->wParam1; + else if (p->wParam1 <= MAXCHARLEVEL && pnum != MyPlayerId) + Players[pnum]._pLevel = p->wParam1; return sizeof(*p); } @@ -1483,7 +1483,7 @@ DWORD OnDropItem(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) SendPacket(pnum, p, sizeof(*p)); else - DeltaPutItem(p, p->x, p->y, plr[pnum].plrlevel); + DeltaPutItem(p, p->x, p->y, Players[pnum].plrlevel); return sizeof(*p); } @@ -1509,7 +1509,7 @@ DWORD OnPlayerJoinLevel(TCmd *pCmd, int pnum) return sizeof(*p); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; player._pLvlChanging = false; if (player._pName[0] != 0 && !player.plractive) { @@ -1519,7 +1519,7 @@ DWORD OnPlayerJoinLevel(TCmd *pCmd, int pnum) EventPlrMsg(fmt::format(_("Player '{:s}' (level {:d}) just joined the game"), player._pName, player._pLevel).c_str()); } - if (player.plractive && myplr != pnum) { + if (player.plractive && MyPlayerId != pnum) { player.position.tile = { p->x, p->y }; player.plrlevel = p->wParam1; ResetPlayerGFX(player); @@ -1535,7 +1535,7 @@ DWORD OnPlayerJoinLevel(TCmd *pCmd, int pnum) dFlags[player.position.tile.x][player.position.tile.y] |= BFLAG_DEAD_PLAYER; } - player._pvid = AddVision(player.position.tile, player._pLightRad, pnum == myplr); + player._pvid = AddVision(player.position.tile, player._pLightRad, pnum == MyPlayerId); player._plid = NO_LIGHT; } } @@ -1551,10 +1551,10 @@ DWORD OnActivatePortal(TCmd *pCmd, int pnum) SendPacket(pnum, p, sizeof(*p)); } else { ActivatePortal(pnum, p->x, p->y, p->wParam1, static_cast(p->wParam2), p->wParam3 != 0); - if (pnum != myplr) { + if (pnum != MyPlayerId) { if (currlevel == 0) AddInTownPortal(pnum); - else if (currlevel == plr[pnum].plrlevel) { + else if (currlevel == Players[pnum].plrlevel) { bool addPortal = true; for (int i = 0; i < nummissiles; i++) { int mi = missileactive[i]; @@ -1594,8 +1594,8 @@ DWORD OnRestartTown(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) { SendPacket(pnum, pCmd, sizeof(*pCmd)); } else { - if (pnum == myplr) { - deathflag = false; + if (pnum == MyPlayerId) { + MyPlayerIsDead = false; gamemenu_off(); } RestartTownLvl(pnum); @@ -1610,7 +1610,7 @@ DWORD OnSetStrength(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) SendPacket(pnum, p, sizeof(*p)); - else if (p->wParam1 <= 750 && pnum != myplr) + else if (p->wParam1 <= 750 && pnum != MyPlayerId) SetPlrStr(pnum, p->wParam1); return sizeof(*p); @@ -1622,7 +1622,7 @@ DWORD OnSetDexterity(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) SendPacket(pnum, p, sizeof(*p)); - else if (p->wParam1 <= 750 && pnum != myplr) + else if (p->wParam1 <= 750 && pnum != MyPlayerId) SetPlrDex(pnum, p->wParam1); return sizeof(*p); @@ -1634,7 +1634,7 @@ DWORD OnSetMagic(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) SendPacket(pnum, p, sizeof(*p)); - else if (p->wParam1 <= 750 && pnum != myplr) + else if (p->wParam1 <= 750 && pnum != MyPlayerId) SetPlrMag(pnum, p->wParam1); return sizeof(*p); @@ -1646,7 +1646,7 @@ DWORD OnSetVitality(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) SendPacket(pnum, p, sizeof(*p)); - else if (p->wParam1 <= 750 && pnum != myplr) + else if (p->wParam1 <= 750 && pnum != MyPlayerId) SetPlrVit(pnum, p->wParam1); return sizeof(*p); @@ -1670,7 +1670,7 @@ DWORD OnSyncQuest(TCmd *pCmd, int pnum) if (gbBufferMsgs == 1) { SendPacket(pnum, p, sizeof(*p)); } else { - if (pnum != myplr) + if (pnum != MyPlayerId) SetMultiQuest(p->q, p->qstate, p->qlog != 0, p->qvar1); sgbDeltaChanged = true; } @@ -1680,7 +1680,7 @@ DWORD OnSyncQuest(TCmd *pCmd, int pnum) DWORD OnEndShield(TCmd *pCmd, int pnum) { - if (gbBufferMsgs != 1 && pnum != myplr && currlevel == plr[pnum].plrlevel) { + if (gbBufferMsgs != 1 && pnum != MyPlayerId && currlevel == Players[pnum].plrlevel) { for (int i = 0; i < nummissiles; i++) { int mi = missileactive[i]; if (missile[mi]._mitype == MIS_MANASHIELD && missile[mi]._misource == pnum) { @@ -1698,8 +1698,8 @@ DWORD OnCheatExperience(TCmd *pCmd, int pnum) // NOLINT(misc-unused-parameters) #ifdef _DEBUG if (gbBufferMsgs == 1) SendPacket(pnum, pCmd, sizeof(*pCmd)); - else if (plr[pnum]._pLevel < MAXCHARLEVEL - 1) { - plr[pnum]._pExperience = plr[pnum]._pNextExper; + else if (Players[pnum]._pLevel < MAXCHARLEVEL - 1) { + Players[pnum]._pExperience = Players[pnum]._pNextExper; if (sgOptions.Gameplay.bExperienceBar) { force_redraw = 255; } @@ -1715,7 +1715,7 @@ DWORD OnCheatSpellLevel(TCmd *pCmd, int pnum) // NOLINT(misc-unused-parameters) if (gbBufferMsgs == 1) SendPacket(pnum, pCmd, sizeof(*pCmd)); else - plr[pnum]._pSplLvl[plr[pnum]._pRSpell]++; + Players[pnum]._pSplLvl[Players[pnum]._pRSpell]++; #endif return sizeof(*pCmd); } @@ -1729,14 +1729,14 @@ DWORD OnNova(TCmd *pCmd, int pnum) { auto *p = (TCmdLoc *)pCmd; - if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel && pnum != myplr) { - ClrPlrPath(plr[pnum]); - plr[pnum]._pSpell = SPL_NOVA; - plr[pnum]._pSplType = RSPLTYPE_INVALID; - plr[pnum]._pSplFrom = 3; - plr[pnum].destAction = ACTION_SPELL; - plr[pnum].destParam1 = p->x; - plr[pnum].destParam2 = p->y; + if (gbBufferMsgs != 1 && currlevel == Players[pnum].plrlevel && pnum != MyPlayerId) { + ClrPlrPath(Players[pnum]); + Players[pnum]._pSpell = SPL_NOVA; + Players[pnum]._pSplType = RSPLTYPE_INVALID; + Players[pnum]._pSplFrom = 3; + Players[pnum].destAction = ACTION_SPELL; + Players[pnum].destParam1 = p->x; + Players[pnum].destParam2 = p->y; } return sizeof(*p); @@ -1745,7 +1745,7 @@ DWORD OnNova(TCmd *pCmd, int pnum) DWORD OnSetShield(TCmd *pCmd, int pnum) { if (gbBufferMsgs != 1) - plr[pnum].pManaShield = true; + Players[pnum].pManaShield = true; return sizeof(*pCmd); } @@ -1753,14 +1753,14 @@ DWORD OnSetShield(TCmd *pCmd, int pnum) DWORD OnRemoveShield(TCmd *pCmd, int pnum) { if (gbBufferMsgs != 1) - plr[pnum].pManaShield = false; + Players[pnum].pManaShield = false; return sizeof(*pCmd); } DWORD OnReflect(TCmd *pCmd, int pnum) { - if (gbBufferMsgs != 1 && pnum != myplr && currlevel == plr[pnum].plrlevel) { + if (gbBufferMsgs != 1 && pnum != MyPlayerId && currlevel == Players[pnum].plrlevel) { for (int i = 0; i < nummissiles; i++) { int mx = missileactive[i]; if (missile[mx]._mitype == MIS_REFLECT && missile[mx]._misource == pnum) { @@ -1997,10 +1997,10 @@ void DeltaSaveLevel() return; for (int i = 0; i < MAX_PLRS; i++) { - if (i != myplr) - ResetPlayerGFX(plr[i]); + if (i != MyPlayerId) + ResetPlayerGFX(Players[i]); } - plr[myplr]._pLvlVisited[currlevel] = true; + Players[MyPlayerId]._pLvlVisited[currlevel] = true; DeltaLeaveSync(currlevel); } @@ -2157,9 +2157,9 @@ void NetSendCmd(bool bHiPri, _cmd_id bCmd) cmd.bCmd = bCmd; if (bHiPri) - NetSendHiPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else - NetSendLoPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); } void NetSendCmdGolem(BYTE mx, BYTE my, Direction dir, BYTE menemy, int hp, BYTE cl) @@ -2173,7 +2173,7 @@ void NetSendCmdGolem(BYTE mx, BYTE my, Direction dir, BYTE menemy, int hp, BYTE cmd._menemy = menemy; cmd._mhitpoints = hp; cmd._currlevel = cl; - NetSendLoPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); } void NetSendCmdLoc(int playerId, bool bHiPri, _cmd_id bCmd, Point position) @@ -2198,9 +2198,9 @@ void NetSendCmdLocParam1(bool bHiPri, _cmd_id bCmd, Point position, uint16_t wPa cmd.y = position.y; cmd.wParam1 = wParam1; if (bHiPri) - NetSendHiPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else - NetSendLoPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); } void NetSendCmdLocParam2(bool bHiPri, _cmd_id bCmd, Point position, uint16_t wParam1, uint16_t wParam2) @@ -2213,9 +2213,9 @@ void NetSendCmdLocParam2(bool bHiPri, _cmd_id bCmd, Point position, uint16_t wPa cmd.wParam1 = wParam1; cmd.wParam2 = wParam2; if (bHiPri) - NetSendHiPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else - NetSendLoPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); } void NetSendCmdLocParam3(bool bHiPri, _cmd_id bCmd, Point position, uint16_t wParam1, uint16_t wParam2, uint16_t wParam3) @@ -2229,9 +2229,9 @@ void NetSendCmdLocParam3(bool bHiPri, _cmd_id bCmd, Point position, uint16_t wPa cmd.wParam2 = wParam2; cmd.wParam3 = wParam3; if (bHiPri) - NetSendHiPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else - NetSendLoPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); } void NetSendCmdParam1(bool bHiPri, _cmd_id bCmd, uint16_t wParam1) @@ -2241,9 +2241,9 @@ void NetSendCmdParam1(bool bHiPri, _cmd_id bCmd, uint16_t wParam1) cmd.bCmd = bCmd; cmd.wParam1 = wParam1; if (bHiPri) - NetSendHiPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else - NetSendLoPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); } void NetSendCmdParam2(bool bHiPri, _cmd_id bCmd, uint16_t wParam1, uint16_t wParam2) @@ -2254,9 +2254,9 @@ void NetSendCmdParam2(bool bHiPri, _cmd_id bCmd, uint16_t wParam1, uint16_t wPar cmd.wParam1 = wParam1; cmd.wParam2 = wParam2; if (bHiPri) - NetSendHiPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else - NetSendLoPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); } void NetSendCmdParam3(bool bHiPri, _cmd_id bCmd, uint16_t wParam1, uint16_t wParam2, uint16_t wParam3) @@ -2268,9 +2268,9 @@ void NetSendCmdParam3(bool bHiPri, _cmd_id bCmd, uint16_t wParam1, uint16_t wPar cmd.wParam2 = wParam2; cmd.wParam3 = wParam3; if (bHiPri) - NetSendHiPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else - NetSendLoPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); } void NetSendCmdQuest(bool bHiPri, BYTE q) @@ -2283,9 +2283,9 @@ void NetSendCmdQuest(bool bHiPri, BYTE q) cmd.qlog = quests[q]._qlog ? 1 : 0; cmd.qvar1 = quests[q]._qvar1; if (bHiPri) - NetSendHiPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else - NetSendLoPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); } void NetSendCmdGItem(bool bHiPri, _cmd_id bCmd, BYTE mast, BYTE pnum, BYTE ii) @@ -2331,9 +2331,9 @@ void NetSendCmdGItem(bool bHiPri, _cmd_id bCmd, BYTE mast, BYTE pnum, BYTE ii) } if (bHiPri) - NetSendHiPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else - NetSendLoPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); } void NetSendCmdPItem(bool bHiPri, _cmd_id bCmd, Point position) @@ -2343,40 +2343,40 @@ void NetSendCmdPItem(bool bHiPri, _cmd_id bCmd, Point position) cmd.bCmd = bCmd; cmd.x = position.x; cmd.y = position.y; - cmd.wIndx = plr[myplr].HoldItem.IDidx; - - if (plr[myplr].HoldItem.IDidx == IDI_EAR) { - cmd.wCI = plr[myplr].HoldItem._iName[8] | (plr[myplr].HoldItem._iName[7] << 8); - cmd.dwSeed = plr[myplr].HoldItem._iName[12] | ((plr[myplr].HoldItem._iName[11] | ((plr[myplr].HoldItem._iName[10] | (plr[myplr].HoldItem._iName[9] << 8)) << 8)) << 8); - cmd.bId = plr[myplr].HoldItem._iName[13]; - cmd.bDur = plr[myplr].HoldItem._iName[14]; - cmd.bMDur = plr[myplr].HoldItem._iName[15]; - cmd.bCh = plr[myplr].HoldItem._iName[16]; - cmd.bMCh = plr[myplr].HoldItem._iName[17]; - cmd.wValue = plr[myplr].HoldItem._ivalue | (plr[myplr].HoldItem._iName[18] << 8) | ((plr[myplr].HoldItem._iCurs - ICURS_EAR_SORCERER) << 6); - cmd.dwBuff = plr[myplr].HoldItem._iName[22] | ((plr[myplr].HoldItem._iName[21] | ((plr[myplr].HoldItem._iName[20] | (plr[myplr].HoldItem._iName[19] << 8)) << 8)) << 8); + cmd.wIndx = Players[MyPlayerId].HoldItem.IDidx; + + if (Players[MyPlayerId].HoldItem.IDidx == IDI_EAR) { + cmd.wCI = Players[MyPlayerId].HoldItem._iName[8] | (Players[MyPlayerId].HoldItem._iName[7] << 8); + cmd.dwSeed = Players[MyPlayerId].HoldItem._iName[12] | ((Players[MyPlayerId].HoldItem._iName[11] | ((Players[MyPlayerId].HoldItem._iName[10] | (Players[MyPlayerId].HoldItem._iName[9] << 8)) << 8)) << 8); + cmd.bId = Players[MyPlayerId].HoldItem._iName[13]; + cmd.bDur = Players[MyPlayerId].HoldItem._iName[14]; + cmd.bMDur = Players[MyPlayerId].HoldItem._iName[15]; + cmd.bCh = Players[MyPlayerId].HoldItem._iName[16]; + cmd.bMCh = Players[MyPlayerId].HoldItem._iName[17]; + cmd.wValue = Players[MyPlayerId].HoldItem._ivalue | (Players[MyPlayerId].HoldItem._iName[18] << 8) | ((Players[MyPlayerId].HoldItem._iCurs - ICURS_EAR_SORCERER) << 6); + cmd.dwBuff = Players[MyPlayerId].HoldItem._iName[22] | ((Players[MyPlayerId].HoldItem._iName[21] | ((Players[MyPlayerId].HoldItem._iName[20] | (Players[MyPlayerId].HoldItem._iName[19] << 8)) << 8)) << 8); } else { - cmd.wCI = plr[myplr].HoldItem._iCreateInfo; - cmd.dwSeed = plr[myplr].HoldItem._iSeed; - cmd.bId = plr[myplr].HoldItem._iIdentified ? 1 : 0; - cmd.bDur = plr[myplr].HoldItem._iDurability; - cmd.bMDur = plr[myplr].HoldItem._iMaxDur; - cmd.bCh = plr[myplr].HoldItem._iCharges; - cmd.bMCh = plr[myplr].HoldItem._iMaxCharges; - cmd.wValue = plr[myplr].HoldItem._ivalue; - cmd.wToHit = plr[myplr].HoldItem._iPLToHit; - cmd.wMaxDam = plr[myplr].HoldItem._iMaxDam; - cmd.bMinStr = plr[myplr].HoldItem._iMinStr; - cmd.bMinMag = plr[myplr].HoldItem._iMinMag; - cmd.bMinDex = plr[myplr].HoldItem._iMinDex; - cmd.bAC = plr[myplr].HoldItem._iAC; - cmd.dwBuff = plr[myplr].HoldItem.dwBuff; + cmd.wCI = Players[MyPlayerId].HoldItem._iCreateInfo; + cmd.dwSeed = Players[MyPlayerId].HoldItem._iSeed; + cmd.bId = Players[MyPlayerId].HoldItem._iIdentified ? 1 : 0; + cmd.bDur = Players[MyPlayerId].HoldItem._iDurability; + cmd.bMDur = Players[MyPlayerId].HoldItem._iMaxDur; + cmd.bCh = Players[MyPlayerId].HoldItem._iCharges; + cmd.bMCh = Players[MyPlayerId].HoldItem._iMaxCharges; + cmd.wValue = Players[MyPlayerId].HoldItem._ivalue; + cmd.wToHit = Players[MyPlayerId].HoldItem._iPLToHit; + cmd.wMaxDam = Players[MyPlayerId].HoldItem._iMaxDam; + cmd.bMinStr = Players[MyPlayerId].HoldItem._iMinStr; + cmd.bMinMag = Players[MyPlayerId].HoldItem._iMinMag; + cmd.bMinDex = Players[MyPlayerId].HoldItem._iMinDex; + cmd.bAC = Players[MyPlayerId].HoldItem._iAC; + cmd.dwBuff = Players[MyPlayerId].HoldItem.dwBuff; } if (bHiPri) - NetSendHiPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else - NetSendLoPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); } void NetSendCmdChItem(bool bHiPri, BYTE bLoc) @@ -2385,16 +2385,16 @@ void NetSendCmdChItem(bool bHiPri, BYTE bLoc) cmd.bCmd = CMD_CHANGEPLRITEMS; cmd.bLoc = bLoc; - cmd.wIndx = plr[myplr].HoldItem.IDidx; - cmd.wCI = plr[myplr].HoldItem._iCreateInfo; - cmd.dwSeed = plr[myplr].HoldItem._iSeed; - cmd.bId = plr[myplr].HoldItem._iIdentified ? 1 : 0; - cmd.dwBuff = plr[myplr].HoldItem.dwBuff; + cmd.wIndx = Players[MyPlayerId].HoldItem.IDidx; + cmd.wCI = Players[MyPlayerId].HoldItem._iCreateInfo; + cmd.dwSeed = Players[MyPlayerId].HoldItem._iSeed; + cmd.bId = Players[MyPlayerId].HoldItem._iIdentified ? 1 : 0; + cmd.dwBuff = Players[MyPlayerId].HoldItem.dwBuff; if (bHiPri) - NetSendHiPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else - NetSendLoPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); } void NetSendCmdDelItem(bool bHiPri, BYTE bLoc) @@ -2404,9 +2404,9 @@ void NetSendCmdDelItem(bool bHiPri, BYTE bLoc) cmd.bLoc = bLoc; cmd.bCmd = CMD_DELPLRITEMS; if (bHiPri) - NetSendHiPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else - NetSendLoPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); } void NetSendCmdDItem(bool bHiPri, int ii) @@ -2447,9 +2447,9 @@ void NetSendCmdDItem(bool bHiPri, int ii) } if (bHiPri) - NetSendHiPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else - NetSendLoPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); } void NetSendCmdDamage(bool bHiPri, uint8_t bPlr, DWORD dwDam) @@ -2460,9 +2460,9 @@ void NetSendCmdDamage(bool bHiPri, uint8_t bPlr, DWORD dwDam) cmd.bPlr = bPlr; cmd.dwDam = dwDam; if (bHiPri) - NetSendHiPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else - NetSendLoPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); } void NetSendCmdMonDmg(bool bHiPri, uint16_t wMon, DWORD dwDam) @@ -2473,9 +2473,9 @@ void NetSendCmdMonDmg(bool bHiPri, uint16_t wMon, DWORD dwDam) cmd.wMon = wMon; cmd.dwDam = dwDam; if (bHiPri) - NetSendHiPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); else - NetSendLoPri(myplr, (byte *)&cmd, sizeof(cmd)); + NetSendLoPri(MyPlayerId, (byte *)&cmd, sizeof(cmd)); } void NetSendCmdString(uint32_t pmask, const char *pszStr) diff --git a/Source/multi.cpp b/Source/multi.cpp index 4f8bd59b7..eb70d82f6 100644 --- a/Source/multi.cpp +++ b/Source/multi.cpp @@ -113,18 +113,18 @@ byte *ReceivePacket(TBuffer *pBuf, byte *body, size_t *size) void NetReceivePlayerData(TPkt *pkt) { - const Point target = plr[myplr].GetTargetPosition(); + const Point target = Players[MyPlayerId].GetTargetPosition(); pkt->hdr.wCheck = LoadBE32("\0\0ip"); - pkt->hdr.px = plr[myplr].position.tile.x; - pkt->hdr.py = plr[myplr].position.tile.y; + pkt->hdr.px = Players[MyPlayerId].position.tile.x; + pkt->hdr.py = Players[MyPlayerId].position.tile.y; pkt->hdr.targx = target.x; pkt->hdr.targy = target.y; - pkt->hdr.php = plr[myplr]._pHitPoints; - pkt->hdr.pmhp = plr[myplr]._pMaxHP; - pkt->hdr.bstr = plr[myplr]._pBaseStr; - pkt->hdr.bmag = plr[myplr]._pBaseMag; - pkt->hdr.bdex = plr[myplr]._pBaseDex; + pkt->hdr.php = Players[MyPlayerId]._pHitPoints; + pkt->hdr.pmhp = Players[MyPlayerId]._pMaxHP; + pkt->hdr.bstr = Players[MyPlayerId]._pBaseStr; + pkt->hdr.bmag = Players[MyPlayerId]._pBaseMag; + pkt->hdr.bdex = Players[MyPlayerId]._pBaseDex; } void SendPacket(int playerId, void *packet, BYTE dwSize) @@ -155,9 +155,9 @@ void HandleTurnUpperBit(int pnum) break; } - if (myplr == i) { + if (MyPlayerId == i) { sgbSendDeltaTbl[pnum] = true; - } else if (myplr == pnum) { + } else if (MyPlayerId == pnum) { gbDeltaSender = i; } } @@ -177,7 +177,7 @@ void ParseTurn(int pnum, uint32_t turn) void PlayerLeftMsg(int pnum, bool left) { - if (!plr[pnum].plractive) { + if (!Players[pnum].plractive) { return; } @@ -197,11 +197,11 @@ void PlayerLeftMsg(int pnum, bool left) pszFmt = _("Player '{:s}' dropped due to timeout"); break; } - EventPlrMsg(fmt::format(pszFmt, plr[pnum]._pName).c_str()); + EventPlrMsg(fmt::format(pszFmt, Players[pnum]._pName).c_str()); } - plr[pnum].plractive = false; - plr[pnum]._pName[0] = '\0'; - ResetPlayerGFX(plr[pnum]); + Players[pnum].plractive = false; + Players[pnum]._pName[0] = '\0'; + ResetPlayerGFX(Players[pnum]); gbActivePlayers--; } @@ -279,10 +279,10 @@ void BeginTimeout() } else if (bGroupPlayers == bGroupCount) { if (nLowestPlayer != nLowestActive) { gbGameDestroyed = true; - } else if (nLowestActive == myplr) { + } else if (nLowestActive == MyPlayerId) { CheckDropPlayer(); } - } else if (nLowestActive == myplr) { + } else if (nLowestActive == MyPlayerId) { CheckDropPlayer(); } } @@ -305,7 +305,7 @@ void ProcessTmsgs() TPkt pkt; while ((cnt = tmsg_get((byte *)&pkt)) != 0) { - HandleAllPackets(myplr, (byte *)&pkt, cnt); + HandleAllPackets(MyPlayerId, (byte *)&pkt, cnt); } } @@ -313,7 +313,7 @@ void SendPlayerInfo(int pnum, _cmd_id cmd) { PkPlayerStruct pkplr; - PackPlayer(&pkplr, plr[myplr], true); + PackPlayer(&pkplr, Players[MyPlayerId], true); dthread_send_delta(pnum, cmd, (byte *)&pkplr, sizeof(pkplr)); } @@ -354,15 +354,15 @@ void SetupLocalPositions() } #endif - x += plrxoff[myplr]; - y += plryoff[myplr]; - plr[myplr].position.tile = { x, y }; - plr[myplr].position.future = { x, y }; - plr[myplr].plrlevel = currlevel; - plr[myplr]._pLvlChanging = true; - plr[myplr].pLvlLoad = 0; - plr[myplr]._pmode = PM_NEWLVL; - plr[myplr].destAction = ACTION_NONE; + x += plrxoff[MyPlayerId]; + y += plryoff[MyPlayerId]; + Players[MyPlayerId].position.tile = { x, y }; + Players[MyPlayerId].position.future = { x, y }; + Players[MyPlayerId].plrlevel = currlevel; + Players[MyPlayerId]._pLvlChanging = true; + Players[MyPlayerId].pLvlLoad = 0; + Players[MyPlayerId]._pmode = PM_NEWLVL; + Players[MyPlayerId].destAction = ACTION_NONE; } void HandleEvents(_SNETEVENT *pEvt) @@ -426,7 +426,7 @@ bool InitSingle(GameData *gameData) app_fatal("SNetCreateGame1:\n%s", SDL_GetError()); } - myplr = 0; + MyPlayerId = 0; gbIsMultiplayer = false; return true; @@ -451,10 +451,10 @@ bool InitMulti(GameData *gameData) if ((DWORD)playerId >= MAX_PLRS) { return false; } - myplr = playerId; + MyPlayerId = playerId; gbIsMultiplayer = true; - pfile_read_player_from_save(gszHero, myplr); + pfile_read_player_from_save(gszHero, MyPlayerId); return true; } @@ -565,12 +565,12 @@ bool multi_handle_delta() sgbTimeout = false; if (received) { if (!gbShouldValidatePackage) { - NetSendHiPri(myplr, nullptr, 0); + NetSendHiPri(MyPlayerId, nullptr, 0); gbShouldValidatePackage = false; } else { gbShouldValidatePackage = false; if (sgHiPriBuf.dwNextWriteOffset != 0) - NetSendHiPri(myplr, nullptr, 0); + NetSendHiPri(MyPlayerId, nullptr, 0); } } MonsterSeeds(); @@ -597,36 +597,36 @@ void multi_process_network_packets() continue; if (pkt->wLen != dwMsgSize) continue; - plr[dwID].position.last = { pkt->px, pkt->py }; - if (dwID != myplr) { + Players[dwID].position.last = { pkt->px, pkt->py }; + if (dwID != MyPlayerId) { assert(gbBufferMsgs != 2); - plr[dwID]._pHitPoints = pkt->php; - plr[dwID]._pMaxHP = pkt->pmhp; + Players[dwID]._pHitPoints = pkt->php; + Players[dwID]._pMaxHP = pkt->pmhp; bool cond = gbBufferMsgs == 1; - plr[dwID]._pBaseStr = pkt->bstr; - plr[dwID]._pBaseMag = pkt->bmag; - plr[dwID]._pBaseDex = pkt->bdex; - if (!cond && plr[dwID].plractive && plr[dwID]._pHitPoints != 0) { - if (currlevel == plr[dwID].plrlevel && !plr[dwID]._pLvlChanging) { - int dx = abs(plr[dwID].position.tile.x - pkt->px); - int dy = abs(plr[dwID].position.tile.y - pkt->py); + Players[dwID]._pBaseStr = pkt->bstr; + Players[dwID]._pBaseMag = pkt->bmag; + Players[dwID]._pBaseDex = pkt->bdex; + if (!cond && Players[dwID].plractive && Players[dwID]._pHitPoints != 0) { + if (currlevel == Players[dwID].plrlevel && !Players[dwID]._pLvlChanging) { + int dx = abs(Players[dwID].position.tile.x - pkt->px); + int dy = abs(Players[dwID].position.tile.y - pkt->py); if ((dx > 3 || dy > 3) && dPlayer[pkt->px][pkt->py] == 0) { FixPlrWalkTags(dwID); - plr[dwID].position.old = plr[dwID].position.tile; + Players[dwID].position.old = Players[dwID].position.tile; FixPlrWalkTags(dwID); - plr[dwID].position.tile = { pkt->px, pkt->py }; - plr[dwID].position.future = { pkt->px, pkt->py }; - dPlayer[plr[dwID].position.tile.x][plr[dwID].position.tile.y] = dwID + 1; + Players[dwID].position.tile = { pkt->px, pkt->py }; + Players[dwID].position.future = { pkt->px, pkt->py }; + dPlayer[Players[dwID].position.tile.x][Players[dwID].position.tile.y] = dwID + 1; } - dx = abs(plr[dwID].position.future.x - plr[dwID].position.tile.x); - dy = abs(plr[dwID].position.future.y - plr[dwID].position.tile.y); + dx = abs(Players[dwID].position.future.x - Players[dwID].position.tile.x); + dy = abs(Players[dwID].position.future.y - Players[dwID].position.tile.y); if (dx > 1 || dy > 1) { - plr[dwID].position.future = plr[dwID].position.tile; + Players[dwID].position.future = Players[dwID].position.tile; } MakePlrPath(dwID, { pkt->targx, pkt->targy }, true); } else { - plr[dwID].position.tile = { pkt->px, pkt->py }; - plr[dwID].position.future = { pkt->px, pkt->py }; + Players[dwID].position.tile = { pkt->px, pkt->py }; + Players[dwID].position.future = { pkt->px, pkt->py }; } } } @@ -638,7 +638,7 @@ void multi_process_network_packets() void multi_send_zero_packet(int pnum, _cmd_id bCmd, byte *pbSrc, DWORD dwLen) { - assert(pnum != myplr); + assert(pnum != MyPlayerId); assert(pbSrc); assert(dwLen <= 0x0ffff); @@ -717,7 +717,7 @@ bool NetInit(bool bSinglePlayer) memset(sgbPlayerLeftGameTbl, 0, sizeof(sgbPlayerLeftGameTbl)); memset(sgdwPlayerLeftReasonTbl, 0, sizeof(sgdwPlayerLeftReasonTbl)); memset(sgbSendDeltaTbl, 0, sizeof(sgbSendDeltaTbl)); - for (auto &player : plr) { + for (auto &player : Players) { player.Reset(); } memset(sgwPackPlrOffsetTbl, 0, sizeof(sgwPackPlrOffsetTbl)); @@ -737,22 +737,22 @@ bool NetInit(bool bSinglePlayer) BufferInit(&sgLoPriBuf); gbShouldValidatePackage = false; sync_init(); - nthread_start(sgbPlayerTurnBitTbl[myplr]); + nthread_start(sgbPlayerTurnBitTbl[MyPlayerId]); dthread_start(); tmsg_start(); sgdwGameLoops = 0; sgbSentThisCycle = 0; - gbDeltaSender = myplr; + gbDeltaSender = MyPlayerId; gbSomebodyWonGameKludge = false; nthread_send_and_recv_turn(0, 0); SetupLocalPositions(); SendPlayerInfo(-2, CMD_SEND_PLRINFO); - ResetPlayerGFX(plr[myplr]); - plr[myplr].plractive = true; + ResetPlayerGFX(Players[MyPlayerId]); + Players[MyPlayerId].plractive = true; gbActivePlayers = 1; - if (!sgbPlayerTurnBitTbl[myplr] || msg_wait_resync()) + if (!sgbPlayerTurnBitTbl[MyPlayerId] || msg_wait_resync()) break; NetClose(); gbSelectProvider = false; @@ -776,11 +776,11 @@ void recv_plrinfo(int pnum, TCmdPlrInfoHdr *p, bool recv) { const char *szEvent; - if (myplr == pnum) { + if (MyPlayerId == pnum) { return; } assert((DWORD)pnum < MAX_PLRS); - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (sgwPackPlrOffsetTbl[pnum] != p->wOffset) { sgwPackPlrOffsetTbl[pnum] = 0; diff --git a/Source/objects.cpp b/Source/objects.cpp index bb7531964..f4b645dca 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -1041,7 +1041,7 @@ void InitObjects() AddL2Torches(); if (QuestStatus(Q_BLIND)) { _speech_id spId; - switch (plr[myplr]._pClass) { + switch (Players[MyPlayerId]._pClass) { case HeroClass::Warrior: spId = TEXT_BLINDING; break; @@ -1067,7 +1067,7 @@ void InitObjects() } if (QuestStatus(Q_BLOOD)) { _speech_id spId; - switch (plr[myplr]._pClass) { + switch (Players[MyPlayerId]._pClass) { case HeroClass::Warrior: spId = TEXT_BLOODY; break; @@ -1100,7 +1100,7 @@ void InitObjects() if (leveltype == DTYPE_HELL) { if (QuestStatus(Q_WARLORD)) { _speech_id spId; - switch (plr[myplr]._pClass) { + switch (Players[MyPlayerId]._pClass) { case HeroClass::Warrior: spId = TEXT_BLOODWAR; break; @@ -1625,7 +1625,7 @@ void AddCryptObject(int i, int a2) if (a2 > 5) { switch (a2) { case 6: - switch (plr[myplr]._pClass) { + switch (Players[MyPlayerId]._pClass) { case HeroClass::Warrior: case HeroClass::Barbarian: object[i]._oVar2 = TEXT_BOOKA; @@ -1645,7 +1645,7 @@ void AddCryptObject(int i, int a2) } break; case 7: - switch (plr[myplr]._pClass) { + switch (Players[MyPlayerId]._pClass) { case HeroClass::Warrior: case HeroClass::Barbarian: object[i]._oVar2 = TEXT_BOOKB; @@ -1665,7 +1665,7 @@ void AddCryptObject(int i, int a2) } break; case 8: - switch (plr[myplr]._pClass) { + switch (Players[MyPlayerId]._pClass) { case HeroClass::Warrior: case HeroClass::Barbarian: object[i]._oVar2 = TEXT_BOOKC; @@ -1855,10 +1855,10 @@ void Obj_Light(int i, int lr) int tr = lr + 10; if (!DisableLighting) { for (int p = 0; p < MAX_PLRS && !turnon; p++) { - if (plr[p].plractive) { - if (currlevel == plr[p].plrlevel) { - int dx = abs(plr[p].position.tile.x - ox); - int dy = abs(plr[p].position.tile.y - oy); + if (Players[p].plractive) { + if (currlevel == Players[p].plrlevel) { + int dx = abs(Players[p].position.tile.x - ox); + int dy = abs(Players[p].position.tile.y - oy); if (dx < tr && dy < tr) turnon = true; } @@ -1878,7 +1878,7 @@ void Obj_Light(int i, int lr) void Obj_Circle(int i) { - if (plr[myplr].position.tile != object[i].position) { + if (Players[MyPlayerId].position.tile != object[i].position) { if (object[i]._otype == OBJ_MCIRCLE1) object[i]._oAnimFrame = 1; if (object[i]._otype == OBJ_MCIRCLE2) @@ -1905,11 +1905,11 @@ void Obj_Circle(int i) ObjChangeMapResync(object[i]._oVar1, object[i]._oVar2, object[i]._oVar3, object[i]._oVar4); if (quests[Q_BETRAYER]._qactive == QUEST_ACTIVE && quests[Q_BETRAYER]._qvar1 <= 4) // BUGFIX stepping on the circle again will break the quest state (fixed) quests[Q_BETRAYER]._qvar1 = 4; - AddMissile(plr[myplr].position.tile, { 35, 46 }, plr[myplr]._pdir, MIS_RNDTELEPORT, TARGET_MONSTERS, myplr, 0, 0); + AddMissile(Players[MyPlayerId].position.tile, { 35, 46 }, Players[MyPlayerId]._pdir, MIS_RNDTELEPORT, TARGET_MONSTERS, MyPlayerId, 0, 0); track_repeat_walk(false); sgbMouseDown = CLICK_NONE; - ClrPlrPath(plr[myplr]); - StartStand(myplr, DIR_S); + ClrPlrPath(Players[MyPlayerId]); + StartStand(MyPlayerId, DIR_S); } } @@ -2064,19 +2064,19 @@ void Obj_BCrossDamage(int i) { int damage[4] = { 6, 8, 10, 12 }; - if (plr[myplr]._pmode == PM_DEATH) + if (Players[MyPlayerId]._pmode == PM_DEATH) return; - int8_t fireResist = plr[myplr]._pFireResist; + int8_t fireResist = Players[MyPlayerId]._pFireResist; if (fireResist > 0) damage[leveltype - 1] -= fireResist * damage[leveltype - 1] / 100; - if (plr[myplr].position.tile.x != object[i].position.x || plr[myplr].position.tile.y != object[i].position.y - 1) + if (Players[MyPlayerId].position.tile.x != object[i].position.x || Players[MyPlayerId].position.tile.y != object[i].position.y - 1) return; - ApplyPlrDamage(myplr, 0, 0, damage[leveltype - 1]); - if (plr[myplr]._pHitPoints >> 6 > 0) { - plr[myplr].Say(HeroSpeech::Argh); + ApplyPlrDamage(MyPlayerId, 0, 0, damage[leveltype - 1]); + if (Players[MyPlayerId]._pHitPoints >> 6 > 0) { + Players[MyPlayerId].Say(HeroSpeech::Argh); } } @@ -2349,7 +2349,7 @@ void DoorSet(int oi, int dx, int dy) void RedoPlayerVision() { - for (auto &player : plr) { + for (auto &player : Players) { if (player.plractive && currlevel == player.plrlevel) { ChangeVisionXY(player._pvid, player.position.tile); } @@ -2382,7 +2382,7 @@ void OperateL1RDoor(int pnum, int oi, bool sendflag) } if (door._oVar4 == 0) { - if (pnum == myplr && sendflag) + if (pnum == MyPlayerId && sendflag) NetSendCmdParam1(true, CMD_OPENDOOR, oi); if (currlevel < 21) { if (!deltaload) @@ -2416,7 +2416,7 @@ void OperateL1RDoor(int pnum, int oi, bool sendflag) PlaySfxLoc(IS_CRCLOS, door.position); } if (!deltaload && IsDoorClear(door.position)) { - if (pnum == myplr && sendflag) + if (pnum == MyPlayerId && sendflag) NetSendCmdParam1(true, CMD_CLOSEDOOR, oi); door._oVar4 = 0; door._oSelFlag = 3; @@ -2460,7 +2460,7 @@ void OperateL1LDoor(int pnum, int oi, bool sendflag) } if (door._oVar4 == 0) { - if (pnum == myplr && sendflag) + if (pnum == MyPlayerId && sendflag) NetSendCmdParam1(true, CMD_OPENDOOR, oi); if (currlevel < 21) { if (!deltaload) @@ -2497,7 +2497,7 @@ void OperateL1LDoor(int pnum, int oi, bool sendflag) PlaySfxLoc(IS_CRCLOS, door.position); } if (IsDoorClear(door.position)) { - if (pnum == myplr && sendflag) + if (pnum == MyPlayerId && sendflag) NetSendCmdParam1(true, CMD_CLOSEDOOR, oi); door._oVar4 = 0; door._oSelFlag = 3; @@ -2541,7 +2541,7 @@ void OperateL2RDoor(int pnum, int oi, bool sendflag) } if (door._oVar4 == 0) { - if (pnum == myplr && sendflag) + if (pnum == MyPlayerId && sendflag) NetSendCmdParam1(true, CMD_OPENDOOR, oi); if (!deltaload) PlaySfxLoc(IS_DOOROPEN, door.position); @@ -2559,7 +2559,7 @@ void OperateL2RDoor(int pnum, int oi, bool sendflag) PlaySfxLoc(IS_DOORCLOS, door.position); if (IsDoorClear(door.position)) { - if (pnum == myplr && sendflag) + if (pnum == MyPlayerId && sendflag) NetSendCmdParam1(true, CMD_CLOSEDOOR, oi); door._oVar4 = 0; door._oSelFlag = 3; @@ -2584,7 +2584,7 @@ void OperateL2LDoor(int pnum, int oi, bool sendflag) } if (door._oVar4 == 0) { - if (pnum == myplr && sendflag) + if (pnum == MyPlayerId && sendflag) NetSendCmdParam1(true, CMD_OPENDOOR, oi); if (!deltaload) PlaySfxLoc(IS_DOOROPEN, door.position); @@ -2602,7 +2602,7 @@ void OperateL2LDoor(int pnum, int oi, bool sendflag) PlaySfxLoc(IS_DOORCLOS, door.position); if (IsDoorClear(door.position)) { - if (pnum == myplr && sendflag) + if (pnum == MyPlayerId && sendflag) NetSendCmdParam1(true, CMD_CLOSEDOOR, oi); door._oVar4 = 0; door._oSelFlag = 3; @@ -2627,7 +2627,7 @@ void OperateL3RDoor(int pnum, int oi, bool sendflag) } if (door._oVar4 == 0) { - if (pnum == myplr && sendflag) + if (pnum == MyPlayerId && sendflag) NetSendCmdParam1(true, CMD_OPENDOOR, oi); if (!deltaload) PlaySfxLoc(IS_DOOROPEN, door.position); @@ -2644,7 +2644,7 @@ void OperateL3RDoor(int pnum, int oi, bool sendflag) PlaySfxLoc(IS_DOORCLOS, door.position); if (IsDoorClear(door.position)) { - if (pnum == myplr && sendflag) + if (pnum == MyPlayerId && sendflag) NetSendCmdParam1(true, CMD_CLOSEDOOR, oi); door._oVar4 = 0; door._oSelFlag = 3; @@ -2668,7 +2668,7 @@ void OperateL3LDoor(int pnum, int oi, bool sendflag) } if (door._oVar4 == 0) { - if (pnum == myplr && sendflag) + if (pnum == MyPlayerId && sendflag) NetSendCmdParam1(true, CMD_OPENDOOR, oi); if (!deltaload) PlaySfxLoc(IS_DOOROPEN, door.position); @@ -2685,7 +2685,7 @@ void OperateL3LDoor(int pnum, int oi, bool sendflag) PlaySfxLoc(IS_DOORCLOS, door.position); if (IsDoorClear(door.position)) { - if (pnum == myplr && sendflag) + if (pnum == MyPlayerId && sendflag) NetSendCmdParam1(true, CMD_CLOSEDOOR, oi); door._oVar4 = 0; door._oSelFlag = 3; @@ -2716,25 +2716,25 @@ void MonstCheckDoors(int m) int dpx = abs(object[oi].position.x - mx); int dpy = abs(object[oi].position.y - my); if (dpx == 1 && dpy <= 1 && object[oi]._otype == OBJ_L1LDOOR) - OperateL1LDoor(myplr, oi, true); + OperateL1LDoor(MyPlayerId, oi, true); if (dpx <= 1 && dpy == 1 && object[oi]._otype == OBJ_L1RDOOR) - OperateL1RDoor(myplr, oi, true); + OperateL1RDoor(MyPlayerId, oi, true); } if ((object[oi]._otype == OBJ_L2LDOOR || object[oi]._otype == OBJ_L2RDOOR) && object[oi]._oVar4 == 0) { int dpx = abs(object[oi].position.x - mx); int dpy = abs(object[oi].position.y - my); if (dpx == 1 && dpy <= 1 && object[oi]._otype == OBJ_L2LDOOR) - OperateL2LDoor(myplr, oi, true); + OperateL2LDoor(MyPlayerId, oi, true); if (dpx <= 1 && dpy == 1 && object[oi]._otype == OBJ_L2RDOOR) - OperateL2RDoor(myplr, oi, true); + OperateL2RDoor(MyPlayerId, oi, true); } if ((object[oi]._otype == OBJ_L3LDOOR || object[oi]._otype == OBJ_L3RDOOR) && object[oi]._oVar4 == 0) { int dpx = abs(object[oi].position.x - mx); int dpy = abs(object[oi].position.y - my); if (dpx == 1 && dpy <= 1 && object[oi]._otype == OBJ_L3RDOOR) - OperateL3RDoor(myplr, oi, true); + OperateL3RDoor(MyPlayerId, oi, true); if (dpx <= 1 && dpy == 1 && object[oi]._otype == OBJ_L3LDOOR) - OperateL3LDoor(myplr, oi, true); + OperateL3LDoor(MyPlayerId, oi, true); } } } @@ -2776,8 +2776,8 @@ void ObjChangeMapResync(int x1, int y1, int x2, int y2) void OperateL1Door(int pnum, int i, bool sendflag) { - int dpx = abs(object[i].position.x - plr[pnum].position.tile.x); - int dpy = abs(object[i].position.y - plr[pnum].position.tile.y); + int dpx = abs(object[i].position.x - Players[pnum].position.tile.x); + int dpy = abs(object[i].position.y - Players[pnum].position.tile.y); if (dpx == 1 && dpy <= 1 && object[i]._otype == OBJ_L1LDOOR) OperateL1LDoor(pnum, i, sendflag); if (dpx <= 1 && dpy == 1 && object[i]._otype == OBJ_L1RDOOR) @@ -2813,7 +2813,7 @@ void OperateLever(int pnum, int i) } if (mapflag) ObjChangeMap(object[i]._oVar1, object[i]._oVar2, object[i]._oVar3, object[i]._oVar4); - if (pnum == myplr) + if (pnum == MyPlayerId) NetSendCmdParam1(false, CMD_OPERATEOBJ, i); } @@ -2844,7 +2844,7 @@ void OperateBook(int pnum, int i) } if (doAddMissile) { object[dObject[35][36] - 1]._oVar5++; - AddMissile(plr[pnum].position.tile, { dx, dy }, plr[pnum]._pdir, MIS_RNDTELEPORT, TARGET_MONSTERS, pnum, 0, 0); + AddMissile(Players[pnum].position.tile, { dx, dy }, Players[pnum]._pdir, MIS_RNDTELEPORT, TARGET_MONSTERS, pnum, 0, 0); missileAdded = true; doAddMissile = false; } @@ -2858,17 +2858,17 @@ void OperateBook(int pnum, int i) return; if (setlvlnum == SL_BONECHAMB) { - plr[pnum]._pMemSpells |= GetSpellBitmask(SPL_GUARDIAN); - if (plr[pnum]._pSplLvl[SPL_GUARDIAN] < MAX_SPELL_LEVEL) - plr[pnum]._pSplLvl[SPL_GUARDIAN]++; + Players[pnum]._pMemSpells |= GetSpellBitmask(SPL_GUARDIAN); + if (Players[pnum]._pSplLvl[SPL_GUARDIAN] < MAX_SPELL_LEVEL) + Players[pnum]._pSplLvl[SPL_GUARDIAN]++; quests[Q_SCHAMB]._qactive = QUEST_DONE; if (!deltaload) PlaySfxLoc(IS_QUESTDN, object[i].position); InitDiabloMsg(EMSG_BONECHAMB); AddMissile( - plr[pnum].position.tile, + Players[pnum].position.tile, object[i].position + Displacement { -2, -4 }, - plr[pnum]._pdir, + Players[pnum]._pdir, MIS_GUARDIAN, TARGET_MONSTERS, pnum, @@ -2924,7 +2924,7 @@ void OperateBookLever(int pnum, int i) } object[i]._oAnimFrame = object[i]._oVar6; InitQTextMsg(object[i]._oVar7); - if (pnum == myplr) + if (pnum == MyPlayerId) NetSendCmdParam1(false, CMD_OPERATEOBJ, i); } } @@ -2947,7 +2947,7 @@ void OperateSChambBk(int i) } _speech_id textdef; - switch (plr[myplr]._pClass) { + switch (Players[MyPlayerId]._pClass) { case HeroClass::Warrior: textdef = TEXT_BONER; break; @@ -2998,7 +2998,7 @@ void OperateChest(int pnum, int i, bool sendmsg) } } if (object[i]._oTrapFlag && object[i]._otype >= OBJ_TCHEST1 && object[i]._otype <= OBJ_TCHEST3) { - Direction mdir = GetDirection(object[i].position, plr[pnum].position.tile); + Direction mdir = GetDirection(object[i].position, Players[pnum].position.tile); int mtype; switch (object[i]._oVar4) { case 0: @@ -3022,10 +3022,10 @@ void OperateChest(int pnum, int i, bool sendmsg) default: mtype = MIS_ARROW; } - AddMissile(object[i].position, plr[pnum].position.tile, mdir, mtype, TARGET_PLAYERS, -1, 0, 0); + AddMissile(object[i].position, Players[pnum].position.tile, mdir, mtype, TARGET_PLAYERS, -1, 0, 0); object[i]._oTrapFlag = false; } - if (pnum == myplr) + if (pnum == MyPlayerId) NetSendCmdParam2(false, CMD_PLROPOBJ, pnum, i); } @@ -3036,8 +3036,8 @@ void OperateMushPatch(int pnum, int i) } if (quests[Q_MUSHROOM]._qactive != QUEST_ACTIVE) { - if (!deltaload && pnum == myplr) { - plr[myplr].Say(HeroSpeech::ICantUseThisYet); + if (!deltaload && pnum == MyPlayerId) { + Players[MyPlayerId].Say(HeroSpeech::ICantUseThisYet); } return; } @@ -3062,8 +3062,8 @@ void OperateInnSignChest(int pnum, int i) } if (quests[Q_LTBANNER]._qvar1 != 2) { - if (!deltaload && pnum == myplr) { - plr[myplr].Say(HeroSpeech::ICantOpenThisYet); + if (!deltaload && pnum == MyPlayerId) { + Players[MyPlayerId].Say(HeroSpeech::ICantOpenThisYet); } return; } @@ -3090,21 +3090,21 @@ void OperateSlainHero(int pnum, int i) if (deltaload) { return; } - if (plr[pnum]._pClass == HeroClass::Warrior) { + if (Players[pnum]._pClass == HeroClass::Warrior) { CreateMagicArmor(object[i].position, ITYPE_HARMOR, ICURS_BREAST_PLATE, false, true); - } else if (plr[pnum]._pClass == HeroClass::Rogue) { + } else if (Players[pnum]._pClass == HeroClass::Rogue) { CreateMagicWeapon(object[i].position, ITYPE_BOW, ICURS_LONG_WAR_BOW, false, true); - } else if (plr[pnum]._pClass == HeroClass::Sorcerer) { + } else if (Players[pnum]._pClass == HeroClass::Sorcerer) { CreateSpellBook(object[i].position, SPL_LIGHTNING, false, true); - } else if (plr[pnum]._pClass == HeroClass::Monk) { + } else if (Players[pnum]._pClass == HeroClass::Monk) { CreateMagicWeapon(object[i].position, ITYPE_STAFF, ICURS_WAR_STAFF, false, true); - } else if (plr[pnum]._pClass == HeroClass::Bard) { + } else if (Players[pnum]._pClass == HeroClass::Bard) { CreateMagicWeapon(object[i].position, ITYPE_SWORD, ICURS_BASTARD_SWORD, false, true); - } else if (plr[pnum]._pClass == HeroClass::Barbarian) { + } else if (Players[pnum]._pClass == HeroClass::Barbarian) { CreateMagicWeapon(object[i].position, ITYPE_AXE, ICURS_BATTLE_AXE, false, true); } - plr[myplr].Say(HeroSpeech::RestInPeaceMyFriend); - if (pnum == myplr) + Players[MyPlayerId].Say(HeroSpeech::RestInPeaceMyFriend); + if (pnum == MyPlayerId) NetSendCmdParam1(false, CMD_OPERATEOBJ, i); } @@ -3156,14 +3156,14 @@ void OperateSarc(int pnum, int i, bool sendmsg) CreateRndItem(object[i].position, false, sendmsg, false); if (object[i]._oVar1 >= 8) SpawnSkeleton(object[i]._oVar2, object[i].position); - if (pnum == myplr) + if (pnum == MyPlayerId) NetSendCmdParam1(false, CMD_OPERATEOBJ, i); } void OperateL2Door(int pnum, int i, bool sendflag) { - int dpx = abs(object[i].position.x - plr[pnum].position.tile.x); - int dpy = abs(object[i].position.y - plr[pnum].position.tile.y); + int dpx = abs(object[i].position.x - Players[pnum].position.tile.x); + int dpy = abs(object[i].position.y - Players[pnum].position.tile.y); if (dpx == 1 && dpy <= 1 && object[i]._otype == OBJ_L2LDOOR) OperateL2LDoor(pnum, i, sendflag); if (dpx <= 1 && dpy == 1 && object[i]._otype == OBJ_L2RDOOR) @@ -3172,8 +3172,8 @@ void OperateL2Door(int pnum, int i, bool sendflag) void OperateL3Door(int pnum, int i, bool sendflag) { - int dpx = abs(object[i].position.x - plr[pnum].position.tile.x); - int dpy = abs(object[i].position.y - plr[pnum].position.tile.y); + int dpx = abs(object[i].position.x - Players[pnum].position.tile.x); + int dpy = abs(object[i].position.y - Players[pnum].position.tile.y); if (dpx == 1 && dpy <= 1 && object[i]._otype == OBJ_L3RDOOR) OperateL3RDoor(pnum, i, sendflag); if (dpx <= 1 && dpy == 1 && object[i]._otype == OBJ_L3LDOOR) @@ -3186,7 +3186,7 @@ void OperatePedistal(int pnum, int i) return; } - if (object[i]._oVar6 == 3 || !plr[pnum].TryRemoveInvItemById(IDI_BLDSTONE)) { + if (object[i]._oVar6 == 3 || !Players[pnum].TryRemoveInvItemById(IDI_BLDSTONE)) { return; } @@ -3216,12 +3216,12 @@ void OperatePedistal(int pnum, int i) void TryDisarm(int pnum, int i) { - if (pnum == myplr) + if (pnum == MyPlayerId) NewCursor(CURSOR_HAND); if (!object[i]._oTrapFlag) { return; } - int trapdisper = 2 * plr[pnum]._pDexterity - 5 * currlevel; + int trapdisper = 2 * Players[pnum]._pDexterity - 5 * currlevel; if (GenerateRnd(100) > trapdisper) { return; } @@ -3257,7 +3257,7 @@ bool OperateShrineMysterious(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; ModifyPlrStr(pnum, -1); @@ -3280,7 +3280,7 @@ bool OperateShrineMysterious(int pnum) break; } - CheckStats(plr[pnum]); + CheckStats(Players[pnum]); InitDiabloMsg(EMSG_SHRINE_MYSTERIOUS); @@ -3291,16 +3291,16 @@ bool OperateShrineHidden(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; int cnt = 0; - for (const auto &item : plr[pnum].InvBody) { + for (const auto &item : Players[pnum].InvBody) { if (!item.isEmpty()) cnt++; } if (cnt > 0) { - for (auto &item : plr[pnum].InvBody) { + for (auto &item : Players[pnum].InvBody) { if (!item.isEmpty() && item._iMaxDur != DUR_INDESTRUCTIBLE && item._iMaxDur != 0) { @@ -3312,7 +3312,7 @@ bool OperateShrineHidden(int pnum) } while (true) { cnt = 0; - for (auto &item : plr[pnum].InvBody) { + for (auto &item : Players[pnum].InvBody) { if (!item.isEmpty() && item._iMaxDur != DUR_INDESTRUCTIBLE && item._iMaxDur != 0) { cnt++; } @@ -3320,15 +3320,15 @@ bool OperateShrineHidden(int pnum) if (cnt == 0) break; int r = GenerateRnd(NUM_INVLOC); - if (plr[pnum].InvBody[r].isEmpty() || plr[pnum].InvBody[r]._iMaxDur == DUR_INDESTRUCTIBLE || plr[pnum].InvBody[r]._iMaxDur == 0) + if (Players[pnum].InvBody[r].isEmpty() || Players[pnum].InvBody[r]._iMaxDur == DUR_INDESTRUCTIBLE || Players[pnum].InvBody[r]._iMaxDur == 0) continue; - plr[pnum].InvBody[r]._iDurability -= 20; - plr[pnum].InvBody[r]._iMaxDur -= 20; - if (plr[pnum].InvBody[r]._iDurability <= 0) - plr[pnum].InvBody[r]._iDurability = 1; - if (plr[pnum].InvBody[r]._iMaxDur <= 0) - plr[pnum].InvBody[r]._iMaxDur = 1; + Players[pnum].InvBody[r]._iDurability -= 20; + Players[pnum].InvBody[r]._iMaxDur -= 20; + if (Players[pnum].InvBody[r]._iDurability <= 0) + Players[pnum].InvBody[r]._iDurability = 1; + if (Players[pnum].InvBody[r]._iMaxDur <= 0) + Players[pnum].InvBody[r]._iMaxDur = 1; break; } } @@ -3342,49 +3342,49 @@ bool OperateShrineGloomy(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return true; - if (!plr[pnum].InvBody[INVLOC_HEAD].isEmpty()) - plr[pnum].InvBody[INVLOC_HEAD]._iAC += 2; - if (!plr[pnum].InvBody[INVLOC_CHEST].isEmpty()) - plr[pnum].InvBody[INVLOC_CHEST]._iAC += 2; - if (!plr[pnum].InvBody[INVLOC_HAND_LEFT].isEmpty()) { - if (plr[pnum].InvBody[INVLOC_HAND_LEFT]._itype == ITYPE_SHIELD) { - plr[pnum].InvBody[INVLOC_HAND_LEFT]._iAC += 2; + if (!Players[pnum].InvBody[INVLOC_HEAD].isEmpty()) + Players[pnum].InvBody[INVLOC_HEAD]._iAC += 2; + if (!Players[pnum].InvBody[INVLOC_CHEST].isEmpty()) + Players[pnum].InvBody[INVLOC_CHEST]._iAC += 2; + if (!Players[pnum].InvBody[INVLOC_HAND_LEFT].isEmpty()) { + if (Players[pnum].InvBody[INVLOC_HAND_LEFT]._itype == ITYPE_SHIELD) { + Players[pnum].InvBody[INVLOC_HAND_LEFT]._iAC += 2; } else { - plr[pnum].InvBody[INVLOC_HAND_LEFT]._iMaxDam--; - if (plr[pnum].InvBody[INVLOC_HAND_LEFT]._iMaxDam < plr[pnum].InvBody[INVLOC_HAND_LEFT]._iMinDam) - plr[pnum].InvBody[INVLOC_HAND_LEFT]._iMaxDam = plr[pnum].InvBody[INVLOC_HAND_LEFT]._iMinDam; + Players[pnum].InvBody[INVLOC_HAND_LEFT]._iMaxDam--; + if (Players[pnum].InvBody[INVLOC_HAND_LEFT]._iMaxDam < Players[pnum].InvBody[INVLOC_HAND_LEFT]._iMinDam) + Players[pnum].InvBody[INVLOC_HAND_LEFT]._iMaxDam = Players[pnum].InvBody[INVLOC_HAND_LEFT]._iMinDam; } } - if (!plr[pnum].InvBody[INVLOC_HAND_RIGHT].isEmpty()) { - if (plr[pnum].InvBody[INVLOC_HAND_RIGHT]._itype == ITYPE_SHIELD) { - plr[pnum].InvBody[INVLOC_HAND_RIGHT]._iAC += 2; + if (!Players[pnum].InvBody[INVLOC_HAND_RIGHT].isEmpty()) { + if (Players[pnum].InvBody[INVLOC_HAND_RIGHT]._itype == ITYPE_SHIELD) { + Players[pnum].InvBody[INVLOC_HAND_RIGHT]._iAC += 2; } else { - plr[pnum].InvBody[INVLOC_HAND_RIGHT]._iMaxDam--; - if (plr[pnum].InvBody[INVLOC_HAND_RIGHT]._iMaxDam < plr[pnum].InvBody[INVLOC_HAND_RIGHT]._iMinDam) - plr[pnum].InvBody[INVLOC_HAND_RIGHT]._iMaxDam = plr[pnum].InvBody[INVLOC_HAND_RIGHT]._iMinDam; + Players[pnum].InvBody[INVLOC_HAND_RIGHT]._iMaxDam--; + if (Players[pnum].InvBody[INVLOC_HAND_RIGHT]._iMaxDam < Players[pnum].InvBody[INVLOC_HAND_RIGHT]._iMinDam) + Players[pnum].InvBody[INVLOC_HAND_RIGHT]._iMaxDam = Players[pnum].InvBody[INVLOC_HAND_RIGHT]._iMinDam; } } - for (int j = 0; j < plr[pnum]._pNumInv; j++) { - switch (plr[pnum].InvList[j]._itype) { + for (int j = 0; j < Players[pnum]._pNumInv; j++) { + switch (Players[pnum].InvList[j]._itype) { case ITYPE_SWORD: case ITYPE_AXE: case ITYPE_BOW: case ITYPE_MACE: case ITYPE_STAFF: - plr[pnum].InvList[j]._iMaxDam--; - if (plr[pnum].InvList[j]._iMaxDam < plr[pnum].InvList[j]._iMinDam) - plr[pnum].InvList[j]._iMaxDam = plr[pnum].InvList[j]._iMinDam; + Players[pnum].InvList[j]._iMaxDam--; + if (Players[pnum].InvList[j]._iMaxDam < Players[pnum].InvList[j]._iMinDam) + Players[pnum].InvList[j]._iMaxDam = Players[pnum].InvList[j]._iMinDam; break; case ITYPE_SHIELD: case ITYPE_HELM: case ITYPE_LARMOR: case ITYPE_MARMOR: case ITYPE_HARMOR: - plr[pnum].InvList[j]._iAC += 2; + Players[pnum].InvList[j]._iAC += 2; break; default: break; @@ -3400,22 +3400,22 @@ bool OperateShrineWeird(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return true; - if (!plr[pnum].InvBody[INVLOC_HAND_LEFT].isEmpty() && plr[pnum].InvBody[INVLOC_HAND_LEFT]._itype != ITYPE_SHIELD) - plr[pnum].InvBody[INVLOC_HAND_LEFT]._iMaxDam++; - if (!plr[pnum].InvBody[INVLOC_HAND_RIGHT].isEmpty() && plr[pnum].InvBody[INVLOC_HAND_RIGHT]._itype != ITYPE_SHIELD) - plr[pnum].InvBody[INVLOC_HAND_RIGHT]._iMaxDam++; + if (!Players[pnum].InvBody[INVLOC_HAND_LEFT].isEmpty() && Players[pnum].InvBody[INVLOC_HAND_LEFT]._itype != ITYPE_SHIELD) + Players[pnum].InvBody[INVLOC_HAND_LEFT]._iMaxDam++; + if (!Players[pnum].InvBody[INVLOC_HAND_RIGHT].isEmpty() && Players[pnum].InvBody[INVLOC_HAND_RIGHT]._itype != ITYPE_SHIELD) + Players[pnum].InvBody[INVLOC_HAND_RIGHT]._iMaxDam++; - for (int j = 0; j < plr[pnum]._pNumInv; j++) { - switch (plr[pnum].InvList[j]._itype) { + for (int j = 0; j < Players[pnum]._pNumInv; j++) { + switch (Players[pnum].InvList[j]._itype) { case ITYPE_SWORD: case ITYPE_AXE: case ITYPE_BOW: case ITYPE_MACE: case ITYPE_STAFF: - plr[pnum].InvList[j]._iMaxDam++; + Players[pnum].InvList[j]._iMaxDam++; break; default: break; @@ -3433,16 +3433,16 @@ bool OperateShrineMagical(int pnum) return false; AddMissile( - plr[pnum].position.tile, - plr[pnum].position.tile, - plr[pnum]._pdir, + Players[pnum].position.tile, + Players[pnum].position.tile, + Players[pnum]._pdir, MIS_MANASHIELD, -1, pnum, 0, 2 * leveltype); - if (pnum != myplr) + if (pnum != MyPlayerId) return false; InitDiabloMsg(EMSG_SHRINE_MAGICAL); @@ -3454,18 +3454,18 @@ bool OperateShrineStone(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return true; - for (auto &item : plr[pnum].InvBody) { + for (auto &item : Players[pnum].InvBody) { if (item._itype == ITYPE_STAFF) item._iCharges = item._iMaxCharges; } - for (int j = 0; j < plr[pnum]._pNumInv; j++) { - if (plr[pnum].InvList[j]._itype == ITYPE_STAFF) - plr[pnum].InvList[j]._iCharges = plr[pnum].InvList[j]._iMaxCharges; + for (int j = 0; j < Players[pnum]._pNumInv; j++) { + if (Players[pnum].InvList[j]._itype == ITYPE_STAFF) + Players[pnum].InvList[j]._iCharges = Players[pnum].InvList[j]._iMaxCharges; } - for (auto &item : plr[pnum].SpdList) { + for (auto &item : Players[pnum].SpdList) { if (item._itype == ITYPE_STAFF) item._iCharges = item._iMaxCharges; // belt items don't have charges? } @@ -3479,14 +3479,14 @@ bool OperateShrineReligious(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return true; - for (auto &item : plr[pnum].InvBody) + for (auto &item : Players[pnum].InvBody) item._iDurability = item._iMaxDur; - for (int j = 0; j < plr[pnum]._pNumInv; j++) - plr[pnum].InvList[j]._iDurability = plr[pnum].InvList[j]._iMaxDur; - for (auto &item : plr[pnum].SpdList) + for (int j = 0; j < Players[pnum]._pNumInv; j++) + Players[pnum].InvList[j]._iDurability = Players[pnum].InvList[j]._iMaxDur; + for (auto &item : Players[pnum].SpdList) item._iDurability = item._iMaxDur; // belt items don't have durability? InitDiabloMsg(EMSG_SHRINE_RELIGIOUS); @@ -3498,13 +3498,13 @@ bool OperateShrineEnchanted(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; int cnt = 0; uint64_t spell = 1; int maxSpells = gbIsHellfire ? MAX_SPELLS : 37; - uint64_t spells = plr[pnum]._pMemSpells; + uint64_t spells = Players[pnum]._pMemSpells; for (int j = 0; j < maxSpells; j++) { if ((spell & spells) != 0) cnt++; @@ -3513,20 +3513,20 @@ bool OperateShrineEnchanted(int pnum) if (cnt > 1) { spell = 1; for (int j = SPL_FIREBOLT; j < maxSpells; j++) { // BUGFIX: < MAX_SPELLS, there is no spell with MAX_SPELLS index (fixed) - if ((plr[pnum]._pMemSpells & spell) != 0) { - if (plr[pnum]._pSplLvl[j] < MAX_SPELL_LEVEL) - plr[pnum]._pSplLvl[j]++; + if ((Players[pnum]._pMemSpells & spell) != 0) { + if (Players[pnum]._pSplLvl[j] < MAX_SPELL_LEVEL) + Players[pnum]._pSplLvl[j]++; } spell *= 2; } int r; do { r = GenerateRnd(maxSpells); - } while ((plr[pnum]._pMemSpells & GetSpellBitmask(r + 1)) == 0); - if (plr[pnum]._pSplLvl[r + 1] >= 2) - plr[pnum]._pSplLvl[r + 1] -= 2; + } while ((Players[pnum]._pMemSpells & GetSpellBitmask(r + 1)) == 0); + if (Players[pnum]._pSplLvl[r + 1] >= 2) + Players[pnum]._pSplLvl[r + 1] -= 2; else - plr[pnum]._pSplLvl[r + 1] = 0; + Players[pnum]._pSplLvl[r + 1] = 0; } InitDiabloMsg(EMSG_SHRINE_ENCHANTED); @@ -3549,7 +3549,7 @@ bool OperateShrineThaumaturgic(int pnum) if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return true; InitDiabloMsg(EMSG_SHRINE_THAUMATURGIC); @@ -3561,30 +3561,30 @@ bool OperateShrineFascinating(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; - plr[pnum]._pMemSpells |= GetSpellBitmask(SPL_FIREBOLT); + Players[pnum]._pMemSpells |= GetSpellBitmask(SPL_FIREBOLT); - if (plr[pnum]._pSplLvl[SPL_FIREBOLT] < MAX_SPELL_LEVEL) - plr[pnum]._pSplLvl[SPL_FIREBOLT]++; - if (plr[pnum]._pSplLvl[SPL_FIREBOLT] < MAX_SPELL_LEVEL) - plr[pnum]._pSplLvl[SPL_FIREBOLT]++; + if (Players[pnum]._pSplLvl[SPL_FIREBOLT] < MAX_SPELL_LEVEL) + Players[pnum]._pSplLvl[SPL_FIREBOLT]++; + if (Players[pnum]._pSplLvl[SPL_FIREBOLT] < MAX_SPELL_LEVEL) + Players[pnum]._pSplLvl[SPL_FIREBOLT]++; - DWORD t = plr[pnum]._pMaxManaBase / 10; - int v1 = plr[pnum]._pMana - plr[pnum]._pManaBase; - int v2 = plr[pnum]._pMaxMana - plr[pnum]._pMaxManaBase; - plr[pnum]._pManaBase -= t; - plr[pnum]._pMana -= t; - plr[pnum]._pMaxMana -= t; - plr[pnum]._pMaxManaBase -= t; - if (plr[pnum]._pMana >> 6 <= 0) { - plr[pnum]._pMana = v1; - plr[pnum]._pManaBase = 0; + DWORD t = Players[pnum]._pMaxManaBase / 10; + int v1 = Players[pnum]._pMana - Players[pnum]._pManaBase; + int v2 = Players[pnum]._pMaxMana - Players[pnum]._pMaxManaBase; + Players[pnum]._pManaBase -= t; + Players[pnum]._pMana -= t; + Players[pnum]._pMaxMana -= t; + Players[pnum]._pMaxManaBase -= t; + if (Players[pnum]._pMana >> 6 <= 0) { + Players[pnum]._pMana = v1; + Players[pnum]._pManaBase = 0; } - if (plr[pnum]._pMaxMana >> 6 <= 0) { - plr[pnum]._pMaxMana = v2; - plr[pnum]._pMaxManaBase = 0; + if (Players[pnum]._pMaxMana >> 6 <= 0) { + Players[pnum]._pMaxMana = v2; + Players[pnum]._pMaxManaBase = 0; } InitDiabloMsg(EMSG_SHRINE_FASCINATING); @@ -3598,20 +3598,20 @@ bool OperateShrineCryptic(int pnum) return false; AddMissile( - plr[pnum].position.tile, - plr[pnum].position.tile, - plr[pnum]._pdir, + Players[pnum].position.tile, + Players[pnum].position.tile, + Players[pnum]._pdir, MIS_NOVA, -1, pnum, 0, 2 * leveltype); - if (pnum != myplr) + if (pnum != MyPlayerId) return false; - plr[pnum]._pMana = plr[pnum]._pMaxMana; - plr[pnum]._pManaBase = plr[pnum]._pMaxManaBase; + Players[pnum]._pMana = Players[pnum]._pMaxMana; + Players[pnum]._pManaBase = Players[pnum]._pMaxManaBase; InitDiabloMsg(EMSG_SHRINE_CRYPTIC); @@ -3623,42 +3623,42 @@ bool OperateShrineEldritch(int pnum) /// BUGFIX: change `plr[pnum].HoldItem` to use a temporary buffer to prevent deleting item in hand if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return true; - for (int j = 0; j < plr[pnum]._pNumInv; j++) { - if (plr[pnum].InvList[j]._itype == ITYPE_MISC) { - if (plr[pnum].InvList[j]._iMiscId == IMISC_HEAL - || plr[pnum].InvList[j]._iMiscId == IMISC_MANA) { - SetPlrHandItem(&plr[pnum].HoldItem, ItemMiscIdIdx(IMISC_REJUV)); - GetPlrHandSeed(&plr[pnum].HoldItem); - plr[pnum].HoldItem._iStatFlag = true; - plr[pnum].InvList[j] = plr[pnum].HoldItem; + for (int j = 0; j < Players[pnum]._pNumInv; j++) { + if (Players[pnum].InvList[j]._itype == ITYPE_MISC) { + if (Players[pnum].InvList[j]._iMiscId == IMISC_HEAL + || Players[pnum].InvList[j]._iMiscId == IMISC_MANA) { + SetPlrHandItem(&Players[pnum].HoldItem, ItemMiscIdIdx(IMISC_REJUV)); + GetPlrHandSeed(&Players[pnum].HoldItem); + Players[pnum].HoldItem._iStatFlag = true; + Players[pnum].InvList[j] = Players[pnum].HoldItem; } - if (plr[pnum].InvList[j]._iMiscId == IMISC_FULLHEAL - || plr[pnum].InvList[j]._iMiscId == IMISC_FULLMANA) { - SetPlrHandItem(&plr[pnum].HoldItem, ItemMiscIdIdx(IMISC_FULLREJUV)); - GetPlrHandSeed(&plr[pnum].HoldItem); - plr[pnum].HoldItem._iStatFlag = true; - plr[pnum].InvList[j] = plr[pnum].HoldItem; + if (Players[pnum].InvList[j]._iMiscId == IMISC_FULLHEAL + || Players[pnum].InvList[j]._iMiscId == IMISC_FULLMANA) { + SetPlrHandItem(&Players[pnum].HoldItem, ItemMiscIdIdx(IMISC_FULLREJUV)); + GetPlrHandSeed(&Players[pnum].HoldItem); + Players[pnum].HoldItem._iStatFlag = true; + Players[pnum].InvList[j] = Players[pnum].HoldItem; } } } - for (auto &item : plr[pnum].SpdList) { + for (auto &item : Players[pnum].SpdList) { if (item._itype == ITYPE_MISC) { if (item._iMiscId == IMISC_HEAL || item._iMiscId == IMISC_MANA) { - SetPlrHandItem(&plr[pnum].HoldItem, ItemMiscIdIdx(IMISC_REJUV)); - GetPlrHandSeed(&plr[pnum].HoldItem); - plr[pnum].HoldItem._iStatFlag = true; - item = plr[pnum].HoldItem; + SetPlrHandItem(&Players[pnum].HoldItem, ItemMiscIdIdx(IMISC_REJUV)); + GetPlrHandSeed(&Players[pnum].HoldItem); + Players[pnum].HoldItem._iStatFlag = true; + item = Players[pnum].HoldItem; } if (item._iMiscId == IMISC_FULLHEAL || item._iMiscId == IMISC_FULLMANA) { - SetPlrHandItem(&plr[pnum].HoldItem, ItemMiscIdIdx(IMISC_FULLREJUV)); - GetPlrHandSeed(&plr[pnum].HoldItem); - plr[pnum].HoldItem._iStatFlag = true; - item = plr[pnum].HoldItem; + SetPlrHandItem(&Players[pnum].HoldItem, ItemMiscIdIdx(IMISC_FULLREJUV)); + GetPlrHandSeed(&Players[pnum].HoldItem); + Players[pnum].HoldItem._iStatFlag = true; + item = Players[pnum].HoldItem; } } } @@ -3672,11 +3672,11 @@ bool OperateShrineEerie(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; ModifyPlrMag(pnum, 2); - CheckStats(plr[pnum]); + CheckStats(Players[pnum]); InitDiabloMsg(EMSG_SHRINE_EERIE); @@ -3687,7 +3687,7 @@ bool OperateShrineDivine(int pnum, int x, int y) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; if (currlevel < 4) { @@ -3698,10 +3698,10 @@ bool OperateShrineDivine(int pnum, int x, int y) CreateTypeItem({ x, y }, false, ITYPE_MISC, IMISC_FULLREJUV, false, true); } - plr[pnum]._pMana = plr[pnum]._pMaxMana; - plr[pnum]._pManaBase = plr[pnum]._pMaxManaBase; - plr[pnum]._pHitPoints = plr[pnum]._pMaxHP; - plr[pnum]._pHPBase = plr[pnum]._pMaxHPBase; + Players[pnum]._pMana = Players[pnum]._pMaxMana; + Players[pnum]._pManaBase = Players[pnum]._pMaxManaBase; + Players[pnum]._pHitPoints = Players[pnum]._pMaxHP; + Players[pnum]._pHPBase = Players[pnum]._pMaxHPBase; InitDiabloMsg(EMSG_SHRINE_DIVINE); @@ -3726,9 +3726,9 @@ bool OperateShrineHoly(int pnum) break; } while (nSolidTable[lv] || dObject[xx][yy] != 0 || dMonster[xx][yy] != 0); - AddMissile(plr[pnum].position.tile, { xx, yy }, plr[pnum]._pdir, MIS_RNDTELEPORT, -1, pnum, 0, 2 * leveltype); + AddMissile(Players[pnum].position.tile, { xx, yy }, Players[pnum]._pdir, MIS_RNDTELEPORT, -1, pnum, 0, 2 * leveltype); - if (pnum != myplr) + if (pnum != MyPlayerId) return false; InitDiabloMsg(EMSG_SHRINE_HOLY); @@ -3738,30 +3738,30 @@ bool OperateShrineHoly(int pnum) bool OperateShrineSacred(int pnum) { - if (deltaload || pnum != myplr) + if (deltaload || pnum != MyPlayerId) return false; - plr[pnum]._pMemSpells |= GetSpellBitmask(SPL_CBOLT); + Players[pnum]._pMemSpells |= GetSpellBitmask(SPL_CBOLT); - if (plr[pnum]._pSplLvl[SPL_CBOLT] < MAX_SPELL_LEVEL) - plr[pnum]._pSplLvl[SPL_CBOLT]++; - if (plr[pnum]._pSplLvl[SPL_CBOLT] < MAX_SPELL_LEVEL) - plr[pnum]._pSplLvl[SPL_CBOLT]++; + if (Players[pnum]._pSplLvl[SPL_CBOLT] < MAX_SPELL_LEVEL) + Players[pnum]._pSplLvl[SPL_CBOLT]++; + if (Players[pnum]._pSplLvl[SPL_CBOLT] < MAX_SPELL_LEVEL) + Players[pnum]._pSplLvl[SPL_CBOLT]++; - uint32_t t = plr[pnum]._pMaxManaBase / 10; - int v1 = plr[pnum]._pMana - plr[pnum]._pManaBase; - int v2 = plr[pnum]._pMaxMana - plr[pnum]._pMaxManaBase; - plr[pnum]._pManaBase -= t; - plr[pnum]._pMana -= t; - plr[pnum]._pMaxMana -= t; - plr[pnum]._pMaxManaBase -= t; - if (plr[pnum]._pMana >> 6 <= 0) { - plr[pnum]._pMana = v1; - plr[pnum]._pManaBase = 0; + uint32_t t = Players[pnum]._pMaxManaBase / 10; + int v1 = Players[pnum]._pMana - Players[pnum]._pManaBase; + int v2 = Players[pnum]._pMaxMana - Players[pnum]._pMaxManaBase; + Players[pnum]._pManaBase -= t; + Players[pnum]._pMana -= t; + Players[pnum]._pMaxMana -= t; + Players[pnum]._pMaxManaBase -= t; + if (Players[pnum]._pMana >> 6 <= 0) { + Players[pnum]._pMana = v1; + Players[pnum]._pManaBase = 0; } - if (plr[pnum]._pMaxMana >> 6 <= 0) { - plr[pnum]._pMaxMana = v2; - plr[pnum]._pMaxManaBase = 0; + if (Players[pnum]._pMaxMana >> 6 <= 0) { + Players[pnum]._pMaxMana = v2; + Players[pnum]._pMaxManaBase = 0; } InitDiabloMsg(EMSG_SHRINE_SACRED); @@ -3773,20 +3773,20 @@ bool OperateShrineSpiritual(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; - for (int8_t &gridItem : plr[pnum].InvGrid) { + for (int8_t &gridItem : Players[pnum].InvGrid) { if (gridItem == 0) { int r = 5 * leveltype + GenerateRnd(10 * leveltype); - DWORD t = plr[pnum]._pNumInv; // check - plr[pnum].InvList[t] = golditem; - plr[pnum].InvList[t]._iSeed = AdvanceRndSeed(); - plr[pnum]._pNumInv++; - gridItem = plr[pnum]._pNumInv; - plr[pnum].InvList[t]._ivalue = r; - plr[pnum]._pGold += r; - SetPlrHandGoldCurs(&plr[pnum].InvList[t]); + DWORD t = Players[pnum]._pNumInv; // check + Players[pnum].InvList[t] = golditem; + Players[pnum].InvList[t]._iSeed = AdvanceRndSeed(); + Players[pnum]._pNumInv++; + gridItem = Players[pnum]._pNumInv; + Players[pnum].InvList[t]._ivalue = r; + Players[pnum]._pGold += r; + SetPlrHandGoldCurs(&Players[pnum].InvList[t]); } } @@ -3800,15 +3800,15 @@ bool OperateShrineSpooky(int pnum) if (deltaload) return false; - if (pnum == myplr) { + if (pnum == MyPlayerId) { InitDiabloMsg(EMSG_SHRINE_SPOOKY1); return true; } - plr[myplr]._pHitPoints = plr[myplr]._pMaxHP; - plr[myplr]._pHPBase = plr[myplr]._pMaxHPBase; - plr[myplr]._pMana = plr[myplr]._pMaxMana; - plr[myplr]._pManaBase = plr[myplr]._pMaxManaBase; + Players[MyPlayerId]._pHitPoints = Players[MyPlayerId]._pMaxHP; + Players[MyPlayerId]._pHPBase = Players[MyPlayerId]._pMaxHPBase; + Players[MyPlayerId]._pMana = Players[MyPlayerId]._pMaxMana; + Players[MyPlayerId]._pManaBase = Players[MyPlayerId]._pMaxManaBase; InitDiabloMsg(EMSG_SHRINE_SPOOKY2); @@ -3819,13 +3819,13 @@ bool OperateShrineAbandoned(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; ModifyPlrDex(pnum, 2); - CheckStats(plr[pnum]); + CheckStats(Players[pnum]); - if (pnum != myplr) + if (pnum != MyPlayerId) return true; InitDiabloMsg(EMSG_SHRINE_ABANDONED); @@ -3837,13 +3837,13 @@ bool OperateShrineCreepy(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; ModifyPlrStr(pnum, 2); - CheckStats(plr[pnum]); + CheckStats(Players[pnum]); - if (pnum != myplr) + if (pnum != MyPlayerId) return true; InitDiabloMsg(EMSG_SHRINE_CREEPY); @@ -3855,13 +3855,13 @@ bool OperateShrineQuiet(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; ModifyPlrVit(pnum, 2); - CheckStats(plr[pnum]); + CheckStats(Players[pnum]); - if (pnum != myplr) + if (pnum != MyPlayerId) return true; InitDiabloMsg(EMSG_SHRINE_QUIET); @@ -3873,7 +3873,7 @@ bool OperateShrineSecluded(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return true; std::fill(&AutomapView[0][0], &AutomapView[DMAXX - 1][DMAXX - 1], true); @@ -3887,29 +3887,29 @@ bool OperateShrineOrnate(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; - plr[pnum]._pMemSpells |= GetSpellBitmask(SPL_HBOLT); - if (plr[pnum]._pSplLvl[SPL_HBOLT] < MAX_SPELL_LEVEL) - plr[pnum]._pSplLvl[SPL_HBOLT]++; - if (plr[pnum]._pSplLvl[SPL_HBOLT] < MAX_SPELL_LEVEL) - plr[pnum]._pSplLvl[SPL_HBOLT]++; + Players[pnum]._pMemSpells |= GetSpellBitmask(SPL_HBOLT); + if (Players[pnum]._pSplLvl[SPL_HBOLT] < MAX_SPELL_LEVEL) + Players[pnum]._pSplLvl[SPL_HBOLT]++; + if (Players[pnum]._pSplLvl[SPL_HBOLT] < MAX_SPELL_LEVEL) + Players[pnum]._pSplLvl[SPL_HBOLT]++; - uint32_t t = plr[pnum]._pMaxManaBase / 10; - int v1 = plr[pnum]._pMana - plr[pnum]._pManaBase; - int v2 = plr[pnum]._pMaxMana - plr[pnum]._pMaxManaBase; - plr[pnum]._pManaBase -= t; - plr[pnum]._pMana -= t; - plr[pnum]._pMaxMana -= t; - plr[pnum]._pMaxManaBase -= t; - if (plr[pnum]._pMana >> 6 <= 0) { - plr[pnum]._pMana = v1; - plr[pnum]._pManaBase = 0; + uint32_t t = Players[pnum]._pMaxManaBase / 10; + int v1 = Players[pnum]._pMana - Players[pnum]._pManaBase; + int v2 = Players[pnum]._pMaxMana - Players[pnum]._pMaxManaBase; + Players[pnum]._pManaBase -= t; + Players[pnum]._pMana -= t; + Players[pnum]._pMaxMana -= t; + Players[pnum]._pMaxManaBase -= t; + if (Players[pnum]._pMana >> 6 <= 0) { + Players[pnum]._pMana = v1; + Players[pnum]._pManaBase = 0; } - if (plr[pnum]._pMaxMana >> 6 <= 0) { - plr[pnum]._pMaxMana = v2; - plr[pnum]._pMaxManaBase = 0; + if (Players[pnum]._pMaxMana >> 6 <= 0) { + Players[pnum]._pMaxMana = v2; + Players[pnum]._pMaxManaBase = 0; } InitDiabloMsg(EMSG_SHRINE_ORNATE); @@ -3921,18 +3921,18 @@ bool OperateShrineGlimmering(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; - for (auto &item : plr[pnum].InvBody) { + for (auto &item : Players[pnum].InvBody) { if (item._iMagical != ITEM_QUALITY_NORMAL && !item._iIdentified) item._iIdentified = true; } - for (int j = 0; j < plr[pnum]._pNumInv; j++) { - if (plr[pnum].InvList[j]._iMagical != ITEM_QUALITY_NORMAL && !plr[pnum].InvList[j]._iIdentified) - plr[pnum].InvList[j]._iIdentified = true; + for (int j = 0; j < Players[pnum]._pNumInv; j++) { + if (Players[pnum].InvList[j]._iMagical != ITEM_QUALITY_NORMAL && !Players[pnum].InvList[j]._iIdentified) + Players[pnum].InvList[j]._iIdentified = true; } - for (auto &item : plr[pnum].SpdList) { + for (auto &item : Players[pnum].SpdList) { if (item._iMagical != ITEM_QUALITY_NORMAL && !item._iIdentified) item._iIdentified = true; // belt items can't be magical? } @@ -3947,7 +3947,7 @@ bool OperateShrineTainted(int pnum) if (deltaload) return false; - if (pnum == myplr) { + if (pnum == MyPlayerId) { InitDiabloMsg(EMSG_SHRINE_TAINTED1); return true; } @@ -3959,12 +3959,12 @@ bool OperateShrineTainted(int pnum) int v3 = r == 2 ? 1 : -1; int v4 = r == 3 ? 1 : -1; - ModifyPlrStr(myplr, v1); - ModifyPlrMag(myplr, v2); - ModifyPlrDex(myplr, v3); - ModifyPlrVit(myplr, v4); + ModifyPlrStr(MyPlayerId, v1); + ModifyPlrMag(MyPlayerId, v2); + ModifyPlrDex(MyPlayerId, v3); + ModifyPlrVit(MyPlayerId, v4); - CheckStats(plr[myplr]); + CheckStats(Players[MyPlayerId]); InitDiabloMsg(EMSG_SHRINE_TAINTED2); @@ -3975,38 +3975,38 @@ bool OperateShrineOily(int pnum, int x, int y) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; - switch (plr[myplr]._pClass) { + switch (Players[MyPlayerId]._pClass) { case HeroClass::Warrior: - ModifyPlrStr(myplr, 2); + ModifyPlrStr(MyPlayerId, 2); break; case HeroClass::Rogue: - ModifyPlrDex(myplr, 2); + ModifyPlrDex(MyPlayerId, 2); break; case HeroClass::Sorcerer: - ModifyPlrMag(myplr, 2); + ModifyPlrMag(MyPlayerId, 2); break; case HeroClass::Barbarian: - ModifyPlrVit(myplr, 2); + ModifyPlrVit(MyPlayerId, 2); break; case HeroClass::Monk: - ModifyPlrStr(myplr, 1); - ModifyPlrDex(myplr, 1); + ModifyPlrStr(MyPlayerId, 1); + ModifyPlrDex(MyPlayerId, 1); break; case HeroClass::Bard: - ModifyPlrDex(myplr, 1); - ModifyPlrMag(myplr, 1); + ModifyPlrDex(MyPlayerId, 1); + ModifyPlrMag(MyPlayerId, 1); break; } - CheckStats(plr[pnum]); + CheckStats(Players[pnum]); AddMissile( { x, y }, - plr[myplr].position.tile, - plr[myplr]._pdir, + Players[MyPlayerId].position.tile, + Players[MyPlayerId]._pdir, MIS_FIREWALL, TARGET_PLAYERS, -1, @@ -4022,24 +4022,24 @@ bool OperateShrineGlowing(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; - int playerXP = plr[myplr]._pExperience; + int playerXP = Players[MyPlayerId]._pExperience; int magicGain = playerXP / 1000; int xpLoss = 0; if (playerXP > 5000) { magicGain = 5; xpLoss = static_cast(playerXP * 0.95); } - ModifyPlrMag(myplr, magicGain); - plr[myplr]._pExperience = xpLoss; + ModifyPlrMag(MyPlayerId, magicGain); + Players[MyPlayerId]._pExperience = xpLoss; if (sgOptions.Gameplay.bExperienceBar) { force_redraw = 255; } - CheckStats(plr[pnum]); + CheckStats(Players[pnum]); InitDiabloMsg(EMSG_SHRINE_GLOWING); @@ -4050,14 +4050,14 @@ bool OperateShrineMendicant(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; - int gold = plr[myplr]._pGold / 2; - AddPlrExperience(myplr, plr[myplr]._pLevel, gold); + int gold = Players[MyPlayerId]._pGold / 2; + AddPlrExperience(MyPlayerId, Players[MyPlayerId]._pLevel, gold); TakePlrsMoney(gold); - CheckStats(plr[pnum]); + CheckStats(Players[pnum]); InitDiabloMsg(EMSG_SHRINE_MENDICANT); @@ -4068,22 +4068,22 @@ bool OperateShrineSparkling(int pnum, int x, int y) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; - AddPlrExperience(myplr, plr[myplr]._pLevel, 1000 * currlevel); + AddPlrExperience(MyPlayerId, Players[MyPlayerId]._pLevel, 1000 * currlevel); AddMissile( { x, y }, - plr[myplr].position.tile, - plr[myplr]._pdir, + Players[MyPlayerId].position.tile, + Players[MyPlayerId]._pdir, MIS_FLASH, TARGET_PLAYERS, -1, 3 * currlevel + 2, 0); - CheckStats(plr[pnum]); + CheckStats(Players[pnum]); InitDiabloMsg(EMSG_SHRINE_SPARKLING); @@ -4094,13 +4094,13 @@ bool OperateShrineTown(int pnum, int x, int y) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; AddMissile( { x, y }, - plr[myplr].position.tile, - plr[myplr]._pdir, + Players[MyPlayerId].position.tile, + Players[MyPlayerId]._pdir, MIS_TOWN, TARGET_PLAYERS, pnum, @@ -4116,11 +4116,11 @@ bool OperateShrineShimmering(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; - plr[pnum]._pMana = plr[pnum]._pMaxMana; - plr[pnum]._pManaBase = plr[pnum]._pMaxManaBase; + Players[pnum]._pMana = Players[pnum]._pMaxMana; + Players[pnum]._pManaBase = Players[pnum]._pMaxManaBase; InitDiabloMsg(EMSG_SHRINE_SHIMMERING); @@ -4131,26 +4131,26 @@ bool OperateShrineSolar(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; time_t tm = time(nullptr); int hour = localtime(&tm)->tm_hour; if (hour >= 20 || hour < 4) { InitDiabloMsg(EMSG_SHRINE_SOLAR4); - ModifyPlrVit(myplr, 2); + ModifyPlrVit(MyPlayerId, 2); } else if (hour >= 18) { InitDiabloMsg(EMSG_SHRINE_SOLAR3); - ModifyPlrMag(myplr, 2); + ModifyPlrMag(MyPlayerId, 2); } else if (hour >= 12) { InitDiabloMsg(EMSG_SHRINE_SOLAR2); - ModifyPlrStr(myplr, 2); + ModifyPlrStr(MyPlayerId, 2); } else /* 4:00 to 11:59 */ { InitDiabloMsg(EMSG_SHRINE_SOLAR1); - ModifyPlrDex(myplr, 2); + ModifyPlrDex(MyPlayerId, 2); } - CheckStats(plr[pnum]); + CheckStats(Players[pnum]); return true; } @@ -4159,11 +4159,11 @@ bool OperateShrineMurphys(int pnum) { if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; bool broke = false; - for (auto &item : plr[myplr].InvBody) { + for (auto &item : Players[MyPlayerId].InvBody) { if (!item.isEmpty() && GenerateRnd(3) == 0) { if (item._iDurability != DUR_INDESTRUCTIBLE) { if (item._iDurability > 0) { @@ -4175,7 +4175,7 @@ bool OperateShrineMurphys(int pnum) } } if (!broke) { - TakePlrsMoney(plr[myplr]._pGold / 3); + TakePlrsMoney(Players[MyPlayerId]._pGold / 3); } InitDiabloMsg(EMSG_SHRINE_MURPHYS); @@ -4346,7 +4346,7 @@ void OperateShrine(int pnum, int i, _sfx_id sType) CalcPlrInv(pnum, true); force_redraw = 255; - if (pnum == myplr) + if (pnum == MyPlayerId) NetSendCmdParam2(false, CMD_PLROPOBJ, pnum, i); } @@ -4368,7 +4368,7 @@ void OperateSkelBook(int pnum, int i, bool sendmsg) CreateTypeItem(object[i].position, false, ITYPE_MISC, IMISC_SCROLL, sendmsg, false); else CreateTypeItem(object[i].position, false, ITYPE_MISC, IMISC_BOOK, sendmsg, false); - if (pnum == myplr) + if (pnum == MyPlayerId) NetSendCmdParam1(false, CMD_OPERATEOBJ, i); } @@ -4397,7 +4397,7 @@ void OperateBookCase(int pnum, int i, bool sendmsg) Monsters[MAX_PLRS]._mgoal = MGOAL_ATTACK2; Monsters[MAX_PLRS]._mmode = MM_TALK; } - if (pnum == myplr) + if (pnum == MyPlayerId) NetSendCmdParam1(false, CMD_OPERATEOBJ, i); } @@ -4412,7 +4412,7 @@ void OperateDecap(int pnum, int i, bool sendmsg) } SetRndSeed(object[i]._oRndSeed); CreateRndItem(object[i].position, false, sendmsg, false); - if (pnum == myplr) + if (pnum == MyPlayerId) NetSendCmdParam1(false, CMD_OPERATEOBJ, i); } @@ -4439,7 +4439,7 @@ void OperateArmorStand(int pnum, int i, bool sendmsg) } else if (currlevel >= 17) { CreateTypeItem(object[i].position, true, ITYPE_HARMOR, IMISC_NONE, sendmsg, false); } - if (pnum == myplr) + if (pnum == MyPlayerId) NetSendCmdParam1(false, CMD_OPERATEOBJ, i); } @@ -4498,16 +4498,16 @@ bool OperateFountains(int pnum, int i) case OBJ_BLOODFTN: if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; - if (plr[pnum]._pHitPoints < plr[pnum]._pMaxHP) { + if (Players[pnum]._pHitPoints < Players[pnum]._pMaxHP) { PlaySfxLoc(LS_FOUNTAIN, object[i].position); - plr[pnum]._pHitPoints += 64; - plr[pnum]._pHPBase += 64; - if (plr[pnum]._pHitPoints > plr[pnum]._pMaxHP) { - plr[pnum]._pHitPoints = plr[pnum]._pMaxHP; - plr[pnum]._pHPBase = plr[pnum]._pMaxHPBase; + Players[pnum]._pHitPoints += 64; + Players[pnum]._pHPBase += 64; + if (Players[pnum]._pHitPoints > Players[pnum]._pMaxHP) { + Players[pnum]._pHitPoints = Players[pnum]._pMaxHP; + Players[pnum]._pHPBase = Players[pnum]._pMaxHPBase; } applied = true; } else @@ -4516,17 +4516,17 @@ bool OperateFountains(int pnum, int i) case OBJ_PURIFYINGFTN: if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; - if (plr[pnum]._pMana < plr[pnum]._pMaxMana) { + if (Players[pnum]._pMana < Players[pnum]._pMaxMana) { PlaySfxLoc(LS_FOUNTAIN, object[i].position); - plr[pnum]._pMana += 64; - plr[pnum]._pManaBase += 64; - if (plr[pnum]._pMana > plr[pnum]._pMaxMana) { - plr[pnum]._pMana = plr[pnum]._pMaxMana; - plr[pnum]._pManaBase = plr[pnum]._pMaxManaBase; + Players[pnum]._pMana += 64; + Players[pnum]._pManaBase += 64; + if (Players[pnum]._pMana > Players[pnum]._pMaxMana) { + Players[pnum]._pMana = Players[pnum]._pMaxMana; + Players[pnum]._pManaBase = Players[pnum]._pMaxManaBase; } applied = true; @@ -4542,16 +4542,16 @@ bool OperateFountains(int pnum, int i) if (deltaload) return false; AddMissile( - plr[pnum].position.tile, - plr[pnum].position.tile, - plr[pnum]._pdir, + Players[pnum].position.tile, + Players[pnum].position.tile, + Players[pnum]._pdir, MIS_INFRA, -1, pnum, 0, 2 * leveltype); applied = true; - if (pnum == myplr) + if (pnum == MyPlayerId) NetSendCmdParam1(false, CMD_OPERATEOBJ, i); break; case OBJ_TEARFTN: { @@ -4562,7 +4562,7 @@ bool OperateFountains(int pnum, int i) object[i]._oSelFlag = 0; if (deltaload) return false; - if (pnum != myplr) + if (pnum != MyPlayerId) return false; int fromStat = GenerateRnd(4); @@ -4588,9 +4588,9 @@ bool OperateFountains(int pnum, int i) } } - CheckStats(plr[pnum]); + CheckStats(Players[pnum]); applied = true; - if (pnum == myplr) + if (pnum == MyPlayerId) NetSendCmdParam1(false, CMD_OPERATEOBJ, i); } break; default: @@ -4630,13 +4630,13 @@ void OperateWeaponRack(int pnum, int i, bool sendmsg) CreateTypeItem(object[i].position, leveltype > 1, weaponType, IMISC_NONE, sendmsg, false); - if (pnum == myplr) + if (pnum == MyPlayerId) NetSendCmdParam1(false, CMD_OPERATEOBJ, i); } void OperateStoryBook(int pnum, int i) { - if (object[i]._oSelFlag == 0 || deltaload || qtextflag || pnum != myplr) { + if (object[i]._oSelFlag == 0 || deltaload || qtextflag || pnum != MyPlayerId) { return; } object[i]._oAnimFrame = object[i]._oVar4; @@ -4662,7 +4662,7 @@ void OperateLazStand(int pnum, int i) return; } - if (object[i]._oSelFlag == 0 || deltaload || qtextflag || pnum != myplr) { + if (object[i]._oSelFlag == 0 || deltaload || qtextflag || pnum != MyPlayerId) { return; } @@ -4689,7 +4689,7 @@ bool objectIsDisabled(int i) void OperateObject(int pnum, int i, bool teleFlag) { - bool sendmsg = pnum == myplr; + bool sendmsg = pnum == MyPlayerId; switch (object[i]._otype) { case OBJ_L1LDOOR: case OBJ_L1RDOOR: @@ -4700,7 +4700,7 @@ void OperateObject(int pnum, int i, bool teleFlag) OperateL1RDoor(pnum, i, true); break; } - if (pnum == myplr) + if (pnum == MyPlayerId) OperateL1Door(pnum, i, true); break; case OBJ_L2LDOOR: @@ -4712,7 +4712,7 @@ void OperateObject(int pnum, int i, bool teleFlag) OperateL2RDoor(pnum, i, true); break; } - if (pnum == myplr) + if (pnum == MyPlayerId) OperateL2Door(pnum, i, true); break; case OBJ_L3LDOOR: @@ -4724,7 +4724,7 @@ void OperateObject(int pnum, int i, bool teleFlag) OperateL3RDoor(pnum, i, true); break; } - if (pnum == myplr) + if (pnum == MyPlayerId) OperateL3Door(pnum, i, true); break; case OBJ_LEVER: @@ -4816,7 +4816,7 @@ void OperateObject(int pnum, int i, bool teleFlag) void SyncOpL1Door(int pnum, int cmd, int i) { - if (pnum == myplr) + if (pnum == MyPlayerId) return; bool doSync = false; @@ -4835,7 +4835,7 @@ void SyncOpL1Door(int pnum, int cmd, int i) void SyncOpL2Door(int pnum, int cmd, int i) { - if (pnum == myplr) + if (pnum == MyPlayerId) return; bool doSync = false; @@ -4854,7 +4854,7 @@ void SyncOpL2Door(int pnum, int cmd, int i) void SyncOpL3Door(int pnum, int cmd, int i) { - if (pnum == myplr) + if (pnum == MyPlayerId) return; bool doSync = false; @@ -4992,7 +4992,7 @@ void BreakBarrel(int pnum, int i, int dam, bool forcebreak, bool sendmsg) object[i]._oVar1 = 0; } else { object[i]._oVar1 -= dam; - if (pnum != myplr && object[i]._oVar1 <= 0) + if (pnum != MyPlayerId && object[i]._oVar1 <= 0) object[i]._oVar1 = 1; } if (object[i]._oVar1 > 0) { @@ -5057,7 +5057,7 @@ void BreakBarrel(int pnum, int i, int dam, bool forcebreak, bool sendmsg) if (object[i]._oVar2 >= 8) SpawnSkeleton(object[i]._oVar4, object[i].position); } - if (pnum == myplr) + if (pnum == MyPlayerId) NetSendCmdParam2(false, CMD_BREAKOBJ, pnum, i); } @@ -5065,10 +5065,10 @@ void BreakObject(int pnum, int oi) { int objdam = 10; if (pnum != -1) { - int mind = plr[pnum]._pIMinDam; - int maxd = plr[pnum]._pIMaxDam; + int mind = Players[pnum]._pIMinDam; + int maxd = Players[pnum]._pIMaxDam; objdam = GenerateRnd(maxd - mind + 1) + mind; - objdam += plr[pnum]._pDamageMod + plr[pnum]._pIBonusDamMod + objdam * plr[pnum]._pIBonusDam / 100; + objdam += Players[pnum]._pDamageMod + Players[pnum]._pIBonusDamMod + objdam * Players[pnum]._pIBonusDam / 100; } switch (object[oi]._otype) { @@ -5414,7 +5414,7 @@ void GetObjectStr(int i) default: break; } - if (plr[myplr]._pClass == HeroClass::Rogue) { + if (Players[MyPlayerId]._pClass == HeroClass::Rogue) { if (object[i]._oTrapFlag) { strcpy(tempstr, fmt::format(_(/* TRANSLATORS: {:s} will either be a chest or a door */ "Trapped {:s}"), infostr).c_str()); strcpy(infostr, tempstr); diff --git a/Source/pack.cpp b/Source/pack.cpp index 34b4424a5..bd534c560 100644 --- a/Source/pack.cpp +++ b/Source/pack.cpp @@ -195,7 +195,7 @@ static void VerifyGoldSeeds(PlayerStruct &player) void UnPackPlayer(const PkPlayerStruct *pPack, int pnum, bool netSync) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; player.position.tile = { pPack->px, pPack->py }; player.position.future = { pPack->px, pPack->py }; @@ -219,7 +219,7 @@ void UnPackPlayer(const PkPlayerStruct *pPack, int pnum, bool netSync) player._pGold = SDL_SwapLE32(pPack->pGold); player._pMaxHPBase = SDL_SwapLE32(pPack->pMaxHPBase); player._pHPBase = SDL_SwapLE32(pPack->pHPBase); - player._pBaseToBlk = ToBlkTbl[static_cast(player._pClass)]; + player._pBaseToBlk = BlockBonuses[static_cast(player._pClass)]; if (!netSync) if ((int)(player._pHPBase & 0xFFFFFFC0) < 64) player._pHPBase = 64; @@ -257,7 +257,7 @@ void UnPackPlayer(const PkPlayerStruct *pPack, int pnum, bool netSync) UnPackItem(&packedItem, &player.SpdList[i], isHellfire); } - if (pnum == myplr) { + if (pnum == MyPlayerId) { for (int i = 0; i < 20; i++) witchitem[i]._itype = ITYPE_NONE; } diff --git a/Source/pfile.cpp b/Source/pfile.cpp index 32ed6f597..153086d99 100644 --- a/Source/pfile.cpp +++ b/Source/pfile.cpp @@ -266,7 +266,7 @@ const char *pfile_get_password() } PFileScopedArchiveWriter::PFileScopedArchiveWriter(bool clearTables) - : save_num_(GetSaveNumberFromName(plr[myplr]._pName)) + : save_num_(GetSaveNumberFromName(Players[MyPlayerId]._pName)) , clear_tables_(clearTables) { if (!OpenArchive(save_num_)) @@ -286,11 +286,11 @@ void pfile_write_hero(bool writeGameData, bool clearTables) RenameTempToPerm(); } PkPlayerStruct pkplr; - PackPlayer(&pkplr, plr[myplr], !gbIsMultiplayer); + PackPlayer(&pkplr, Players[MyPlayerId], !gbIsMultiplayer); EncodeHero(&pkplr); if (!gbVanilla) { SaveHotkeys(); - SaveHeroItems(plr[myplr]); + SaveHeroItems(Players[MyPlayerId]); } } @@ -312,11 +312,11 @@ bool pfile_ui_set_hero_infos(bool (*uiAddHeroInfo)(_uiheroinfo *)) UnPackPlayer(&pkplr, 0, false); CloseArchive(&archive); - LoadHeroItems(plr[0]); - RemoveEmptyInventory(plr[0]); + LoadHeroItems(Players[0]); + RemoveEmptyInventory(Players[0]); CalcPlrInv(0, false); - Game2UiPlayer(plr[0], &uihero, hasSaveGame); + Game2UiPlayer(Players[0], &uihero, hasSaveGame); uiAddHeroInfo(&uihero); } CloseArchive(&archive); @@ -353,7 +353,7 @@ bool pfile_ui_save_create(_uiheroinfo *heroinfo) strncpy(hero_names[saveNum], heroinfo->name, PLR_NAME_LEN); hero_names[saveNum][PLR_NAME_LEN - 1] = '\0'; - auto &player = plr[0]; + auto &player = Players[0]; CreatePlayer(0, heroinfo->heroclass); strncpy(player._pName, heroinfo->name, PLR_NAME_LEN); player._pName[PLR_NAME_LEN - 1] = '\0'; @@ -399,8 +399,8 @@ void pfile_read_player_from_save(char name[16], int playerId) UnPackPlayer(&pkplr, playerId, false); - LoadHeroItems(plr[playerId]); - RemoveEmptyInventory(plr[playerId]); + LoadHeroItems(Players[playerId]); + RemoveEmptyInventory(Players[playerId]); CalcPlrInv(playerId, false); } @@ -410,7 +410,7 @@ bool LevelFileExists() GetPermLevelNames(szName); - uint32_t saveNum = GetSaveNumberFromName(plr[myplr]._pName); + uint32_t saveNum = GetSaveNumberFromName(Players[MyPlayerId]._pName); if (!OpenArchive(saveNum)) app_fatal("%s", _("Unable to read to save file archive")); @@ -429,7 +429,7 @@ void GetTempLevelNames(char *szTemp) void GetPermLevelNames(char *szPerm) { - uint32_t saveNum = GetSaveNumberFromName(plr[myplr]._pName); + uint32_t saveNum = GetSaveNumberFromName(Players[MyPlayerId]._pName); GetTempLevelNames(szPerm); if (!OpenArchive(saveNum)) app_fatal("%s", _("Unable to read to save file archive")); @@ -449,7 +449,7 @@ void pfile_remove_temp_files() if (gbIsMultiplayer) return; - uint32_t saveNum = GetSaveNumberFromName(plr[myplr]._pName); + uint32_t saveNum = GetSaveNumberFromName(Players[MyPlayerId]._pName); if (!OpenArchive(saveNum)) app_fatal("%s", _("Unable to write to save file archive")); mpqapi_remove_hash_entries(GetTempSaveNames); @@ -460,7 +460,7 @@ std::unique_ptr pfile_read(const char *pszName, size_t *pdwLen) { HANDLE archive; - uint32_t saveNum = GetSaveNumberFromName(plr[myplr]._pName); + uint32_t saveNum = GetSaveNumberFromName(Players[MyPlayerId]._pName); archive = OpenSaveArchive(saveNum); if (archive == nullptr) return nullptr; diff --git a/Source/player.cpp b/Source/player.cpp index d3e5a87cb..8680cba59 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -65,14 +65,14 @@ void PmChangeLightOff(PlayerStruct &player) void WalkUpwards(int pnum, const DirectionSettings &walkParams) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; dPlayer[player.position.future.x][player.position.future.y] = -(pnum + 1); player.position.temp = { walkParams.tileAdd.deltaX, walkParams.tileAdd.deltaY }; } void WalkDownwards(int pnum, const DirectionSettings & /*walkParams*/) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; dPlayer[player.position.tile.x][player.position.tile.y] = -(pnum + 1); player.position.temp = player.position.tile; player.position.tile = player.position.future; // Move player to the next tile to maintain correct render order @@ -84,7 +84,7 @@ void WalkDownwards(int pnum, const DirectionSettings & /*walkParams*/) void WalkSides(int pnum, const DirectionSettings &walkParams) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; Point const nextPosition = player.position.tile + walkParams.map; @@ -138,7 +138,7 @@ bool PlrDirOK(int pnum, Direction dir) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("PlrDirOK: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; Point position = player.position.tile; Point futurePosition = position + dir; @@ -159,7 +159,7 @@ bool PlrDirOK(int pnum, Direction dir) void HandleWalkMode(int pnum, Displacement vel, Direction dir) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; const auto &dirModeParams = WalkSettings[dir]; SetPlayerOld(player); if (!PlrDirOK(pnum, dir)) { @@ -195,9 +195,9 @@ void StartWalkAnimation(PlayerStruct &player, Direction dir, bool pmWillBeCalled */ void StartWalk(int pnum, Displacement vel, Direction dir, bool pmWillBeCalled) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; - if (player._pInvincible && player._pHitPoints == 0 && pnum == myplr) { + if (player._pInvincible && player._pHitPoints == 0 && pnum == MyPlayerId) { SyncPlrKill(pnum, -1); return; } @@ -205,15 +205,15 @@ void StartWalk(int pnum, Displacement vel, Direction dir, bool pmWillBeCalled) HandleWalkMode(pnum, vel, dir); StartWalkAnimation(player, dir, pmWillBeCalled); - if (pnum == myplr) { + if (pnum == MyPlayerId) { ScrollViewPort(player, WalkSettings[dir].scrollDir); } } } // namespace -int myplr; -PlayerStruct plr[MAX_PLRS]; -bool deathflag; +int MyPlayerId; +PlayerStruct Players[MAX_PLRS]; +bool MyPlayerIsDead; int deathdelay; /** Maps from armor animation to letter used in graphic files. */ @@ -314,7 +314,7 @@ int VitalityTbl[enum_size::value] = { 25, }; /** Specifies the chance to block bonus of each player class.*/ -int ToBlkTbl[enum_size::value] = { +int BlockBonuses[enum_size::value] = { 30, 20, 10, @@ -856,7 +856,7 @@ void CreatePlayer(int playerId, HeroClass c) if ((DWORD)playerId >= MAX_PLRS) { app_fatal("CreatePlayer: illegal player %i", playerId); } - auto &player = plr[playerId]; + auto &player = Players[playerId]; player.Reset(); SetRndSeed(SDL_GetTicks()); @@ -893,7 +893,7 @@ void CreatePlayer(int playerId, HeroClass c) player._pDamageMod = player._pStrength * player._pLevel / 100; } - player._pBaseToBlk = ToBlkTbl[static_cast(c)]; + player._pBaseToBlk = BlockBonuses[static_cast(c)]; player._pHitPoints = (player._pVitality + 10) << 6; if (player._pClass == HeroClass::Warrior || player._pClass == HeroClass::Barbarian) { @@ -1034,7 +1034,7 @@ void NextPlrLevel(int pnum) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("NextPlrLevel: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; player._pLevel++; player._pMaxLvl++; @@ -1058,7 +1058,7 @@ void NextPlrLevel(int pnum) player._pMaxHPBase += hp; player._pHPBase = player._pMaxHPBase; - if (pnum == myplr) { + if (pnum == MyPlayerId) { drawhpflag = true; } @@ -1079,7 +1079,7 @@ void NextPlrLevel(int pnum) player._pManaBase = player._pMaxManaBase; } - if (pnum == myplr) { + if (pnum == MyPlayerId) { drawmanaflag = true; } @@ -1093,14 +1093,14 @@ void NextPlrLevel(int pnum) void AddPlrExperience(int pnum, int lvl, int exp) { - if (pnum != myplr) { + if (pnum != MyPlayerId) { return; } if ((DWORD)pnum >= MAX_PLRS) { app_fatal("AddPlrExperience: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (player._pHitPoints <= 0) { return; @@ -1168,8 +1168,8 @@ void AddPlrMonstExper(int lvl, int exp, char pmask) if (totplrs != 0) { int e = exp / totplrs; - if ((pmask & (1 << myplr)) != 0) - AddPlrExperience(myplr, lvl, e); + if ((pmask & (1 << MyPlayerId)) != 0) + AddPlrExperience(MyPlayerId, lvl, e); } } @@ -1180,13 +1180,13 @@ void InitPlayer(int pnum, bool firstTime) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("InitPlayer: illegal player %i", pnum); } - auto &player = plr[pnum]; - auto &myPlayer = plr[myplr]; + auto &player = Players[pnum]; + auto &myPlayer = Players[MyPlayerId]; if (firstTime) { player._pRSplType = RSPLTYPE_INVALID; player._pRSpell = SPL_INVALID; - if (pnum == myplr) + if (pnum == MyPlayerId) LoadHotkeys(); player._pSBkSpell = SPL_INVALID; player._pSpell = player._pRSpell; @@ -1221,7 +1221,7 @@ void InitPlayer(int pnum, bool firstTime) player._pdir = DIR_S; - if (pnum == myplr) { + if (pnum == MyPlayerId) { if (!firstTime || currlevel != 0) { player.position.tile = { ViewX, ViewY }; } @@ -1236,13 +1236,13 @@ void InitPlayer(int pnum, bool firstTime) player.walkpath[0] = WALK_NONE; player.destAction = ACTION_NONE; - if (pnum == myplr) { + if (pnum == MyPlayerId) { player._plid = AddLight(player.position.tile, player._pLightRad); ChangeLightXY(myPlayer._plid, myPlayer.position.tile); // fix for a bug where old light is still visible at the entrance after reentering level } else { player._plid = NO_LIGHT; } - player._pvid = AddVision(player.position.tile, player._pLightRad, pnum == myplr); + player._pvid = AddVision(player.position.tile, player._pLightRad, pnum == MyPlayerId); } if (player._pClass == HeroClass::Warrior) { @@ -1274,9 +1274,9 @@ void InitPlayer(int pnum, bool firstTime) player._pNextExper = ExpLvlsTbl[player._pLevel]; player._pInvincible = false; - if (pnum == myplr) { + if (pnum == MyPlayerId) { deathdelay = 0; - deathflag = false; + MyPlayerIsDead = false; ScrollInfo.offset = { 0, 0 }; ScrollInfo._sdir = SDIR_NONE; } @@ -1284,10 +1284,10 @@ void InitPlayer(int pnum, bool firstTime) void InitMultiView() { - if ((DWORD)myplr >= MAX_PLRS) { - app_fatal("InitPlayer: illegal player %i", myplr); + if ((DWORD)MyPlayerId >= MAX_PLRS) { + app_fatal("InitPlayer: illegal player %i", MyPlayerId); } - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; ViewX = myPlayer.position.tile.x; ViewY = myPlayer.position.tile.y; @@ -1337,12 +1337,12 @@ void FixPlayerLocation(int pnum, Direction bDir) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("FixPlayerLocation: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; player.position.future = player.position.tile; player.position.offset = { 0, 0 }; player._pdir = bDir; - if (pnum == myplr) { + if (pnum == MyPlayerId) { ScrollInfo.offset = { 0, 0 }; ScrollInfo._sdir = SDIR_NONE; ViewX = player.position.tile.x; @@ -1357,9 +1357,9 @@ void StartStand(int pnum, Direction dir) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("StartStand: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; - if (player._pInvincible && player._pHitPoints == 0 && pnum == myplr) { + if (player._pInvincible && player._pHitPoints == 0 && pnum == MyPlayerId) { SyncPlrKill(pnum, -1); return; } @@ -1377,13 +1377,13 @@ void StartWalkStand(int pnum) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("StartWalkStand: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; player._pmode = PM_STAND; player.position.future = player.position.tile; player.position.offset = { 0, 0 }; - if (pnum == myplr) { + if (pnum == MyPlayerId) { ScrollInfo.offset = { 0, 0 }; ScrollInfo._sdir = SDIR_NONE; ViewX = player.position.tile.x; @@ -1396,7 +1396,7 @@ void PM_ChangeOffset(int pnum) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("PM_ChangeOffset: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; int px = player.position.offset2.deltaX / 256; int py = player.position.offset2.deltaY / 256; @@ -1412,7 +1412,7 @@ void PM_ChangeOffset(int pnum) px -= player.position.offset2.deltaX >> 8; py -= player.position.offset2.deltaY >> 8; - if (pnum == myplr && ScrollInfo._sdir != SDIR_NONE) { + if (pnum == MyPlayerId && ScrollInfo._sdir != SDIR_NONE) { ScrollInfo.offset += { px, py }; } @@ -1424,9 +1424,9 @@ void StartAttack(int pnum, Direction d) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("StartAttack: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; - if (player._pInvincible && player._pHitPoints == 0 && pnum == myplr) { + if (player._pInvincible && player._pHitPoints == 0 && pnum == MyPlayerId) { SyncPlrKill(pnum, -1); return; } @@ -1456,9 +1456,9 @@ void StartRangeAttack(int pnum, Direction d, int cx, int cy) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("StartRangeAttack: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; - if (player._pInvincible && player._pHitPoints == 0 && pnum == myplr) { + if (player._pInvincible && player._pHitPoints == 0 && pnum == MyPlayerId) { SyncPlrKill(pnum, -1); return; } @@ -1486,9 +1486,9 @@ void StartPlrBlock(int pnum, Direction dir) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("StartPlrBlock: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; - if (player._pInvincible && player._pHitPoints == 0 && pnum == myplr) { + if (player._pInvincible && player._pHitPoints == 0 && pnum == MyPlayerId) { SyncPlrKill(pnum, -1); return; } @@ -1511,9 +1511,9 @@ void StartSpell(int pnum, Direction d, int cx, int cy) { if ((DWORD)pnum >= MAX_PLRS) app_fatal("StartSpell: illegal player %i", pnum); - auto &player = plr[pnum]; + auto &player = Players[pnum]; - if (player._pInvincible && player._pHitPoints == 0 && pnum == myplr) { + if (player._pInvincible && player._pHitPoints == 0 && pnum == MyPlayerId) { SyncPlrKill(pnum, -1); return; } @@ -1555,7 +1555,7 @@ void FixPlrWalkTags(int pnum) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("FixPlrWalkTags: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; int pp = pnum + 1; int pn = -(pnum + 1); @@ -1602,9 +1602,9 @@ void StartPlrHit(int pnum, int dam, bool forcehit) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("StartPlrHit: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; - if (player._pInvincible && player._pHitPoints == 0 && pnum == myplr) { + if (player._pInvincible && player._pHitPoints == 0 && pnum == MyPlayerId) { SyncPlrKill(pnum, -1); return; } @@ -1702,13 +1702,13 @@ StartPlayerKill(int pnum, int earflag) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("StartPlayerKill: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (player._pHitPoints <= 0 && player._pmode == PM_DEATH) { return; } - if (myplr == pnum) { + if (MyPlayerId == pnum) { NetSendCmdParam1(true, CMD_PLRDEAD, earflag); } @@ -1730,7 +1730,7 @@ StartPlayerKill(int pnum, int earflag) SetPlayerHitPoints(pnum, 0); player.deathFrame = 1; - if (pnum != myplr && earflag == 0 && !diablolevel) { + if (pnum != MyPlayerId && earflag == 0 && !diablolevel) { for (i = 0; i < NUM_INVLOC; i++) { player.InvBody[i]._itype = ITYPE_NONE; } @@ -1743,7 +1743,7 @@ StartPlayerKill(int pnum, int earflag) dFlags[player.position.tile.x][player.position.tile.y] |= BFLAG_DEAD_PLAYER; SetPlayerOld(player); - if (pnum == myplr) { + if (pnum == MyPlayerId) { drawhpflag = true; deathdelay = 30; @@ -1798,7 +1798,7 @@ StartPlayerKill(int pnum, int earflag) static int DropGold(int pnum, int amount, bool skipFullStacks) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; for (int i = 0; i < player._pNumInv && amount > 0; i++) { auto &item = player.InvList[i]; @@ -1834,7 +1834,7 @@ void DropHalfPlayersGold(int pnum) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("DropHalfPlayersGold: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; int hGold = player._pGold / 2; @@ -1850,7 +1850,7 @@ void StripTopGold(int pnum) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("StripTopGold: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; ItemStruct tmpItem = player.HoldItem; @@ -1874,7 +1874,7 @@ void StripTopGold(int pnum) void ApplyPlrDamage(int pnum, int dam, int minHP /*= 0*/, int frac /*= 0*/, int earflag /*= 0*/) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; int totalDamage = (dam << 6) + frac; if (totalDamage > 0) { @@ -1925,7 +1925,7 @@ void ApplyPlrDamage(int pnum, int dam, int minHP /*= 0*/, int frac /*= 0*/, int void SyncPlrKill(int pnum, int earflag) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (player._pHitPoints <= 0 && currlevel == 0) { SetPlayerHitPoints(pnum, 64); @@ -1938,13 +1938,13 @@ void SyncPlrKill(int pnum, int earflag) void RemovePlrMissiles(int pnum) { - if (currlevel != 0 && pnum == myplr && (Monsters[myplr].position.tile.x != 1 || Monsters[myplr].position.tile.y != 0)) { - M_StartKill(myplr, myplr); - AddDead(Monsters[myplr].position.tile, (Monsters[myplr].MType)->mdeadval, Monsters[myplr]._mdir); - int mx = Monsters[myplr].position.tile.x; - int my = Monsters[myplr].position.tile.y; + if (currlevel != 0 && pnum == MyPlayerId && (Monsters[MyPlayerId].position.tile.x != 1 || Monsters[MyPlayerId].position.tile.y != 0)) { + M_StartKill(MyPlayerId, MyPlayerId); + AddDead(Monsters[MyPlayerId].position.tile, (Monsters[MyPlayerId].MType)->mdeadval, Monsters[MyPlayerId]._mdir); + int mx = Monsters[MyPlayerId].position.tile.x; + int my = Monsters[MyPlayerId].position.tile.y; dMonster[mx][my] = 0; - Monsters[myplr]._mDelFlag = true; + Monsters[MyPlayerId]._mDelFlag = true; DeleteMonsterList(); } @@ -1966,19 +1966,19 @@ void RemovePlrMissiles(int pnum) void InitLevelChange(int pnum) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; RemovePlrMissiles(pnum); - if (pnum == myplr && qtextflag) { + if (pnum == MyPlayerId && qtextflag) { qtextflag = false; stream_stop(); } RemovePlrFromMap(pnum); SetPlayerOld(player); - if (pnum == myplr) { - auto &myPlayer = plr[myplr]; - dPlayer[myPlayer.position.tile.x][myPlayer.position.tile.y] = myplr + 1; + if (pnum == MyPlayerId) { + auto &myPlayer = Players[MyPlayerId]; + dPlayer[myPlayer.position.tile.x][myPlayer.position.tile.y] = MyPlayerId + 1; } else { player._pLvlVisited[player.plrlevel] = true; } @@ -1987,7 +1987,7 @@ void InitLevelChange(int pnum) player.destAction = ACTION_NONE; player._pLvlChanging = true; - if (pnum == myplr) { + if (pnum == MyPlayerId) { player.pLvlLoad = 10; } } @@ -2003,8 +2003,8 @@ StartNewLvl(int pnum, interface_mode fom, int lvl) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("StartNewLvl: illegal player %i", pnum); } - auto &player = plr[pnum]; - auto &myPlayer = plr[myplr]; + auto &player = Players[pnum]; + auto &myPlayer = Players[MyPlayerId]; switch (fom) { case WM_DIABNEXTLVL: @@ -2026,7 +2026,7 @@ StartNewLvl(int pnum, interface_mode fom, int lvl) app_fatal("StartNewLvl"); } - if (pnum == myplr) { + if (pnum == MyPlayerId) { player._pmode = PM_NEWLVL; player._pInvincible = true; PostMessage(fom, 0, 0); @@ -2042,7 +2042,7 @@ void RestartTownLvl(int pnum) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("RestartTownLvl: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; player.plrlevel = 0; player._pInvincible = false; @@ -2054,7 +2054,7 @@ void RestartTownLvl(int pnum) CalcPlrInv(pnum, false); - if (pnum == myplr) { + if (pnum == MyPlayerId) { player._pmode = PM_NEWLVL; player._pInvincible = true; PostMessage(WM_DIABRETOWN, 0, 0); @@ -2063,7 +2063,7 @@ void RestartTownLvl(int pnum) void StartWarpLvl(int pnum, int pidx) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; InitLevelChange(pnum); @@ -2075,7 +2075,7 @@ void StartWarpLvl(int pnum, int pidx) } } - if (pnum == myplr) { + if (pnum == MyPlayerId) { SetCurrentPortal(pidx); player._pmode = PM_NEWLVL; player._pInvincible = true; @@ -2091,7 +2091,7 @@ bool PM_DoWalk(int pnum, int variant) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("PM_DoWalk: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; //Play walking sound effect on certain animation frames if (sgOptions.Audio.bWalkingSound && (currlevel != 0 || sgGameInitInfo.bRunInTown == 0)) { @@ -2129,7 +2129,7 @@ bool PM_DoWalk(int pnum, int variant) } //Update the "camera" tile position - if (pnum == myplr && ScrollInfo._sdir != SDIR_NONE) { + if (pnum == MyPlayerId && ScrollInfo._sdir != SDIR_NONE) { ViewX = player.position.tile.x - ScrollInfo.tile.x; ViewY = player.position.tile.y - ScrollInfo.tile.y; } @@ -2156,7 +2156,7 @@ bool PM_DoWalk(int pnum, int variant) static bool WeaponDurDecay(int pnum, int ii) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (!player.InvBody[ii].isEmpty() && player.InvBody[ii]._iClass == ICLASS_WEAPON && (player.InvBody[ii]._iDamAcFlags & ISPLHF_DECAY) != 0) { player.InvBody[ii]._iPLDam -= 5; @@ -2173,7 +2173,7 @@ static bool WeaponDurDecay(int pnum, int ii) bool WeaponDur(int pnum, int durrnd) { - if (pnum != myplr) { + if (pnum != MyPlayerId) { return false; } @@ -2189,7 +2189,7 @@ bool WeaponDur(int pnum, int durrnd) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("WeaponDur: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (!player.InvBody[INVLOC_HAND_LEFT].isEmpty() && player.InvBody[INVLOC_HAND_LEFT]._iClass == ICLASS_WEAPON) { if (player.InvBody[INVLOC_HAND_LEFT]._iDurability == DUR_INDESTRUCTIBLE) { @@ -2258,7 +2258,7 @@ bool PlrHitMonst(int pnum, int m) if ((DWORD)m >= MAXMONSTERS) { app_fatal("PlrHitMonst: illegal monster %i", m); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; if ((Monsters[m]._mhitpoints >> 6) <= 0) { return false; @@ -2397,7 +2397,7 @@ bool PlrHitMonst(int pnum, int m) if (adjacentDamage) dam >>= 2; - if (pnum == myplr) { + if (pnum == MyPlayerId) { if ((player.pDamAcFlags & ISPLHF_PERIL) != 0) { dam2 += player._pIGetHit << 6; if (dam2 >= 0) { @@ -2490,7 +2490,7 @@ bool PlrHitPlr(int pnum, int8_t p) if ((DWORD)p >= MAX_PLRS) { app_fatal("PlrHitPlr: illegal target player %i", p); } - auto &target = plr[p]; + auto &target = Players[p]; if (target._pInvincible) { return false; @@ -2503,7 +2503,7 @@ bool PlrHitPlr(int pnum, int8_t p) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("PlrHitPlr: illegal attacking player %i", pnum); } - auto &attacker = plr[pnum]; + auto &attacker = Players[pnum]; int hit = GenerateRnd(100); @@ -2567,7 +2567,7 @@ bool PlrHitPlr(int pnum, int8_t p) } drawhpflag = true; } - if (pnum == myplr) { + if (pnum == MyPlayerId) { NetSendCmdDamage(true, p, skdam); } StartPlrHit(p, skdam, false); @@ -2598,7 +2598,7 @@ bool PM_DoAttack(int pnum) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("PM_DoAttack: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (player.AnimInfo.CurrentFrame == player._pAFNum - 1) { PlaySfxLoc(PS_SWING, player.position.tile); @@ -2701,7 +2701,7 @@ bool PM_DoRangeAttack(int pnum) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("PM_DoRangeAttack: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; int arrows = 0; if (player.AnimInfo.CurrentFrame == player._pAFNum) { @@ -2768,14 +2768,14 @@ bool PM_DoRangeAttack(int pnum) void ShieldDur(int pnum) { - if (pnum != myplr) { + if (pnum != MyPlayerId) { return; } if ((DWORD)pnum >= MAX_PLRS) { app_fatal("ShieldDur: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (player.InvBody[INVLOC_HAND_LEFT]._itype == ITYPE_SHIELD) { if (player.InvBody[INVLOC_HAND_LEFT]._iDurability == DUR_INDESTRUCTIBLE) { @@ -2807,7 +2807,7 @@ bool PM_DoBlock(int pnum) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("PM_DoBlock: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (player.AnimInfo.CurrentFrame >= player._pBFrames) { StartStand(pnum, player._pdir); @@ -2827,14 +2827,14 @@ static void ArmorDur(int pnum) int a; ItemStruct *pi; - if (pnum != myplr) { + if (pnum != MyPlayerId) { return; } if ((DWORD)pnum >= MAX_PLRS) { app_fatal("ArmorDur: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (player.InvBody[INVLOC_CHEST].isEmpty() && player.InvBody[INVLOC_HEAD].isEmpty()) { return; @@ -2876,7 +2876,7 @@ bool PM_DoSpell(int pnum) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("PM_DoSpell: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; int currentSpellFrame = leveltype != DTYPE_TOWN ? player.AnimInfo.CurrentFrame : ((player.AnimInfo.CurrentFrame * player.AnimInfo.TicksPerFrame) + player.AnimInfo.TickCounterOfCurrentFrame); if (currentSpellFrame == (player._pSFNum + 1)) { @@ -2908,7 +2908,7 @@ bool PM_DoGotHit(int pnum) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("PM_DoGotHit: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (player.AnimInfo.CurrentFrame >= player._pHFrames) { StartStand(pnum, player._pdir); @@ -2928,13 +2928,13 @@ bool PM_DoDeath(int pnum) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("PM_DoDeath: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (player.deathFrame >= 2 * player._pDFrames) { - if (deathdelay > 1 && pnum == myplr) { + if (deathdelay > 1 && pnum == MyPlayerId) { deathdelay--; if (deathdelay == 1) { - deathflag = true; + MyPlayerIsDead = true; if (!gbIsMultiplayer) { gamemenu_on(); } @@ -2958,7 +2958,7 @@ void CheckNewPath(int pnum, bool pmWillBeCalled) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("CheckNewPath: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; int x = 0; int y = 0; @@ -2970,14 +2970,14 @@ void CheckNewPath(int pnum, bool pmWillBeCalled) } if (player.destAction == ACTION_ATTACKPLR) { - auto &target = plr[player.destParam1]; + auto &target = Players[player.destParam1]; MakePlrPath(pnum, target.position.future, false); } Direction d; if (player.walkpath[0] != WALK_NONE) { if (player._pmode == PM_STAND) { - if (pnum == myplr) { + if (pnum == MyPlayerId) { if (player.destAction == ACTION_ATTACKMON || player.destAction == ACTION_ATTACKPLR) { if (player.destAction == ACTION_ATTACKMON) { @@ -2985,7 +2985,7 @@ void CheckNewPath(int pnum, bool pmWillBeCalled) y = abs(player.position.future.y - Monsters[i].position.future.y); d = GetDirection(player.position.future, Monsters[i].position.future); } else { - auto &target = plr[player.destParam1]; + auto &target = Players[player.destParam1]; x = abs(player.position.future.x - target.position.future.x); y = abs(player.position.future.y - target.position.future.y); d = GetDirection(player.position.future, target.position.future); @@ -3076,7 +3076,7 @@ void CheckNewPath(int pnum, bool pmWillBeCalled) } break; case ACTION_ATTACKPLR: { - auto &target = plr[player.destParam1]; + auto &target = Players[player.destParam1]; x = abs(player.position.tile.x - target.position.future.x); y = abs(player.position.tile.y - target.position.future.y); if (x <= 1 && y <= 1) { @@ -3098,7 +3098,7 @@ void CheckNewPath(int pnum, bool pmWillBeCalled) } break; case ACTION_RATTACKPLR: { - auto &target = plr[player.destParam1]; + auto &target = Players[player.destParam1]; d = GetDirection(player.position.future, target.position.future); StartRangeAttack(pnum, d, target.position.future.x, target.position.future.y); @@ -3120,7 +3120,7 @@ void CheckNewPath(int pnum, bool pmWillBeCalled) player._pVar4 = player.destParam2; break; case ACTION_SPELLPLR: { - auto &target = plr[player.destParam1]; + auto &target = Players[player.destParam1]; d = GetDirection(player.position.tile, target.position.future); StartSpell(pnum, d, target.position.future.x, target.position.future.y); player._pVar4 = player.destParam2; @@ -3166,28 +3166,28 @@ void CheckNewPath(int pnum, bool pmWillBeCalled) } break; case ACTION_PICKUPITEM: - if (pnum == myplr) { + if (pnum == MyPlayerId) { i = player.destParam1; x = abs(player.position.tile.x - Items[i].position.x); y = abs(player.position.tile.y - Items[i].position.y); if (x <= 1 && y <= 1 && pcurs == CURSOR_HAND && !Items[i]._iRequest) { - NetSendCmdGItem(true, CMD_REQUESTGITEM, myplr, myplr, i); + NetSendCmdGItem(true, CMD_REQUESTGITEM, MyPlayerId, MyPlayerId, i); Items[i]._iRequest = true; } } break; case ACTION_PICKUPAITEM: - if (pnum == myplr) { + if (pnum == MyPlayerId) { i = player.destParam1; x = abs(player.position.tile.x - Items[i].position.x); y = abs(player.position.tile.y - Items[i].position.y); if (x <= 1 && y <= 1 && pcurs == CURSOR_HAND) { - NetSendCmdGItem(true, CMD_REQUESTAGITEM, myplr, myplr, i); + NetSendCmdGItem(true, CMD_REQUESTAGITEM, MyPlayerId, MyPlayerId, i); } } break; case ACTION_TALK: - if (pnum == myplr) { + if (pnum == MyPlayerId) { TalkToTowner(player, player.destParam1); } break; @@ -3216,7 +3216,7 @@ void CheckNewPath(int pnum, bool pmWillBeCalled) } player.destAction = ACTION_NONE; } else if (player.destAction == ACTION_ATTACKPLR) { - auto &target = plr[player.destParam1]; + auto &target = Players[player.destParam1]; x = abs(player.position.tile.x - target.position.future.x); y = abs(player.position.tile.y - target.position.future.y); if (x <= 1 && y <= 1) { @@ -3251,7 +3251,7 @@ void CheckNewPath(int pnum, bool pmWillBeCalled) StartRangeAttack(pnum, d, Monsters[i].position.future.x, Monsters[i].position.future.y); player.destAction = ACTION_NONE; } else if (player.destAction == ACTION_RATTACKPLR) { - auto &target = plr[player.destParam1]; + auto &target = Players[player.destParam1]; d = GetDirection(player.position.tile, target.position.future); StartRangeAttack(pnum, d, target.position.future.x, target.position.future.y); player.destAction = ACTION_NONE; @@ -3270,7 +3270,7 @@ void CheckNewPath(int pnum, bool pmWillBeCalled) StartSpell(pnum, d, Monsters[i].position.future.x, Monsters[i].position.future.y); player.destAction = ACTION_NONE; } else if (player.destAction == ACTION_SPELLPLR) { - auto &target = plr[player.destParam1]; + auto &target = Players[player.destParam1]; d = GetDirection(player.position.tile, target.position.future); StartSpell(pnum, d, target.position.future.x, target.position.future.y); player.destAction = ACTION_NONE; @@ -3280,14 +3280,14 @@ void CheckNewPath(int pnum, bool pmWillBeCalled) bool PlrDeathModeOK(int p) { - if (p != myplr) { + if (p != MyPlayerId) { return true; } if ((DWORD)p >= MAX_PLRS) { app_fatal("PlrDeathModeOK: illegal player %i", p); } - auto &player = plr[p]; + auto &player = Players[p]; if (player._pmode == PM_DEATH) { return true; @@ -3304,10 +3304,10 @@ bool PlrDeathModeOK(int p) void ValidatePlayer() { - if ((DWORD)myplr >= MAX_PLRS) { - app_fatal("ValidatePlayer: illegal player %i", myplr); + if ((DWORD)MyPlayerId >= MAX_PLRS) { + app_fatal("ValidatePlayer: illegal player %i", MyPlayerId); } - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (myPlayer._pLevel > MAXCHARLEVEL - 1) myPlayer._pLevel = MAXCHARLEVEL - 1; @@ -3388,10 +3388,10 @@ static void CheckCheatStats(PlayerStruct &player) void ProcessPlayers() { - if ((DWORD)myplr >= MAX_PLRS) { - app_fatal("ProcessPlayers: illegal player %i", myplr); + if ((DWORD)MyPlayerId >= MAX_PLRS) { + app_fatal("ProcessPlayers: illegal player %i", MyPlayerId); } - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (myPlayer.pLvlLoad > 0) { myPlayer.pLvlLoad--; @@ -3422,15 +3422,15 @@ void ProcessPlayers() ValidatePlayer(); for (int pnum = 0; pnum < MAX_PLRS; pnum++) { - auto &player = plr[pnum]; - if (player.plractive && currlevel == player.plrlevel && (pnum == myplr || !player._pLvlChanging)) { + auto &player = Players[pnum]; + if (player.plractive && currlevel == player.plrlevel && (pnum == MyPlayerId || !player._pLvlChanging)) { CheckCheatStats(player); if (!PlrDeathModeOK(pnum) && (player._pHitPoints >> 6) <= 0) { SyncPlrKill(pnum, -1); } - if (pnum == myplr) { + if (pnum == MyPlayerId) { if ((player._pIFlags & ISPL_DRAINLIFE) != 0 && currlevel != 0) { ApplyPlrDamage(pnum, 0, 0, 4); } @@ -3504,7 +3504,7 @@ bool PosOkPlayer(int pnum, Point position) if (p != pnum && p >= 0 && p < MAX_PLRS - && plr[p]._pHitPoints != 0) { + && Players[p]._pHitPoints != 0) { return false; } } @@ -3541,7 +3541,7 @@ void MakePlrPath(int pnum, Point targetPosition, bool endspace) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("MakePlrPath: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (player.position.future == targetPosition) { return; @@ -3574,10 +3574,10 @@ void CheckPlrSpell() bool addflag = false; int sl; - if ((DWORD)myplr >= MAX_PLRS) { - app_fatal("CheckPlrSpell: illegal player %i", myplr); + if ((DWORD)MyPlayerId >= MAX_PLRS) { + app_fatal("CheckPlrSpell: illegal player %i", MyPlayerId); } - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; spell_id rspell = myPlayer._pRSpell; if (rspell == SPL_INVALID) { @@ -3613,7 +3613,7 @@ void CheckPlrSpell() switch (myPlayer._pRSplType) { case RSPLTYPE_SKILL: case RSPLTYPE_SPELL: - addflag = CheckSpell(myplr, rspell, myPlayer._pRSplType, false); + addflag = CheckSpell(MyPlayerId, rspell, myPlayer._pRSplType, false); break; case RSPLTYPE_SCROLL: addflag = UseScroll(); @@ -3628,16 +3628,16 @@ void CheckPlrSpell() if (addflag) { if (myPlayer._pRSpell == SPL_FIREWALL || myPlayer._pRSpell == SPL_LIGHTWALL) { Direction sd = GetDirection(myPlayer.position.tile, { cursmx, cursmy }); - sl = GetSpellLevel(myplr, myPlayer._pRSpell); + sl = GetSpellLevel(MyPlayerId, myPlayer._pRSpell); NetSendCmdLocParam3(true, CMD_SPELLXYD, { cursmx, cursmy }, myPlayer._pRSpell, sd, sl); } else if (pcursmonst != -1) { - sl = GetSpellLevel(myplr, myPlayer._pRSpell); + sl = GetSpellLevel(MyPlayerId, myPlayer._pRSpell); NetSendCmdParam3(true, CMD_SPELLID, pcursmonst, myPlayer._pRSpell, sl); } else if (pcursplr != -1) { - sl = GetSpellLevel(myplr, myPlayer._pRSpell); + sl = GetSpellLevel(MyPlayerId, myPlayer._pRSpell); NetSendCmdParam3(true, CMD_SPELLPID, pcursplr, myPlayer._pRSpell, sl); } else { //145 - sl = GetSpellLevel(myplr, myPlayer._pRSpell); + sl = GetSpellLevel(MyPlayerId, myPlayer._pRSpell); NetSendCmdLocParam2(true, CMD_SPELLXY, { cursmx, cursmy }, myPlayer._pRSpell, sl); } return; @@ -3653,7 +3653,7 @@ void SyncPlrAnim(int pnum) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("SyncPlrAnim: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; player_graphic graphic; switch (player._pmode) { @@ -3676,7 +3676,7 @@ void SyncPlrAnim(int pnum) break; case PM_SPELL: graphic = player_graphic::Fire; - if (pnum == myplr) { + if (pnum == MyPlayerId) { switch (spelldata[player._pSpell].sType) { case STYPE_FIRE: graphic = player_graphic::Fire; @@ -3705,7 +3705,7 @@ void SyncPlrAnim(int pnum) void SyncInitPlrPos(int pnum) { - auto &player = plr[pnum]; + auto &player = Players[pnum]; if (!gbIsMultiplayer || player.plrlevel != currlevel) { return; @@ -3737,7 +3737,7 @@ void SyncInitPlrPos(int pnum) player.position.tile = position; dPlayer[position.x][position.y] = pnum + 1; - if (pnum == myplr) { + if (pnum == MyPlayerId) { player.position.future = position; ViewX = position.x; ViewY = position.y; @@ -3749,7 +3749,7 @@ void SyncInitPlr(int pnum) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("SyncInitPlr: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; SetPlrAnims(player); SyncInitPlrPos(pnum); @@ -3797,7 +3797,7 @@ void ModifyPlrStr(int p, int l) if ((DWORD)p >= MAX_PLRS) { app_fatal("ModifyPlrStr: illegal player %i", p); } - auto &player = plr[p]; + auto &player = Players[p]; int max = player.GetMaximumAttributeValue(CharacterAttribute::Strength); if (player._pBaseStr + l > max) { @@ -3815,7 +3815,7 @@ void ModifyPlrStr(int p, int l) CalcPlrInv(p, true); - if (p == myplr) { + if (p == MyPlayerId) { NetSendCmdParam1(false, CMD_SETSTR, player._pBaseStr); } } @@ -3825,7 +3825,7 @@ void ModifyPlrMag(int p, int l) if ((DWORD)p >= MAX_PLRS) { app_fatal("ModifyPlrMag: illegal player %i", p); } - auto &player = plr[p]; + auto &player = Players[p]; int max = player.GetMaximumAttributeValue(CharacterAttribute::Magic); if (player._pBaseMag + l > max) { @@ -3851,7 +3851,7 @@ void ModifyPlrMag(int p, int l) CalcPlrInv(p, true); - if (p == myplr) { + if (p == MyPlayerId) { NetSendCmdParam1(false, CMD_SETMAG, player._pBaseMag); } } @@ -3861,7 +3861,7 @@ void ModifyPlrDex(int p, int l) if ((DWORD)p >= MAX_PLRS) { app_fatal("ModifyPlrDex: illegal player %i", p); } - auto &player = plr[p]; + auto &player = Players[p]; int max = player.GetMaximumAttributeValue(CharacterAttribute::Dexterity); if (player._pBaseDex + l > max) { @@ -3876,7 +3876,7 @@ void ModifyPlrDex(int p, int l) player._pDamageMod = player._pLevel * (player._pDexterity + player._pStrength) / 200; } - if (p == myplr) { + if (p == MyPlayerId) { NetSendCmdParam1(false, CMD_SETDEX, player._pBaseDex); } } @@ -3886,7 +3886,7 @@ void ModifyPlrVit(int p, int l) if ((DWORD)p >= MAX_PLRS) { app_fatal("ModifyPlrVit: illegal player %i", p); } - auto &player = plr[p]; + auto &player = Players[p]; int max = player.GetMaximumAttributeValue(CharacterAttribute::Vitality); if (player._pBaseVit + l > max) { @@ -3908,7 +3908,7 @@ void ModifyPlrVit(int p, int l) CalcPlrInv(p, true); - if (p == myplr) { + if (p == MyPlayerId) { NetSendCmdParam1(false, CMD_SETVIT, player._pBaseVit); } } @@ -3918,12 +3918,12 @@ void SetPlayerHitPoints(int pnum, int val) if ((DWORD)pnum >= MAX_PLRS) { app_fatal("SetPlayerHitPoints: illegal player %i", pnum); } - auto &player = plr[pnum]; + auto &player = Players[pnum]; player._pHitPoints = val; player._pHPBase = val + player._pMaxHPBase - player._pMaxHP; - if (pnum == myplr) { + if (pnum == MyPlayerId) { drawhpflag = true; } } @@ -3935,7 +3935,7 @@ void SetPlrStr(int p, int v) if ((DWORD)p >= MAX_PLRS) { app_fatal("SetPlrStr: illegal player %i", p); } - auto &player = plr[p]; + auto &player = Players[p]; player._pBaseStr = v; CalcPlrInv(p, true); @@ -3956,7 +3956,7 @@ void SetPlrMag(int p, int v) if ((DWORD)p >= MAX_PLRS) { app_fatal("SetPlrMag: illegal player %i", p); } - auto &player = plr[p]; + auto &player = Players[p]; player._pBaseMag = v; @@ -3979,7 +3979,7 @@ void SetPlrDex(int p, int v) if ((DWORD)p >= MAX_PLRS) { app_fatal("SetPlrDex: illegal player %i", p); } - auto &player = plr[p]; + auto &player = Players[p]; player._pBaseDex = v; CalcPlrInv(p, true); @@ -4000,7 +4000,7 @@ void SetPlrVit(int p, int v) if ((DWORD)p >= MAX_PLRS) { app_fatal("SetPlrVit: illegal player %i", p); } - auto &player = plr[p]; + auto &player = Players[p]; player._pBaseVit = v; @@ -4032,10 +4032,10 @@ enum { void PlayDungMsgs() { - if ((DWORD)myplr >= MAX_PLRS) { - app_fatal("PlayDungMsgs: illegal player %i", myplr); + if ((DWORD)MyPlayerId >= MAX_PLRS) { + app_fatal("PlayDungMsgs: illegal player %i", MyPlayerId); } - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (currlevel == 1 && !myPlayer._pLvlVisited[1] && !gbIsMultiplayer && (myPlayer.pDungMsgs & DungMsgCathedral) == 0) { myPlayer.Say(HeroSpeech::TheSanctityOfThisPlaceHasBeenFouled, 40); diff --git a/Source/player.h b/Source/player.h index 9835b12d3..dc3099b29 100644 --- a/Source/player.h +++ b/Source/player.h @@ -434,10 +434,10 @@ struct PlayerStruct { } }; -extern int myplr; -extern PlayerStruct plr[MAX_PLRS]; -extern bool deathflag; -extern int ToBlkTbl[enum_size::value]; +extern int MyPlayerId; +extern PlayerStruct Players[MAX_PLRS]; +extern bool MyPlayerIsDead; +extern int BlockBonuses[enum_size::value]; void LoadPlrGFX(PlayerStruct &player, player_graphic graphic); void InitPlayerGFX(PlayerStruct &player); diff --git a/Source/plrmsg.cpp b/Source/plrmsg.cpp index 03a03162d..550dc17bb 100644 --- a/Source/plrmsg.cpp +++ b/Source/plrmsg.cpp @@ -70,9 +70,9 @@ void SendPlrMsg(int pnum, const char *pszStr) plr_msg_slot = (plr_msg_slot + 1) & (PMSG_COUNT - 1); pMsg->player = pnum; pMsg->time = SDL_GetTicks(); - assert(strlen(plr[pnum]._pName) < PLR_NAME_LEN); + assert(strlen(Players[pnum]._pName) < PLR_NAME_LEN); assert(strlen(pszStr) < MAX_SEND_STR_LEN); - strcpy(pMsg->str, fmt::format(_(/* TRANSLATORS: Shown if player presses "v" button. {:s} is player name, {:d} is level, {:s} is location */ "{:s} (lvl {:d}): {:s}"), plr[pnum]._pName, plr[pnum]._pLevel, pszStr).c_str()); + strcpy(pMsg->str, fmt::format(_(/* TRANSLATORS: Shown if player presses "v" button. {:s} is player name, {:d} is level, {:s} is location */ "{:s} (lvl {:d}): {:s}"), Players[pnum]._pName, Players[pnum]._pLevel, pszStr).c_str()); } void ClearPlrMsg() diff --git a/Source/portal.cpp b/Source/portal.cpp index 714e0d453..52aa9bdaf 100644 --- a/Source/portal.cpp +++ b/Source/portal.cpp @@ -138,7 +138,7 @@ void GetPortalLevel() if (currlevel != 0) { setlevel = false; currlevel = 0; - plr[myplr].plrlevel = 0; + Players[MyPlayerId].plrlevel = 0; leveltype = DTYPE_TOWN; return; } @@ -147,16 +147,16 @@ void GetPortalLevel() setlevel = true; setlvlnum = (_setlevels)portal[portalindex].level; currlevel = portal[portalindex].level; - plr[myplr].plrlevel = setlvlnum; + Players[MyPlayerId].plrlevel = setlvlnum; leveltype = portal[portalindex].ltype; } else { setlevel = false; currlevel = portal[portalindex].level; - plr[myplr].plrlevel = currlevel; + Players[MyPlayerId].plrlevel = currlevel; leveltype = portal[portalindex].ltype; } - if (portalindex == myplr) { + if (portalindex == MyPlayerId) { NetSendCmd(true, CMD_DEACTIVATEPORTAL); DeactivatePortal(portalindex); } @@ -171,7 +171,7 @@ void GetPortalLvlPos() ViewX = portal[portalindex].position.x; ViewY = portal[portalindex].position.y; - if (portalindex != myplr) { + if (portalindex != MyPlayerId) { ViewX++; ViewY++; } diff --git a/Source/qol/autopickup.cpp b/Source/qol/autopickup.cpp index b249962de..25c86227c 100644 --- a/Source/qol/autopickup.cpp +++ b/Source/qol/autopickup.cpp @@ -12,7 +12,7 @@ namespace { bool HasRoomForGold() { - for (int idx : plr[myplr].InvGrid) { + for (int idx : Players[MyPlayerId].InvGrid) { // Secondary item cell. No need to check those as we'll go through the main item cells anyway. if (idx < 0) continue; @@ -22,7 +22,7 @@ bool HasRoomForGold() return true; // Main item cell. Potentially a gold pile so check it. - auto item = plr[myplr].InvList[idx - 1]; + auto item = Players[MyPlayerId].InvList[idx - 1]; if (item._itype == ITYPE_GOLD && item._ivalue < MaxGold) return true; } @@ -37,7 +37,7 @@ void AutoGoldPickup(int pnum) if (!sgOptions.Gameplay.bAutoGoldPickup) return; - if (pnum != myplr) + if (pnum != MyPlayerId) return; if (leveltype == DTYPE_TOWN) return; @@ -45,8 +45,8 @@ void AutoGoldPickup(int pnum) return; for (int dir = 0; dir < 8; dir++) { - int x = plr[pnum].position.tile.x + pathxdir[dir]; - int y = plr[pnum].position.tile.y + pathydir[dir]; + int x = Players[pnum].position.tile.x + pathxdir[dir]; + int y = Players[pnum].position.tile.y + pathydir[dir]; if (dItem[x][y] != 0) { int itemIndex = dItem[x][y] - 1; if (Items[itemIndex]._itype == ITYPE_GOLD) { diff --git a/Source/qol/itemlabels.cpp b/Source/qol/itemlabels.cpp index 5c72f9a3d..a8ff0be06 100644 --- a/Source/qol/itemlabels.cpp +++ b/Source/qol/itemlabels.cpp @@ -149,7 +149,7 @@ void DrawItemNameLabels(const Surface &out) ItemStruct &itm = Items[label.id]; if (MousePosition.x >= label.pos.x && MousePosition.x < label.pos.x + label.width && MousePosition.y >= label.pos.y - Height + MarginY && MousePosition.y < label.pos.y + MarginY) { - if (!gmenu_is_active() && PauseMode == 0 && !deathflag && IsMouseOverGameArea()) { + if (!gmenu_is_active() && PauseMode == 0 && !MyPlayerIsDead && IsMouseOverGameArea()) { isLabelHighlighted = true; cursmx = itm.position.x; cursmy = itm.position.y; diff --git a/Source/qol/xpbar.cpp b/Source/qol/xpbar.cpp index 4f24e9e35..da20a3eee 100644 --- a/Source/qol/xpbar.cpp +++ b/Source/qol/xpbar.cpp @@ -70,7 +70,7 @@ void DrawXPBar(const Surface &out) if (!sgOptions.Gameplay.bExperienceBar) return; - const auto &player = plr[myplr]; + const auto &player = Players[MyPlayerId]; const int backX = PANEL_LEFT + PANEL_WIDTH / 2 - 155; const int backY = PANEL_TOP + PANEL_HEIGHT - 11; @@ -121,7 +121,7 @@ bool CheckXPBarInfo() if (MousePosition.x < backX || MousePosition.x >= backX + BackWidth || MousePosition.y < backY || MousePosition.y >= backY + BackHeight) return false; - const auto &player = plr[myplr]; + const auto &player = Players[MyPlayerId]; const int charLevel = player._pLevel; diff --git a/Source/quests.cpp b/Source/quests.cpp index 488d82a03..48afdcf58 100644 --- a/Source/quests.cpp +++ b/Source/quests.cpp @@ -215,7 +215,7 @@ void CheckQuests() quests[Q_BETRAYER].position.y = 2 * quests[Q_BETRAYER].position.y + 16; int rportx = quests[Q_BETRAYER].position.x; int rporty = quests[Q_BETRAYER].position.y; - AddMissile({ rportx, rporty }, { rportx, rporty }, 0, MIS_RPORTAL, TARGET_MONSTERS, myplr, 0, 0); + AddMissile({ rportx, rporty }, { rportx, rporty }, 0, MIS_RPORTAL, TARGET_MONSTERS, MyPlayerId, 0, 0); quests[Q_BETRAYER]._qvar2 = 1; if (quests[Q_BETRAYER]._qactive == QUEST_ACTIVE) { quests[Q_BETRAYER]._qvar1 = 3; @@ -228,7 +228,7 @@ void CheckQuests() && quests[Q_BETRAYER]._qvar2 == 4) { int rportx = 35; int rporty = 32; - AddMissile({ rportx, rporty }, { rportx, rporty }, 0, MIS_RPORTAL, TARGET_MONSTERS, myplr, 0, 0); + AddMissile({ rportx, rporty }, { rportx, rporty }, 0, MIS_RPORTAL, TARGET_MONSTERS, MyPlayerId, 0, 0); quests[Q_BETRAYER]._qvar2 = 3; } @@ -239,21 +239,21 @@ void CheckQuests() && ActiveMonsterCount == 4 && quests[Q_PWATER]._qactive != QUEST_DONE) { quests[Q_PWATER]._qactive = QUEST_DONE; - PlaySfxLoc(IS_QUESTDN, plr[myplr].position.tile); + PlaySfxLoc(IS_QUESTDN, Players[MyPlayerId].position.tile); LoadPalette("Levels\\L3Data\\L3pwater.pal", false); UpdatePWaterPalette(); WaterDone = 32; } - } else if (plr[myplr]._pmode == PM_STAND) { + } else if (Players[MyPlayerId]._pmode == PM_STAND) { for (auto &quest : quests) { if (currlevel == quest._qlevel && quest._qslvl != 0 && quest._qactive != QUEST_NOTAVAIL - && plr[myplr].position.tile == quest.position) { + && Players[MyPlayerId].position.tile == quest.position) { if (quest._qlvltype != DTYPE_NONE) { setlvltype = quest._qlvltype; } - StartNewLvl(myplr, WM_DIABSETLVL, quest._qslvl); + StartNewLvl(MyPlayerId, WM_DIABSETLVL, quest._qslvl); } } } @@ -308,21 +308,21 @@ void CheckQuestKill(int m, bool sendmsg) if (Monsters[m].MType->mtype == MT_SKING) { quests[Q_SKELKING]._qactive = QUEST_DONE; - plr[myplr].Say(HeroSpeech::RestWellLeoricIllFindYourSon, 30); + Players[MyPlayerId].Say(HeroSpeech::RestWellLeoricIllFindYourSon, 30); if (sendmsg) NetSendCmdQuest(true, Q_SKELKING); } else if (Monsters[m].MType->mtype == MT_CLEAVER) { quests[Q_BUTCHER]._qactive = QUEST_DONE; - plr[myplr].Say(HeroSpeech::TheSpiritsOfTheDeadAreNowAvenged, 30); + Players[MyPlayerId].Say(HeroSpeech::TheSpiritsOfTheDeadAreNowAvenged, 30); if (sendmsg) NetSendCmdQuest(true, Q_BUTCHER); } else if (Monsters[m]._uniqtype - 1 == UMT_GARBUD) { //"Gharbad the Weak" quests[Q_GARBUD]._qactive = QUEST_DONE; - plr[myplr].Say(HeroSpeech::ImNotImpressed, 30); + Players[MyPlayerId].Say(HeroSpeech::ImNotImpressed, 30); } else if (Monsters[m]._uniqtype - 1 == UMT_ZHAR) { //"Zhar the Mad" quests[Q_ZHAR]._qactive = QUEST_DONE; - plr[myplr].Say(HeroSpeech::ImSorryDidIBreakYourConcentration, 30); + Players[MyPlayerId].Say(HeroSpeech::ImSorryDidIBreakYourConcentration, 30); } else if (Monsters[m]._uniqtype - 1 == UMT_LAZURUS && gbIsMultiplayer) { //"Arch-Bishop Lazarus" quests[Q_BETRAYER]._qactive = QUEST_DONE; quests[Q_BETRAYER]._qvar1 = 7; @@ -337,7 +337,7 @@ void CheckQuestKill(int m, bool sendmsg) } } } - plr[myplr].Say(HeroSpeech::YourMadnessEndsHereBetrayer, 30); + Players[MyPlayerId].Say(HeroSpeech::YourMadnessEndsHereBetrayer, 30); if (sendmsg) { NetSendCmdQuest(true, Q_BETRAYER); NetSendCmdQuest(true, Q_DIABLO); @@ -348,11 +348,11 @@ void CheckQuestKill(int m, bool sendmsg) quests[Q_BETRAYER]._qvar1 = 7; quests[Q_BETRAYER]._qvar2 = 4; quests[Q_DIABLO]._qactive = QUEST_ACTIVE; - AddMissile({ 35, 32 }, { 35, 32 }, 0, MIS_RPORTAL, TARGET_MONSTERS, myplr, 0, 0); - plr[myplr].Say(HeroSpeech::YourMadnessEndsHereBetrayer, 30); + AddMissile({ 35, 32 }, { 35, 32 }, 0, MIS_RPORTAL, TARGET_MONSTERS, MyPlayerId, 0, 0); + Players[MyPlayerId].Say(HeroSpeech::YourMadnessEndsHereBetrayer, 30); } else if (Monsters[m]._uniqtype - 1 == UMT_WARLORD) { //"Warlord of Blood" quests[Q_WARLORD]._qactive = QUEST_DONE; - plr[myplr].Say(HeroSpeech::YourReignOfPainHasEnded, 30); + Players[MyPlayerId].Say(HeroSpeech::YourReignOfPainHasEnded, 30); } } diff --git a/Source/scrollrt.cpp b/Source/scrollrt.cpp index c71b442b1..ea29f90fb 100644 --- a/Source/scrollrt.cpp +++ b/Source/scrollrt.cpp @@ -317,7 +317,7 @@ static void UndrawCursor(const Surface &out) static bool ShouldShowCursor() { - return !(sgbControllerActive && !IsMovingMouseCursorWithController() && pcurs != CURSOR_TELEPORT && !invflag && (!chrflag || plr[myplr]._pStatPts <= 0)); + return !(sgbControllerActive && !IsMovingMouseCursorWithController() && pcurs != CURSOR_TELEPORT && !invflag && (!chrflag || Players[MyPlayerId]._pStatPts <= 0)); } /** @@ -458,7 +458,7 @@ static void DrawMonster(const Surface &out, int x, int y, int mx, int my, int m) trans = Monsters[m]._uniqtrans + 4; if (Monsters[m]._mmode == MM_STONE) trans = 2; - if (plr[myplr]._pInfraFlag && LightTableIndex > 8) + if (Players[MyPlayerId]._pInfraFlag && LightTableIndex > 8) trans = 1; if (trans != 0) Cl2DrawLightTbl(out, mx, my, cel, nCel, trans); @@ -471,14 +471,14 @@ static void DrawMonster(const Surface &out, int x, int y, int mx, int my, int m) */ static void DrawPlayerIconHelper(const Surface &out, int pnum, missile_graphic_id missileGraphicId, int x, int y, bool lighting) { - x += CalculateWidth2(plr[pnum].AnimInfo.pCelSprite->Width()) - misfiledata[missileGraphicId].mAnimWidth2[0]; + x += CalculateWidth2(Players[pnum].AnimInfo.pCelSprite->Width()) - misfiledata[missileGraphicId].mAnimWidth2[0]; int width = misfiledata[missileGraphicId].mAnimWidth[0]; byte *pCelBuff = misfiledata[missileGraphicId].mAnimData[0]; CelSprite cel { pCelBuff, width }; - if (pnum == myplr) { + if (pnum == MyPlayerId) { Cl2Draw(out, x, y, cel, 1); return; } @@ -501,9 +501,9 @@ static void DrawPlayerIconHelper(const Surface &out, int pnum, missile_graphic_i */ static void DrawPlayerIcons(const Surface &out, int pnum, int x, int y, bool lighting) { - if (plr[pnum].pManaShield) + if (Players[pnum].pManaShield) DrawPlayerIconHelper(out, pnum, MFILE_MANASHLD, x, y, lighting); - if (plr[pnum].wReflections > 0) + if (Players[pnum].wReflections > 0) DrawPlayerIconHelper(out, pnum, MFILE_REFLECT, x, y + 16, lighting); } @@ -521,11 +521,11 @@ static void DrawPlayerIcons(const Surface &out, int pnum, int x, int y, bool lig */ static void DrawPlayer(const Surface &out, int pnum, int x, int y, int px, int py) { - if ((dFlags[x][y] & BFLAG_LIT) == 0 && !plr[myplr]._pInfraFlag && leveltype != DTYPE_TOWN) { + if ((dFlags[x][y] & BFLAG_LIT) == 0 && !Players[MyPlayerId]._pInfraFlag && leveltype != DTYPE_TOWN) { return; } - auto &player = plr[pnum]; + auto &player = Players[pnum]; auto *pCelSprite = player.AnimInfo.pCelSprite; int nCel = player.AnimInfo.GetFrameToUseForRendering(); @@ -554,13 +554,13 @@ static void DrawPlayer(const Surface &out, int pnum, int x, int y, int px, int p if (pnum == pcursplr) Cl2DrawOutline(out, 165, px, py, *pCelSprite, nCel); - if (pnum == myplr) { + if (pnum == MyPlayerId) { Cl2Draw(out, px, py, *pCelSprite, nCel); DrawPlayerIcons(out, pnum, px, py, true); return; } - if ((dFlags[x][y] & BFLAG_LIT) == 0 || (plr[myplr]._pInfraFlag && LightTableIndex > 8)) { + if ((dFlags[x][y] & BFLAG_LIT) == 0 || (Players[MyPlayerId]._pInfraFlag && LightTableIndex > 8)) { Cl2DrawLightTbl(out, px, py, *pCelSprite, nCel, 1); DrawPlayerIcons(out, pnum, px, py, true); return; @@ -591,7 +591,7 @@ void DrawDeadPlayer(const Surface &out, int x, int y, int sx, int sy) dFlags[x][y] &= ~BFLAG_DEAD_PLAYER; for (int i = 0; i < MAX_PLRS; i++) { - auto &player = plr[i]; + auto &player = Players[i]; if (player.plractive && player._pHitPoints == 0 && player.plrlevel == (BYTE)currlevel && player.position.tile.x == x && player.position.tile.y == y) { dFlags[x][y] |= BFLAG_DEAD_PLAYER; int px = sx + player.position.offset.deltaX - CalculateWidth2(player.AnimInfo.pCelSprite == nullptr ? 96 : player.AnimInfo.pCelSprite->Width()); @@ -784,7 +784,7 @@ static void DrawMonsterHelper(const Surface &out, int x, int y, int oy, int sx, return; } - if ((dFlags[x][y] & BFLAG_LIT) == 0 && !plr[myplr]._pInfraFlag) + if ((dFlags[x][y] & BFLAG_LIT) == 0 && !Players[MyPlayerId]._pInfraFlag) return; if (mi < 0 || mi >= MAXMONSTERS) { @@ -834,7 +834,7 @@ static void DrawPlayerHelper(const Surface &out, int x, int y, int sx, int sy) Log("draw player: tried to draw illegal player {}", p); return; } - auto &player = plr[p]; + auto &player = Players[p]; Displacement offset = player.position.offset; if (player.IsWalking()) { @@ -1270,7 +1270,7 @@ static void DrawGame(const Surface &fullOut, int x, int y) : fullOut.subregionY(0, (gnViewportHeight + 1) / 2); // Adjust by player offset and tile grid alignment - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; Displacement offset = ScrollInfo.offset; if (myPlayer.IsWalking()) offset = GetOffsetForWalking(myPlayer.AnimInfo, myPlayer._pdir, true); @@ -1392,7 +1392,7 @@ void DrawView(const Surface &out, int startX, int startY) } else if (questlog) { DrawQuestLog(out); } - if (!chrflag && plr[myplr]._pStatPts != 0 && !spselflag + if (!chrflag && Players[MyPlayerId]._pStatPts != 0 && !spselflag && (!questlog || gnScreenHeight >= SPANEL_HEIGHT + PANEL_HEIGHT + 74 || gnScreenWidth >= 4 * SPANEL_WIDTH)) { DrawLevelUpIcon(out); } @@ -1414,7 +1414,7 @@ void DrawView(const Surface &out, int startX, int startY) if (msgflag != EMSG_NONE) { DrawDiabloMsg(out); } - if (deathflag) { + if (MyPlayerIsDead) { RedBack(out); } else if (PauseMode != 0) { gmenu_draw_pause(out); diff --git a/Source/spells.cpp b/Source/spells.cpp index e459ca180..b2cf53f51 100644 --- a/Source/spells.cpp +++ b/Source/spells.cpp @@ -68,24 +68,24 @@ void UseMana(int id, spell_id sn) { int ma; // mana cost - if (id == myplr) { - switch (plr[id]._pSplType) { + if (id == MyPlayerId) { + switch (Players[id]._pSplType) { case RSPLTYPE_SKILL: case RSPLTYPE_INVALID: break; case RSPLTYPE_SCROLL: - RemoveScroll(plr[id]); + RemoveScroll(Players[id]); break; case RSPLTYPE_CHARGES: - UseStaffCharge(plr[id]); + UseStaffCharge(Players[id]); break; case RSPLTYPE_SPELL: #ifdef _DEBUG if (!debug_mode_key_inverted_v) { #endif - ma = GetManaAmount(plr[id], sn); - plr[id]._pMana -= ma; - plr[id]._pManaBase -= ma; + ma = GetManaAmount(Players[id], sn); + Players[id]._pMana -= ma; + Players[id]._pManaBase -= ma; drawmanaflag = true; #ifdef _DEBUG } @@ -172,16 +172,16 @@ bool CheckSpell(int id, spell_id sn, spell_type st, bool manaonly) return false; } - auto &player = plr[id]; + auto &player = Players[id]; return player._pMana >= GetManaAmount(player, sn); } void CastSpell(int id, int spl, int sx, int sy, int dx, int dy, int spllvl) { - Direction dir = plr[id]._pdir; + Direction dir = Players[id]._pdir; if (spl == SPL_FIREWALL || spl == SPL_LIGHTWALL) { - dir = plr[id].tempDirection; + dir = Players[id].tempDirection; } for (int i = 0; spelldata[spl].sMissiles[i] != MIS_NULL && i < 3; i++) { @@ -203,9 +203,9 @@ static void PlacePlayer(int pnum) { Point newPosition = {}; - if (plr[pnum].plrlevel == currlevel) { + if (Players[pnum].plrlevel == currlevel) { for (int i = 0; i < 8; i++) { - newPosition = plr[pnum].position.tile + Displacement { plrxoff2[i], plryoff2[i] }; + newPosition = Players[pnum].position.tile + Displacement { plrxoff2[i], plryoff2[i] }; if (PosOkPlayer(pnum, newPosition)) { break; } @@ -217,10 +217,10 @@ static void PlacePlayer(int pnum) int min = -1; for (int max = 1; min > -50 && !done; max++, min--) { for (int y = min; y <= max && !done; y++) { - newPosition.y = plr[pnum].position.tile.y + y; + newPosition.y = Players[pnum].position.tile.y + y; for (int x = min; x <= max && !done; x++) { - newPosition.x = plr[pnum].position.tile.x + x; + newPosition.x = Players[pnum].position.tile.x + x; if (PosOkPlayer(pnum, newPosition)) { done = true; @@ -230,11 +230,11 @@ static void PlacePlayer(int pnum) } } - plr[pnum].position.tile = newPosition; + Players[pnum].position.tile = newPosition; dPlayer[newPosition.x][newPosition.y] = pnum + 1; - if (pnum == myplr) { + if (pnum == MyPlayerId) { ViewX = newPosition.x; ViewY = newPosition.y; } @@ -250,57 +250,57 @@ void DoResurrect(int pnum, int rid) int hp; if ((char)rid != -1) { - AddMissile(plr[rid].position.tile, plr[rid].position.tile, 0, MIS_RESURRECTBEAM, TARGET_MONSTERS, pnum, 0, 0); + AddMissile(Players[rid].position.tile, Players[rid].position.tile, 0, MIS_RESURRECTBEAM, TARGET_MONSTERS, pnum, 0, 0); } - if (pnum == myplr) { + if (pnum == MyPlayerId) { NewCursor(CURSOR_HAND); } - if ((char)rid != -1 && plr[rid]._pHitPoints == 0) { - if (rid == myplr) { - deathflag = false; + if ((char)rid != -1 && Players[rid]._pHitPoints == 0) { + if (rid == MyPlayerId) { + MyPlayerIsDead = false; gamemenu_off(); drawhpflag = true; drawmanaflag = true; } - ClrPlrPath(plr[rid]); - plr[rid].destAction = ACTION_NONE; - plr[rid]._pInvincible = false; + ClrPlrPath(Players[rid]); + Players[rid].destAction = ACTION_NONE; + Players[rid]._pInvincible = false; PlacePlayer(rid); hp = 10 << 6; - if (plr[rid]._pMaxHPBase < (10 << 6)) { - hp = plr[rid]._pMaxHPBase; + if (Players[rid]._pMaxHPBase < (10 << 6)) { + hp = Players[rid]._pMaxHPBase; } SetPlayerHitPoints(rid, hp); - plr[rid]._pHPBase = plr[rid]._pHitPoints + (plr[rid]._pMaxHPBase - plr[rid]._pMaxHP); // CODEFIX: does the same stuff as SetPlayerHitPoints above, can be removed - plr[rid]._pMana = 0; - plr[rid]._pManaBase = plr[rid]._pMana + (plr[rid]._pMaxManaBase - plr[rid]._pMaxMana); + Players[rid]._pHPBase = Players[rid]._pHitPoints + (Players[rid]._pMaxHPBase - Players[rid]._pMaxHP); // CODEFIX: does the same stuff as SetPlayerHitPoints above, can be removed + Players[rid]._pMana = 0; + Players[rid]._pManaBase = Players[rid]._pMana + (Players[rid]._pMaxManaBase - Players[rid]._pMaxMana); CalcPlrInv(rid, true); - if (plr[rid].plrlevel == currlevel) { - StartStand(rid, plr[rid]._pdir); + if (Players[rid].plrlevel == currlevel) { + StartStand(rid, Players[rid]._pdir); } else { - plr[rid]._pmode = PM_STAND; + Players[rid]._pmode = PM_STAND; } } } void DoHealOther(int pnum, uint16_t rid) { - if (pnum == myplr) { + if (pnum == MyPlayerId) { NewCursor(CURSOR_HAND); } if ((DWORD)pnum >= MAX_PLRS || rid >= MAX_PLRS) { return; } - auto &player = plr[pnum]; - auto &target = plr[rid]; + auto &player = Players[pnum]; + auto &target = Players[rid]; if ((target._pHitPoints >> 6) <= 0) { return; @@ -325,7 +325,7 @@ void DoHealOther(int pnum, uint16_t rid) target._pHitPoints = std::min(target._pHitPoints + hp, target._pMaxHP); target._pHPBase = std::min(target._pHPBase + hp, target._pMaxHPBase); - if (rid == myplr) { + if (rid == MyPlayerId) { drawhpflag = true; } } diff --git a/Source/stores.cpp b/Source/stores.cpp index 8c99c70f7..59c9aeb3c 100644 --- a/Source/stores.cpp +++ b/Source/stores.cpp @@ -199,9 +199,9 @@ void PrintStoreItem(ItemStruct *x, int l, uint16_t flags) void StoreAutoPlace() { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; - if (AutoEquipEnabled(myPlayer, myPlayer.HoldItem) && AutoEquip(myplr, myPlayer.HoldItem)) { + if (AutoEquipEnabled(myPlayer, myPlayer.HoldItem) && AutoEquip(MyPlayerId, myPlayer.HoldItem)) { return; } @@ -262,7 +262,7 @@ void StartSmithBuy() stextsval = 0; /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ - strcpy(tempstr, fmt::format(_("I have these items for sale: Your gold: {:d}"), plr[myplr]._pGold).c_str()); + strcpy(tempstr, fmt::format(_("I have these items for sale: Your gold: {:d}"), Players[MyPlayerId]._pGold).c_str()); AddSText(0, 1, tempstr, UIS_GOLD | UIS_CENTER, false); AddSLine(3); @@ -326,7 +326,7 @@ bool StartSmithPremiumBuy() stextsval = 0; /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ - strcpy(tempstr, fmt::format(_("I have these premium items for sale: Your gold: {:d}"), plr[myplr]._pGold).c_str()); + strcpy(tempstr, fmt::format(_("I have these premium items for sale: Your gold: {:d}"), Players[MyPlayerId]._pGold).c_str()); AddSText(0, 1, tempstr, UIS_GOLD | UIS_CENTER, false); AddSLine(3); @@ -348,9 +348,9 @@ bool SmithSellOk(int i) ItemStruct *pI; if (i >= 0) { - pI = &plr[myplr].InvList[i]; + pI = &Players[MyPlayerId].InvList[i]; } else { - pI = &plr[myplr].SpdList[-(i + 1)]; + pI = &Players[MyPlayerId].SpdList[-(i + 1)]; } if (pI->isEmpty()) @@ -415,7 +415,7 @@ void StartSmithSell() item._itype = ITYPE_NONE; } - const auto &myPlayer = plr[myplr]; + const auto &myPlayer = Players[MyPlayerId]; for (int i = 0; i < myPlayer._pNumInv; i++) { if (storenumh >= 48) @@ -482,7 +482,7 @@ void StartSmithSell() bool SmithRepairOk(int i) { - const auto &myPlayer = plr[myplr]; + const auto &myPlayer = Players[MyPlayerId]; if (myPlayer.InvList[i].isEmpty()) return false; @@ -506,7 +506,7 @@ void StartSmithRepair() item._itype = ITYPE_NONE; } - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; auto &helmet = myPlayer.InvBody[INVLOC_HEAD]; if (!helmet.isEmpty() && helmet._iDurability != helmet._iMaxDur) { @@ -575,7 +575,7 @@ void FillManaPlayer() if (!sgOptions.Gameplay.bAdriaRefillsMana) return; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (myPlayer._pMana != myPlayer._pMaxMana) { PlaySFX(IS_CAST8); @@ -637,7 +637,7 @@ void StartWitchBuy() stextsmax = 20; /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ - strcpy(tempstr, fmt::format(_("I have these items for sale: Your gold: {:d}"), plr[myplr]._pGold).c_str()); + strcpy(tempstr, fmt::format(_("I have these items for sale: Your gold: {:d}"), Players[MyPlayerId]._pGold).c_str()); AddSText(0, 1, tempstr, UIS_GOLD | UIS_CENTER, false); AddSLine(3); @@ -662,9 +662,9 @@ bool WitchSellOk(int i) bool rv = false; if (i >= 0) - pI = &plr[myplr].InvList[i]; + pI = &Players[MyPlayerId].InvList[i]; else - pI = &plr[myplr].SpdList[-(i + 1)]; + pI = &Players[MyPlayerId].SpdList[-(i + 1)]; if (pI->_itype == ITYPE_MISC) rv = true; @@ -691,7 +691,7 @@ void StartWitchSell() item._itype = ITYPE_NONE; } - const auto &myPlayer = plr[myplr]; + const auto &myPlayer = Players[MyPlayerId]; for (int i = 0; i < myPlayer._pNumInv; i++) { if (storenumh >= 48) @@ -758,7 +758,7 @@ void StartWitchSell() bool WitchRechargeOk(int i) { - const auto &item = plr[myplr].InvList[i]; + const auto &item = Players[MyPlayerId].InvList[i]; if (item._itype == ITYPE_STAFF && item._iCharges != item._iMaxCharges) { return true; @@ -791,7 +791,7 @@ void StartWitchRecharge() item._itype = ITYPE_NONE; } - const auto &myPlayer = plr[myplr]; + const auto &myPlayer = Players[MyPlayerId]; const auto &leftHand = myPlayer.InvBody[INVLOC_HAND_LEFT]; if ((leftHand._itype == ITYPE_STAFF || leftHand._iMiscId == IMISC_UNIQUE) && leftHand._iCharges != leftHand._iMaxCharges) { @@ -860,7 +860,7 @@ void StoreConfirm() stextscrl = false; ClearSText(5, 23); - auto &item = plr[myplr].HoldItem; + auto &item = Players[MyPlayerId].HoldItem; uint16_t iclr = item.getTextColorWithStatCheck(); @@ -942,7 +942,7 @@ void SStartBoyBuy() stextscrl = false; /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ - strcpy(tempstr, fmt::format(_("I have this item for sale: Your gold: {:d}"), plr[myplr]._pGold).c_str()); + strcpy(tempstr, fmt::format(_("I have this item for sale: Your gold: {:d}"), Players[MyPlayerId]._pGold).c_str()); AddSText(0, 1, tempstr, UIS_GOLD | UIS_CENTER, false); AddSLine(3); @@ -965,7 +965,7 @@ void SStartBoyBuy() void HealPlayer() { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (myPlayer._pHitPoints != myPlayer._pMaxHP) { PlaySFX(IS_CAST8); @@ -1019,7 +1019,7 @@ void StartHealerBuy() stextsval = 0; /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ - strcpy(tempstr, fmt::format(_("I have these items for sale: Your gold: {:d}"), plr[myplr]._pGold).c_str()); + strcpy(tempstr, fmt::format(_("I have these items for sale: Your gold: {:d}"), Players[MyPlayerId]._pGold).c_str()); AddSText(0, 1, tempstr, UIS_GOLD | UIS_CENTER, false); AddSLine(3); @@ -1079,7 +1079,7 @@ void StartStorytellerIdentify() item._itype = ITYPE_NONE; } - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; auto &helmet = myPlayer.InvBody[INVLOC_HEAD]; if (IdItemOk(&helmet)) { @@ -1168,7 +1168,7 @@ void StartStorytellerIdentifyShow() stextscrl = false; ClearSText(5, 23); - auto &item = plr[myplr].HoldItem; + auto &item = Players[MyPlayerId].HoldItem; uint16_t iclr = item.getTextColorWithStatCheck(); @@ -1294,7 +1294,7 @@ void SmithEnter() */ void SmithBuyItem() { - auto &item = plr[myplr].HoldItem; + auto &item = Players[MyPlayerId].HoldItem; TakePlrsMoney(item._iIvalue); if (item._iMagical == ITEM_QUALITY_NORMAL) @@ -1309,7 +1309,7 @@ void SmithBuyItem() } smithitem[idx]._itype = ITYPE_NONE; } - CalcPlrInv(myplr, true); + CalcPlrInv(MyPlayerId, true); } void SmitBuyEnter() @@ -1324,7 +1324,7 @@ void SmitBuyEnter() stextvhold = stextsval; stextshold = STORE_SBUY; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; int idx = stextsval + ((stextsel - stextup) / 4); if (myPlayer._pGold < smithitem[idx]._iIvalue) { @@ -1335,7 +1335,7 @@ void SmitBuyEnter() myPlayer.HoldItem = smithitem[idx]; NewCursor(myPlayer.HoldItem._iCurs + CURSOR_FIRSTITEM); - bool done = AutoEquipEnabled(myPlayer, myPlayer.HoldItem) && AutoEquip(myplr, myPlayer.HoldItem, false); + bool done = AutoEquipEnabled(myPlayer, myPlayer.HoldItem) && AutoEquip(MyPlayerId, myPlayer.HoldItem, false); if (done || AutoPlaceItemInInventory(myPlayer, myPlayer.HoldItem, false)) StartStore(STORE_CONFIRM); @@ -1349,7 +1349,7 @@ void SmitBuyEnter() */ void SmithBuyPItem() { - auto &item = plr[myplr].HoldItem; + auto &item = Players[MyPlayerId].HoldItem; TakePlrsMoney(item._iIvalue); @@ -1369,7 +1369,7 @@ void SmithBuyPItem() premiumitems[xx]._itype = ITYPE_NONE; numpremium--; - SpawnPremium(myplr); + SpawnPremium(MyPlayerId); } void SmitPremiumBuyEnter() @@ -1393,7 +1393,7 @@ void SmitPremiumBuyEnter() } } - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (myPlayer._pGold < premiumitems[idx]._iIvalue) { StartStore(STORE_NOMONEY); @@ -1402,7 +1402,7 @@ void SmitPremiumBuyEnter() myPlayer.HoldItem = premiumitems[idx]; NewCursor(myPlayer.HoldItem._iCurs + CURSOR_FIRSTITEM); - bool done = AutoEquipEnabled(myPlayer, myPlayer.HoldItem) && AutoEquip(myplr, myPlayer.HoldItem, false); + bool done = AutoEquipEnabled(myPlayer, myPlayer.HoldItem) && AutoEquip(MyPlayerId, myPlayer.HoldItem, false); if (done || AutoPlaceItemInInventory(myPlayer, myPlayer.HoldItem, false)) StartStore(STORE_CONFIRM); @@ -1426,7 +1426,7 @@ bool StoreGoldFit(int idx) if (numsqrs >= sz) return true; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; for (int8_t itemId : myPlayer.InvGrid) { if (itemId == 0) @@ -1456,12 +1456,12 @@ bool StoreGoldFit(int idx) */ void PlaceStoreGold(int v) { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; for (auto &gridNum : myPlayer.InvGrid) { if (gridNum == 0) { int ii = myPlayer._pNumInv; - GetGoldSeed(myplr, &golditem); + GetGoldSeed(MyPlayerId, &golditem); myPlayer.InvList[ii] = golditem; myPlayer._pNumInv++; gridNum = myPlayer._pNumInv; @@ -1477,7 +1477,7 @@ void PlaceStoreGold(int v) */ void StoreSellItem() { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; int idx = stextvhold + ((stextlhold - stextup) / 4); if (storehidx[idx] >= 0) @@ -1529,7 +1529,7 @@ void SmitSellEnter() int idx = stextsval + ((stextsel - stextup) / 4); stextshold = STORE_SSELL; stextvhold = stextsval; - plr[myplr].HoldItem = storehold[idx]; + Players[MyPlayerId].HoldItem = storehold[idx]; if (StoreGoldFit(idx)) StartStore(STORE_CONFIRM); @@ -1542,7 +1542,7 @@ void SmitSellEnter() */ void SmithRepairItem() { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; TakePlrsMoney(myPlayer.HoldItem._iIvalue); @@ -1580,7 +1580,7 @@ void SmitRepairEnter() int idx = stextsval + ((stextsel - stextup) / 4); - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; myPlayer.HoldItem = storehold[idx]; if (myPlayer._pGold < storehold[idx]._iIvalue) @@ -1620,7 +1620,7 @@ void WitchEnter() */ void WitchBuyItem() { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; int idx = stextvhold + ((stextlhold - stextup) / 4); @@ -1641,7 +1641,7 @@ void WitchBuyItem() } } - CalcPlrInv(myplr, true); + CalcPlrInv(MyPlayerId, true); } void WitchBuyEnter() @@ -1656,7 +1656,7 @@ void WitchBuyEnter() stextvhold = stextsval; stextshold = STORE_WBUY; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; int idx = stextsval + ((stextsel - stextup) / 4); @@ -1667,7 +1667,7 @@ void WitchBuyEnter() myPlayer.HoldItem = witchitem[idx]; NewCursor(myPlayer.HoldItem._iCurs + CURSOR_FIRSTITEM); - bool done = AutoEquipEnabled(myPlayer, myPlayer.HoldItem) && AutoEquip(myplr, myPlayer.HoldItem, false); + bool done = AutoEquipEnabled(myPlayer, myPlayer.HoldItem) && AutoEquip(MyPlayerId, myPlayer.HoldItem, false); if (done || AutoPlaceItemInInventory(myPlayer, myPlayer.HoldItem, false) || AutoPlaceItemInBelt(myPlayer, myPlayer.HoldItem, false)) StartStore(STORE_CONFIRM); @@ -1690,7 +1690,7 @@ void WitchSellEnter() stextvhold = stextsval; int idx = stextsval + ((stextsel - stextup) / 4); - plr[myplr].HoldItem = storehold[idx]; + Players[MyPlayerId].HoldItem = storehold[idx]; if (StoreGoldFit(idx)) StartStore(STORE_CONFIRM); else @@ -1702,7 +1702,7 @@ void WitchSellEnter() */ void WitchRechargeItem() { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; TakePlrsMoney(myPlayer.HoldItem._iIvalue); @@ -1715,7 +1715,7 @@ void WitchRechargeItem() else myPlayer.InvList[i]._iCharges = myPlayer.InvList[i]._iMaxCharges; - CalcPlrInv(myplr, true); + CalcPlrInv(MyPlayerId, true); } void WitchRechargeEnter() @@ -1730,7 +1730,7 @@ void WitchRechargeEnter() stextlhold = stextsel; stextvhold = stextsval; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; int idx = stextsval + ((stextsel - stextup) / 4); myPlayer.HoldItem = storehold[idx]; @@ -1743,7 +1743,7 @@ void WitchRechargeEnter() void BoyEnter() { if (!boyitem.isEmpty() && stextsel == 18) { - if (plr[myplr]._pGold < 50) { + if (Players[MyPlayerId]._pGold < 50) { stextshold = STORE_BOY; stextlhold = 18; stextvhold = stextsval; @@ -1770,11 +1770,11 @@ void BoyEnter() void BoyBuyItem() { - TakePlrsMoney(plr[myplr].HoldItem._iIvalue); + TakePlrsMoney(Players[MyPlayerId].HoldItem._iIvalue); StoreAutoPlace(); boyitem._itype = ITYPE_NONE; stextshold = STORE_BOY; - CalcPlrInv(myplr, true); + CalcPlrInv(MyPlayerId, true); stextlhold = 12; } @@ -1783,7 +1783,7 @@ void BoyBuyItem() */ void HealerBuyItem() { - auto &item = plr[myplr].HoldItem; + auto &item = Players[MyPlayerId].HoldItem; int idx = stextvhold + ((stextlhold - stextup) / 4); if (!gbIsMultiplayer) { @@ -1815,7 +1815,7 @@ void HealerBuyItem() } healitem[idx]._itype = ITYPE_NONE; } - CalcPlrInv(myplr, true); + CalcPlrInv(MyPlayerId, true); } void BoyBuyEnter() @@ -1834,7 +1834,7 @@ void BoyBuyEnter() else price += boyitem._iIvalue / 2; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (myPlayer._pGold < price) { StartStore(STORE_NOMONEY); @@ -1846,7 +1846,7 @@ void BoyBuyEnter() NewCursor(myPlayer.HoldItem._iCurs + CURSOR_FIRSTITEM); bool done = false; - if (AutoEquipEnabled(myPlayer, myPlayer.HoldItem) && AutoEquip(myplr, myPlayer.HoldItem, false)) { + if (AutoEquipEnabled(myPlayer, myPlayer.HoldItem) && AutoEquip(MyPlayerId, myPlayer.HoldItem, false)) { done = true; } @@ -1861,7 +1861,7 @@ void BoyBuyEnter() void StorytellerIdentifyItem() { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; int idx = storehidx[((stextlhold - stextup) / 4) + stextvhold]; if (idx < 0) { @@ -1884,7 +1884,7 @@ void StorytellerIdentifyItem() } myPlayer.HoldItem._iIdentified = true; TakePlrsMoney(myPlayer.HoldItem._iIvalue); - CalcPlrInv(myplr, true); + CalcPlrInv(MyPlayerId, true); } void ConfirmEnter() @@ -1972,7 +1972,7 @@ void HealerBuyEnter() int idx = stextsval + ((stextsel - stextup) / 4); - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (myPlayer._pGold < healitem[idx]._iIvalue) { StartStore(STORE_NOMONEY); @@ -1982,7 +1982,7 @@ void HealerBuyEnter() myPlayer.HoldItem = healitem[idx]; NewCursor(myPlayer.HoldItem._iCurs + CURSOR_FIRSTITEM); - bool done = AutoEquipEnabled(myPlayer, myPlayer.HoldItem) && AutoEquip(myplr, myPlayer.HoldItem, false); + bool done = AutoEquipEnabled(myPlayer, myPlayer.HoldItem) && AutoEquip(MyPlayerId, myPlayer.HoldItem, false); if (done || AutoPlaceItemInInventory(myPlayer, myPlayer.HoldItem, false) || AutoPlaceItemInBelt(myPlayer, myPlayer.HoldItem, false)) StartStore(STORE_CONFIRM); @@ -2024,7 +2024,7 @@ void StorytellerIdentifyEnter() stextlhold = stextsel; stextvhold = stextsval; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; int idx = stextsval + ((stextsel - stextup) / 4); myPlayer.HoldItem = storehold[idx]; @@ -2214,7 +2214,7 @@ void SetupTownStores() { SetRndSeed(glSeedTbl[currlevel] * SDL_GetTicks()); - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; int l = myPlayer._pLevel / 2; if (!gbIsMultiplayer) { @@ -2231,7 +2231,7 @@ void SetupTownStores() SpawnWitch(l); SpawnHealer(l); SpawnBoy(myPlayer._pLevel); - SpawnPremium(myplr); + SpawnPremium(MyPlayerId); } void FreeStoreMem() @@ -2648,7 +2648,7 @@ void StoreNext() void TakePlrsMoney(int cost) { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; myPlayer._pGold -= cost; diff --git a/Source/sync.cpp b/Source/sync.cpp index 90f1fdf2c..1cb032276 100644 --- a/Source/sync.cpp +++ b/Source/sync.cpp @@ -23,7 +23,7 @@ void SyncOneMonster() { for (int i = 0; i < ActiveMonsterCount; i++) { int m = ActiveMonsters[i]; - sgnMonsterPriority[m] = plr[myplr].position.tile.ManhattanDistance(Monsters[m].position.tile); + sgnMonsterPriority[m] = Players[MyPlayerId].position.tile.ManhattanDistance(Monsters[m].position.tile); if (Monsters[m]._msquelch == 0) { sgnMonsterPriority[m] += 0x1000; } else if (sgwLRU[m] != 0) { @@ -131,7 +131,7 @@ void SyncPlrInv(TSyncHeader *pHdr) } assert(sgnSyncPInv > -1 && sgnSyncPInv < NUM_INVLOC); - pItem = &plr[myplr].InvBody[sgnSyncPInv]; + pItem = &Players[MyPlayerId].InvBody[sgnSyncPInv]; if (!pItem->isEmpty()) { pHdr->bPInvLoc = sgnSyncPInv; pHdr->wPInvIndx = pItem->IDidx; @@ -197,12 +197,12 @@ static void SyncMonster(int pnum, const TSyncMonster *p) return; } - uint32_t delta = plr[myplr].position.tile.ManhattanDistance(Monsters[ndx].position.tile); + uint32_t delta = Players[MyPlayerId].position.tile.ManhattanDistance(Monsters[ndx].position.tile); if (delta > 255) { delta = 255; } - if (delta < p->_mdelta || (delta == p->_mdelta && pnum > myplr)) { + if (delta < p->_mdelta || (delta == p->_mdelta && pnum > MyPlayerId)) { return; } if (Monsters[ndx].position.future.x == p->_mx && Monsters[ndx].position.future.y == p->_my) { @@ -251,7 +251,7 @@ uint32_t sync_update(int pnum, const byte *pbBuf) if (gbBufferMsgs == 1) { return pHdr->wLen + sizeof(*pHdr); } - if (pnum == myplr) { + if (pnum == MyPlayerId) { return pHdr->wLen + sizeof(*pHdr); } @@ -270,7 +270,7 @@ uint32_t sync_update(int pnum, const byte *pbBuf) void sync_init() { - sgnMonsters = 16 * myplr; + sgnMonsters = 16 * MyPlayerId; memset(sgwLRU, 255, sizeof(sgwLRU)); } diff --git a/Source/town.cpp b/Source/town.cpp index 22b166cf8..3e1b8d113 100644 --- a/Source/town.cpp +++ b/Source/town.cpp @@ -168,14 +168,14 @@ void DrlgTPass3() FillSector("Levels\\TownData\\Sector4s.DUN", 0, 0); if (gbIsSpawn || !gbIsMultiplayer) { - if (gbIsSpawn || ((plr[myplr].pTownWarps & 1) == 0 && (!gbIsHellfire || plr[myplr]._pLevel < 10))) { + if (gbIsSpawn || ((Players[MyPlayerId].pTownWarps & 1) == 0 && (!gbIsHellfire || Players[MyPlayerId]._pLevel < 10))) { FillTile(48, 20, 320); } - if (gbIsSpawn || ((plr[myplr].pTownWarps & 2) == 0 && (!gbIsHellfire || plr[myplr]._pLevel < 15))) { + if (gbIsSpawn || ((Players[MyPlayerId].pTownWarps & 2) == 0 && (!gbIsHellfire || Players[MyPlayerId]._pLevel < 15))) { FillTile(16, 68, 332); FillTile(16, 70, 331); } - if (gbIsSpawn || ((plr[myplr].pTownWarps & 4) == 0 && (!gbIsHellfire || plr[myplr]._pLevel < 20))) { + if (gbIsSpawn || ((Players[MyPlayerId].pTownWarps & 4) == 0 && (!gbIsHellfire || Players[MyPlayerId]._pLevel < 20))) { for (int x = 36; x < 46; x++) { FillTile(x, 78, GenerateRnd(4) + 1); } @@ -188,7 +188,7 @@ void DrlgTPass3() } else { TownCloseHive(); } - if (quests[Q_GRAVE]._qactive == QUEST_DONE || plr[myplr]._pLvlVisited[21]) + if (quests[Q_GRAVE]._qactive == QUEST_DONE || Players[MyPlayerId]._pLvlVisited[21]) TownOpenGrave(); else TownCloseGrave(); diff --git a/Source/towners.cpp b/Source/towners.cpp index f674a3c0b..353909f61 100644 --- a/Source/towners.cpp +++ b/Source/towners.cpp @@ -815,7 +815,7 @@ void InitTowners() continue; break; case TOWN_GIRL: - if (!gbIsHellfire || sgGameInitInfo.bTheoQuest == 0 || !plr->_pLvlVisited[17]) + if (!gbIsHellfire || sgGameInitInfo.bTheoQuest == 0 || !Players->_pLvlVisited[17]) continue; break; default: diff --git a/Source/track.cpp b/Source/track.cpp index 5325911f7..a863f3ac0 100644 --- a/Source/track.cpp +++ b/Source/track.cpp @@ -29,7 +29,7 @@ void track_process() if (cursmx < 0 || cursmx >= MAXDUNX - 1 || cursmy < 0 || cursmy >= MAXDUNY - 1) return; - const auto &player = plr[myplr]; + const auto &player = Players[MyPlayerId]; if (player._pmode != PM_STAND && !(player.IsWalking() && player.AnimInfo.GetFrameToUseForRendering() > 6)) return; @@ -42,7 +42,7 @@ void track_process() tickMultiplier = 3; if ((int)(tick - sgdwLastWalk) >= gnTickDelay * tickMultiplier) { sgdwLastWalk = tick; - NetSendCmdLoc(myplr, true, CMD_WALKXY, { cursmx, cursmy }); + NetSendCmdLoc(MyPlayerId, true, CMD_WALKXY, { cursmx, cursmy }); if (!sgbIsScrolling) sgbIsScrolling = true; } @@ -58,7 +58,7 @@ void track_repeat_walk(bool rep) if (rep) { sgbIsScrolling = false; sgdwLastWalk = SDL_GetTicks() - gnTickDelay; - NetSendCmdLoc(myplr, true, CMD_WALKXY, { cursmx, cursmy }); + NetSendCmdLoc(MyPlayerId, true, CMD_WALKXY, { cursmx, cursmy }); } else if (sgbIsScrolling) { sgbIsScrolling = false; } diff --git a/Source/trigs.cpp b/Source/trigs.cpp index 8c2a3b9fd..a0b7b557f 100644 --- a/Source/trigs.cpp +++ b/Source/trigs.cpp @@ -76,7 +76,7 @@ void InitTownTriggers() townwarp = gbIsMultiplayer && !gbIsSpawn; } if (!gbIsSpawn) { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (gbIsMultiplayer || (myPlayer.pTownWarps & 1) != 0 || (gbIsHellfire && myPlayer._pLevel >= 10)) { townwarps[0] = true; @@ -798,7 +798,7 @@ void CheckTrigForce() void CheckTriggers() { - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; if (myPlayer._pmode != PM_STAND) return; @@ -811,18 +811,18 @@ void CheckTriggers() switch (trigs[i]._tmsg) { case WM_DIABNEXTLVL: if (gbIsSpawn && currlevel >= 2) { - NetSendCmdLoc(myplr, true, CMD_WALKXY, { myPlayer.position.tile.x, myPlayer.position.tile.y + 1 }); + NetSendCmdLoc(MyPlayerId, true, CMD_WALKXY, { myPlayer.position.tile.x, myPlayer.position.tile.y + 1 }); myPlayer.Say(HeroSpeech::NotAChance); InitDiabloMsg(EMSG_NOT_IN_SHAREWARE); } else { - StartNewLvl(myplr, trigs[i]._tmsg, currlevel + 1); + StartNewLvl(MyPlayerId, trigs[i]._tmsg, currlevel + 1); } break; case WM_DIABPREVLVL: - StartNewLvl(myplr, trigs[i]._tmsg, currlevel - 1); + StartNewLvl(MyPlayerId, trigs[i]._tmsg, currlevel - 1); break; case WM_DIABRTNLVL: - StartNewLvl(myplr, trigs[i]._tmsg, ReturnLvl); + StartNewLvl(MyPlayerId, trigs[i]._tmsg, ReturnLvl); break; case WM_DIABTOWNWARP: if (gbIsMultiplayer) { @@ -852,16 +852,16 @@ void CheckTriggers() myPlayer.Say(HeroSpeech::ICantGetThereFromHere); InitDiabloMsg(abortflag); - NetSendCmdLoc(myplr, true, CMD_WALKXY, position); + NetSendCmdLoc(MyPlayerId, true, CMD_WALKXY, position); return; } } - StartNewLvl(myplr, trigs[i]._tmsg, trigs[i]._tlvl); + StartNewLvl(MyPlayerId, trigs[i]._tmsg, trigs[i]._tlvl); break; case WM_DIABTWARPUP: TWarpFrom = currlevel; - StartNewLvl(myplr, trigs[i]._tmsg, 0); + StartNewLvl(MyPlayerId, trigs[i]._tmsg, 0); break; default: app_fatal("Unknown trigger msg"); diff --git a/test/control_test.cpp b/test/control_test.cpp index 5a265243e..83bee6b61 100644 --- a/test/control_test.cpp +++ b/test/control_test.cpp @@ -10,7 +10,7 @@ TEST(Control, SetSpell) pinfoflag = true; pSpell = SPL_FIREBOLT; pSplType = RSPLTYPE_CHARGES; - auto &myPlayer = plr[myplr]; + auto &myPlayer = Players[MyPlayerId]; SetSpell(); EXPECT_EQ(spselflag, false); EXPECT_EQ(myPlayer._pRSpell, SPL_FIREBOLT); diff --git a/test/effects_test.cpp b/test/effects_test.cpp index 83a8f3033..325b340f4 100644 --- a/test/effects_test.cpp +++ b/test/effects_test.cpp @@ -7,7 +7,7 @@ using namespace devilution; TEST(Effects, calc_snd_position_center) { - plr[myplr].position.tile = { 50, 50 }; + Players[MyPlayerId].position.tile = { 50, 50 }; int plVolume = 0; int plPan = 0; EXPECT_EQ(calc_snd_position({ 50, 50 }, &plVolume, &plPan), true); @@ -17,7 +17,7 @@ TEST(Effects, calc_snd_position_center) TEST(Effects, calc_snd_position_near) { - plr[myplr].position.tile = { 50, 50 }; + Players[MyPlayerId].position.tile = { 50, 50 }; int plVolume = 0; int plPan = 0; EXPECT_EQ(calc_snd_position({ 55, 50 }, &plVolume, &plPan), true); @@ -27,7 +27,7 @@ TEST(Effects, calc_snd_position_near) TEST(Effects, calc_snd_position_out_of_range) { - plr[myplr].position.tile = { 12, 12 }; + Players[MyPlayerId].position.tile = { 12, 12 }; int plVolume = 1234; int plPan = 0; EXPECT_EQ(calc_snd_position({ 112, 112 }, &plVolume, &plPan), false); @@ -37,7 +37,7 @@ TEST(Effects, calc_snd_position_out_of_range) TEST(Effects, calc_snd_position_extreme_right) { - plr[myplr].position.tile = { 50, 50 }; + Players[MyPlayerId].position.tile = { 50, 50 }; int plVolume = 0; int plPan = 0; EXPECT_EQ(calc_snd_position({ 75, 25 }, &plVolume, &plPan), true); @@ -47,7 +47,7 @@ TEST(Effects, calc_snd_position_extreme_right) TEST(Effects, calc_snd_position_extreme_left) { - plr[myplr].position.tile = { 50, 50 }; + Players[MyPlayerId].position.tile = { 50, 50 }; int plVolume = 0; int plPan = 0; EXPECT_EQ(calc_snd_position({ 25, 75 }, &plVolume, &plPan), true); diff --git a/test/inv_test.cpp b/test/inv_test.cpp index 246cec819..c82104bb1 100644 --- a/test/inv_test.cpp +++ b/test/inv_test.cpp @@ -11,34 +11,34 @@ void set_up_scroll(ItemStruct &item, spell_id spell) { pcurs = CURSOR_HAND; leveltype = DTYPE_CATACOMBS; - plr[myplr]._pRSpell = static_cast(spell); + Players[MyPlayerId]._pRSpell = static_cast(spell); item._itype = ITYPE_MISC; item._iMiscId = IMISC_SCROLL; item._iSpell = spell; } -/* Clear the inventory of myplr. */ +/* Clear the inventory of MyPlayerId. */ void clear_inventory() { for (int i = 0; i < NUM_INV_GRID_ELEM; i++) { - memset(&plr[myplr].InvList[i], 0, sizeof(ItemStruct)); - plr[myplr].InvGrid[i] = 0; + memset(&Players[MyPlayerId].InvList[i], 0, sizeof(ItemStruct)); + Players[MyPlayerId].InvGrid[i] = 0; } - plr[myplr]._pNumInv = 0; + Players[MyPlayerId]._pNumInv = 0; } // Test that the scroll is used in the inventory in correct conditions TEST(Inv, UseScroll_from_inventory) { - set_up_scroll(plr[myplr].InvList[2], SPL_FIREBOLT); - plr[myplr]._pNumInv = 5; + set_up_scroll(Players[MyPlayerId].InvList[2], SPL_FIREBOLT); + Players[MyPlayerId]._pNumInv = 5; EXPECT_TRUE(UseScroll()); } // Test that the scroll is used in the belt in correct conditions TEST(Inv, UseScroll_from_belt) { - set_up_scroll(plr[myplr].SpdList[2], SPL_FIREBOLT); + set_up_scroll(Players[MyPlayerId].SpdList[2], SPL_FIREBOLT); EXPECT_TRUE(UseScroll()); } @@ -47,27 +47,27 @@ TEST(Inv, UseScroll_from_inventory_invalid_conditions) { // Empty the belt to prevent using a scroll from the belt for (int i = 0; i < MAXBELTITEMS; i++) { - plr[myplr].SpdList[i]._itype = ITYPE_NONE; + Players[MyPlayerId].SpdList[i]._itype = ITYPE_NONE; } - set_up_scroll(plr[myplr].InvList[2], SPL_FIREBOLT); + set_up_scroll(Players[MyPlayerId].InvList[2], SPL_FIREBOLT); pcurs = CURSOR_IDENTIFY; EXPECT_FALSE(UseScroll()); - set_up_scroll(plr[myplr].InvList[2], SPL_FIREBOLT); + set_up_scroll(Players[MyPlayerId].InvList[2], SPL_FIREBOLT); leveltype = DTYPE_TOWN; EXPECT_FALSE(UseScroll()); - set_up_scroll(plr[myplr].InvList[2], SPL_FIREBOLT); - plr[myplr]._pRSpell = static_cast(SPL_HEAL); + set_up_scroll(Players[MyPlayerId].InvList[2], SPL_FIREBOLT); + Players[MyPlayerId]._pRSpell = static_cast(SPL_HEAL); EXPECT_FALSE(UseScroll()); - set_up_scroll(plr[myplr].InvList[2], SPL_FIREBOLT); - plr[myplr].InvList[2]._iMiscId = IMISC_STAFF; + set_up_scroll(Players[MyPlayerId].InvList[2], SPL_FIREBOLT); + Players[MyPlayerId].InvList[2]._iMiscId = IMISC_STAFF; EXPECT_FALSE(UseScroll()); - set_up_scroll(plr[myplr].InvList[2], SPL_FIREBOLT); - plr[myplr].InvList[2]._itype = ITYPE_NONE; + set_up_scroll(Players[MyPlayerId].InvList[2], SPL_FIREBOLT); + Players[MyPlayerId].InvList[2]._itype = ITYPE_NONE; EXPECT_FALSE(UseScroll()); } @@ -75,45 +75,45 @@ TEST(Inv, UseScroll_from_inventory_invalid_conditions) TEST(Inv, UseScroll_from_belt_invalid_conditions) { // Disable the inventory to prevent using a scroll from the inventory - plr[myplr]._pNumInv = 0; + Players[MyPlayerId]._pNumInv = 0; - set_up_scroll(plr[myplr].SpdList[2], SPL_FIREBOLT); + set_up_scroll(Players[MyPlayerId].SpdList[2], SPL_FIREBOLT); pcurs = CURSOR_IDENTIFY; EXPECT_FALSE(UseScroll()); - set_up_scroll(plr[myplr].SpdList[2], SPL_FIREBOLT); + set_up_scroll(Players[MyPlayerId].SpdList[2], SPL_FIREBOLT); leveltype = DTYPE_TOWN; EXPECT_FALSE(UseScroll()); - set_up_scroll(plr[myplr].SpdList[2], SPL_FIREBOLT); - plr[myplr]._pRSpell = static_cast(SPL_HEAL); + set_up_scroll(Players[MyPlayerId].SpdList[2], SPL_FIREBOLT); + Players[MyPlayerId]._pRSpell = static_cast(SPL_HEAL); EXPECT_FALSE(UseScroll()); - set_up_scroll(plr[myplr].SpdList[2], SPL_FIREBOLT); - plr[myplr].SpdList[2]._iMiscId = IMISC_STAFF; + set_up_scroll(Players[MyPlayerId].SpdList[2], SPL_FIREBOLT); + Players[MyPlayerId].SpdList[2]._iMiscId = IMISC_STAFF; EXPECT_FALSE(UseScroll()); - set_up_scroll(plr[myplr].SpdList[2], SPL_FIREBOLT); - plr[myplr].SpdList[2]._itype = ITYPE_NONE; + set_up_scroll(Players[MyPlayerId].SpdList[2], SPL_FIREBOLT); + Players[MyPlayerId].SpdList[2]._itype = ITYPE_NONE; EXPECT_FALSE(UseScroll()); } // Test gold calculation TEST(Inv, CalculateGold) { - plr[myplr]._pNumInv = 10; + Players[MyPlayerId]._pNumInv = 10; // Set up 4 slots of gold in the inventory - plr[myplr].InvList[1]._itype = ITYPE_GOLD; - plr[myplr].InvList[5]._itype = ITYPE_GOLD; - plr[myplr].InvList[2]._itype = ITYPE_GOLD; - plr[myplr].InvList[3]._itype = ITYPE_GOLD; + Players[MyPlayerId].InvList[1]._itype = ITYPE_GOLD; + Players[MyPlayerId].InvList[5]._itype = ITYPE_GOLD; + Players[MyPlayerId].InvList[2]._itype = ITYPE_GOLD; + Players[MyPlayerId].InvList[3]._itype = ITYPE_GOLD; // Set the gold amount to arbitrary values - plr[myplr].InvList[1]._ivalue = 100; - plr[myplr].InvList[5]._ivalue = 200; - plr[myplr].InvList[2]._ivalue = 3; - plr[myplr].InvList[3]._ivalue = 30; + Players[MyPlayerId].InvList[1]._ivalue = 100; + Players[MyPlayerId].InvList[5]._ivalue = 200; + Players[MyPlayerId].InvList[2]._ivalue = 3; + Players[MyPlayerId].InvList[3]._ivalue = 30; - EXPECT_EQ(CalculateGold(plr[myplr]), 333); + EXPECT_EQ(CalculateGold(Players[MyPlayerId]), 333); } // Test automatic gold placing @@ -124,18 +124,18 @@ TEST(Inv, GoldAutoPlace) // Put gold into the inventory: // | 1000 | ... | ... - plr[myplr].InvList[0]._itype = ITYPE_GOLD; - plr[myplr].InvList[0]._ivalue = 1000; - plr[myplr]._pNumInv = 1; + Players[MyPlayerId].InvList[0]._itype = ITYPE_GOLD; + Players[MyPlayerId].InvList[0]._ivalue = 1000; + Players[MyPlayerId]._pNumInv = 1; // Put (max gold - 100) gold, which is 4900, into the player's hand - plr[myplr].HoldItem._itype = ITYPE_GOLD; - plr[myplr].HoldItem._ivalue = GOLD_MAX_LIMIT - 100; + Players[MyPlayerId].HoldItem._itype = ITYPE_GOLD; + Players[MyPlayerId].HoldItem._ivalue = GOLD_MAX_LIMIT - 100; - GoldAutoPlace(plr[myplr]); + GoldAutoPlace(Players[MyPlayerId]); // We expect the inventory: // | 5000 | 900 | ... - EXPECT_EQ(plr[myplr].InvList[0]._ivalue, GOLD_MAX_LIMIT); - EXPECT_EQ(plr[myplr].InvList[1]._ivalue, 900); + EXPECT_EQ(Players[MyPlayerId].InvList[0]._ivalue, GOLD_MAX_LIMIT); + EXPECT_EQ(Players[MyPlayerId].InvList[1]._ivalue, 900); } // Test removing an item from inventory with no other items. @@ -144,15 +144,15 @@ TEST(Inv, RemoveInvItem) clear_inventory(); // Put a two-slot misc item into the inventory: // | (item) | (item) | ... | ... - plr[myplr]._pNumInv = 1; - plr[myplr].InvGrid[0] = 1; - plr[myplr].InvGrid[1] = -1; - plr[myplr].InvList[0]._itype = ITYPE_MISC; - - plr[myplr].RemoveInvItem(0); - EXPECT_EQ(plr[myplr].InvGrid[0], 0); - EXPECT_EQ(plr[myplr].InvGrid[1], 0); - EXPECT_EQ(plr[myplr]._pNumInv, 0); + Players[MyPlayerId]._pNumInv = 1; + Players[MyPlayerId].InvGrid[0] = 1; + Players[MyPlayerId].InvGrid[1] = -1; + Players[MyPlayerId].InvList[0]._itype = ITYPE_MISC; + + Players[MyPlayerId].RemoveInvItem(0); + EXPECT_EQ(Players[MyPlayerId].InvGrid[0], 0); + EXPECT_EQ(Players[MyPlayerId].InvGrid[1], 0); + EXPECT_EQ(Players[MyPlayerId]._pNumInv, 0); } // Test removing an item from inventory with other items in it. @@ -161,20 +161,20 @@ TEST(Inv, RemoveInvItem_other_item) clear_inventory(); // Put a two-slot misc item and a ring into the inventory: // | (item) | (item) | (ring) | ... - plr[myplr]._pNumInv = 2; - plr[myplr].InvGrid[0] = 1; - plr[myplr].InvGrid[1] = -1; - plr[myplr].InvList[0]._itype = ITYPE_MISC; - - plr[myplr].InvGrid[2] = 2; - plr[myplr].InvList[1]._itype = ITYPE_RING; - - plr[myplr].RemoveInvItem(0); - EXPECT_EQ(plr[myplr].InvGrid[0], 0); - EXPECT_EQ(plr[myplr].InvGrid[1], 0); - EXPECT_EQ(plr[myplr].InvGrid[2], 1); - EXPECT_EQ(plr[myplr].InvList[0]._itype, ITYPE_RING); - EXPECT_EQ(plr[myplr]._pNumInv, 1); + Players[MyPlayerId]._pNumInv = 2; + Players[MyPlayerId].InvGrid[0] = 1; + Players[MyPlayerId].InvGrid[1] = -1; + Players[MyPlayerId].InvList[0]._itype = ITYPE_MISC; + + Players[MyPlayerId].InvGrid[2] = 2; + Players[MyPlayerId].InvList[1]._itype = ITYPE_RING; + + Players[MyPlayerId].RemoveInvItem(0); + EXPECT_EQ(Players[MyPlayerId].InvGrid[0], 0); + EXPECT_EQ(Players[MyPlayerId].InvGrid[1], 0); + EXPECT_EQ(Players[MyPlayerId].InvGrid[2], 1); + EXPECT_EQ(Players[MyPlayerId].InvList[0]._itype, ITYPE_RING); + EXPECT_EQ(Players[MyPlayerId]._pNumInv, 1); } // Test removing an item from the belt @@ -182,13 +182,13 @@ TEST(Inv, RemoveSpdBarItem) { // Clear the belt for (int i = 0; i < MAXBELTITEMS; i++) { - plr[myplr].SpdList[i]._itype = ITYPE_NONE; + Players[MyPlayerId].SpdList[i]._itype = ITYPE_NONE; } // Put an item in the belt: | x | x | item | x | x | x | x | x | - plr[myplr].SpdList[3]._itype = ITYPE_MISC; + Players[MyPlayerId].SpdList[3]._itype = ITYPE_MISC; - plr[myplr].RemoveSpdBarItem(3); - EXPECT_EQ(plr[myplr].SpdList[3]._itype, ITYPE_NONE); + Players[MyPlayerId].RemoveSpdBarItem(3); + EXPECT_EQ(Players[MyPlayerId].SpdList[3]._itype, ITYPE_NONE); } // Test removing a scroll from the inventory @@ -197,15 +197,15 @@ TEST(Inv, RemoveScroll_inventory) clear_inventory(); // Put a firebolt scroll into the inventory - plr[myplr]._pNumInv = 1; - plr[myplr]._pRSpell = static_cast(SPL_FIREBOLT); - plr[myplr].InvList[0]._itype = ITYPE_MISC; - plr[myplr].InvList[0]._iMiscId = IMISC_SCROLL; - plr[myplr].InvList[0]._iSpell = SPL_FIREBOLT; - - RemoveScroll(plr[myplr]); - EXPECT_EQ(plr[myplr].InvGrid[0], 0); - EXPECT_EQ(plr[myplr]._pNumInv, 0); + Players[MyPlayerId]._pNumInv = 1; + Players[MyPlayerId]._pRSpell = static_cast(SPL_FIREBOLT); + Players[MyPlayerId].InvList[0]._itype = ITYPE_MISC; + Players[MyPlayerId].InvList[0]._iMiscId = IMISC_SCROLL; + Players[MyPlayerId].InvList[0]._iSpell = SPL_FIREBOLT; + + RemoveScroll(Players[MyPlayerId]); + EXPECT_EQ(Players[MyPlayerId].InvGrid[0], 0); + EXPECT_EQ(Players[MyPlayerId]._pNumInv, 0); } // Test removing a scroll from the belt @@ -213,14 +213,14 @@ TEST(Inv, RemoveScroll_belt) { // Clear the belt for (int i = 0; i < MAXBELTITEMS; i++) { - plr[myplr].SpdList[i]._itype = ITYPE_NONE; + Players[MyPlayerId].SpdList[i]._itype = ITYPE_NONE; } // Put a firebolt scroll into the belt - plr[myplr]._pSpell = static_cast(SPL_FIREBOLT); - plr[myplr].SpdList[3]._itype = ITYPE_MISC; - plr[myplr].SpdList[3]._iMiscId = IMISC_SCROLL; - plr[myplr].SpdList[3]._iSpell = SPL_FIREBOLT; + Players[MyPlayerId]._pSpell = static_cast(SPL_FIREBOLT); + Players[MyPlayerId].SpdList[3]._itype = ITYPE_MISC; + Players[MyPlayerId].SpdList[3]._iMiscId = IMISC_SCROLL; + Players[MyPlayerId].SpdList[3]._iSpell = SPL_FIREBOLT; - RemoveScroll(plr[myplr]); - EXPECT_EQ(plr[myplr].SpdList[3]._itype, ITYPE_NONE); + RemoveScroll(Players[MyPlayerId]); + EXPECT_EQ(Players[MyPlayerId].SpdList[3]._itype, ITYPE_NONE); } diff --git a/test/pack_test.cpp b/test/pack_test.cpp index a44bbef19..9e9262b20 100644 --- a/test/pack_test.cpp +++ b/test/pack_test.cpp @@ -335,8 +335,8 @@ TEST(pack, UnPackItem_diablo) gbIsMultiplayer = false; gbIsSpawn = false; - plr[myplr]._pMaxManaBase = 125 << 6; - plr[myplr]._pMaxHPBase = 125 << 6; + Players[MyPlayerId]._pMaxManaBase = 125 << 6; + Players[MyPlayerId]._pMaxHPBase = 125 << 6; for (size_t i = 0; i < sizeof(PackedDiabloItems) / sizeof(*PackedDiabloItems); i++) { UnPackItem(&PackedDiabloItems[i], &id, false); @@ -406,8 +406,8 @@ TEST(pack, UnPackItem_spawn) gbIsMultiplayer = false; gbIsSpawn = true; - plr[myplr]._pMaxManaBase = 125 << 6; - plr[myplr]._pMaxHPBase = 125 << 6; + Players[MyPlayerId]._pMaxManaBase = 125 << 6; + Players[MyPlayerId]._pMaxHPBase = 125 << 6; for (size_t i = 0; i < sizeof(PackedSpawnItems) / sizeof(*PackedSpawnItems); i++) { UnPackItem(&PackedSpawnItems[i], &id, false); @@ -450,8 +450,8 @@ TEST(pack, UnPackItem_diablo_multiplayer) gbIsMultiplayer = true; gbIsSpawn = false; - plr[myplr]._pMaxManaBase = 125 << 6; - plr[myplr]._pMaxHPBase = 125 << 6; + Players[MyPlayerId]._pMaxManaBase = 125 << 6; + Players[MyPlayerId]._pMaxHPBase = 125 << 6; for (size_t i = 0; i < sizeof(PackedDiabloMPItems) / sizeof(*PackedDiabloMPItems); i++) { UnPackItem(&PackedDiabloMPItems[i], &id, false); @@ -659,8 +659,8 @@ TEST(pack, UnPackItem_hellfire) gbIsMultiplayer = false; gbIsSpawn = false; - plr[myplr]._pMaxManaBase = 125 << 6; - plr[myplr]._pMaxHPBase = 125 << 6; + Players[MyPlayerId]._pMaxManaBase = 125 << 6; + Players[MyPlayerId]._pMaxHPBase = 125 << 6; for (size_t i = 0; i < sizeof(PackedHellfireItems) / sizeof(*PackedHellfireItems); i++) { UnPackItem(&PackedHellfireItems[i], &id, true); diff --git a/test/player_test.cpp b/test/player_test.cpp index f37510b4e..4a0176379 100644 --- a/test/player_test.cpp +++ b/test/player_test.cpp @@ -11,7 +11,7 @@ extern bool PM_DoGotHit(int pnum); int RunBlockTest(int frames, int flags) { int pnum = 0; - auto &player = plr[pnum]; + auto &player = Players[pnum]; player._pHFrames = frames; player._pIFlags = flags; diff --git a/test/writehero_test.cpp b/test/writehero_test.cpp index 4e6f9993c..a648ec5db 100644 --- a/test/writehero_test.cpp +++ b/test/writehero_test.cpp @@ -360,15 +360,15 @@ TEST(Writehero, pfile_write_hero) gbIsHellfireSaveGame = false; leveltype = DTYPE_TOWN; - myplr = 0; + MyPlayerId = 0; _uiheroinfo info {}; strcpy(info.name, "TestPlayer"); info.heroclass = HeroClass::Rogue; pfile_ui_save_create(&info); PkPlayerStruct pks; PackPlayerTest(&pks); - UnPackPlayer(&pks, myplr, true); - AssertPlayer(plr[0]); + UnPackPlayer(&pks, MyPlayerId, true); + AssertPlayer(Players[0]); pfile_write_hero(); std::ifstream f("multi_0.sv", std::ios::binary);