From d0c14fe92f44d0a46d19f88872a6b85df9d4bd92 Mon Sep 17 00:00:00 2001 From: obligaron Date: Sun, 12 Jun 2022 16:53:34 +0200 Subject: [PATCH] Introduce Player::setlevel --- Source/loadsave.cpp | 2 +- Source/msg.cpp | 2 +- Source/multi.cpp | 2 +- Source/pack.cpp | 2 +- Source/player.cpp | 10 +++++----- Source/player.h | 8 ++++++++ Source/portal.cpp | 6 +++--- 7 files changed, 20 insertions(+), 12 deletions(-) diff --git a/Source/loadsave.cpp b/Source/loadsave.cpp index 4fcd519b6..03cc25d1e 100644 --- a/Source/loadsave.cpp +++ b/Source/loadsave.cpp @@ -322,7 +322,7 @@ void LoadPlayer(LoadHelper &file, Player &player) player.destParam2 = file.NextLE(); player.destParam3 = file.NextLE(); player.destParam4 = file.NextLE(); - player.plrlevel = file.NextLE(); + player.setLevel(file.NextLE()); player.position.tile.x = file.NextLE(); player.position.tile.y = file.NextLE(); player.position.future.x = file.NextLE(); diff --git a/Source/msg.cpp b/Source/msg.cpp index 8731ce599..c915fffd8 100644 --- a/Source/msg.cpp +++ b/Source/msg.cpp @@ -1736,7 +1736,7 @@ DWORD OnPlayerJoinLevel(const TCmd *pCmd, int pnum) if (player.plractive && MyPlayerId != pnum) { player.position.tile = position; - player.plrlevel = playerLevel; + player.setLevel(playerLevel); ResetPlayerGFX(player); if (player.isOnActiveLevel()) { SyncInitPlr(pnum); diff --git a/Source/multi.cpp b/Source/multi.cpp index de1c1ab7d..3fdc0d293 100644 --- a/Source/multi.cpp +++ b/Source/multi.cpp @@ -358,7 +358,7 @@ void SetupLocalPositions() myPlayer.position.tile = { x, y }; myPlayer.position.future = { x, y }; - myPlayer.plrlevel = currlevel; + myPlayer.setLevel(currlevel); myPlayer._pLvlChanging = true; myPlayer.pLvlLoad = 0; myPlayer._pmode = PM_NEWLVL; diff --git a/Source/pack.cpp b/Source/pack.cpp index fc1155178..4700712b8 100644 --- a/Source/pack.cpp +++ b/Source/pack.cpp @@ -218,7 +218,7 @@ bool UnPackPlayer(const PlayerPack *pPack, Player &player, bool netSync) player.position.tile = position; player.position.future = position; - player.plrlevel = dungeonLevel; + player.setLevel(dungeonLevel); player._pClass = heroClass; diff --git a/Source/player.cpp b/Source/player.cpp index 2683444e6..5353f889d 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -3263,14 +3263,14 @@ StartNewLvl(int pnum, interface_mode fom, int lvl) case WM_DIABPREVLVL: case WM_DIABRTNLVL: case WM_DIABTOWNWARP: - player.plrlevel = lvl; + player.setLevel(lvl); break; case WM_DIABSETLVL: setlvlnum = (_setlevels)lvl; break; case WM_DIABTWARPUP: myPlayer.pTownWarps |= 1 << (leveltype - 2); - player.plrlevel = lvl; + player.setLevel(lvl); break; case WM_DIABRETOWN: break; @@ -3296,7 +3296,7 @@ void RestartTownLvl(int pnum) } Player &player = Players[pnum]; - player.plrlevel = 0; + player.setLevel(0); player._pInvincible = false; SetPlayerHitPoints(player, 64); @@ -3321,9 +3321,9 @@ void StartWarpLvl(int pnum, int pidx) if (gbIsMultiplayer) { if (!player.isOnLevel(0)) { - player.plrlevel = 0; + player.setLevel(0); } else { - player.plrlevel = Portals[pidx].level; + player.setLevel(Portals[pidx].level); } } diff --git a/Source/player.h b/Source/player.h index 0d72f3331..85ac739c9 100644 --- a/Source/player.h +++ b/Source/player.h @@ -718,6 +718,14 @@ struct Player { { return this->plrlevel == level; } + void setLevel(uint8_t level) + { + this->plrlevel = level; + } + void setLevel(_setlevels level) + { + this->plrlevel = static_cast(level); + } }; extern DVL_API_FOR_TEST int MyPlayerId; diff --git a/Source/portal.cpp b/Source/portal.cpp index f29122363..3b3816e86 100644 --- a/Source/portal.cpp +++ b/Source/portal.cpp @@ -134,7 +134,7 @@ void GetPortalLevel() if (leveltype != DTYPE_TOWN) { setlevel = false; currlevel = 0; - MyPlayer->plrlevel = 0; + MyPlayer->setLevel(0); leveltype = DTYPE_TOWN; return; } @@ -143,12 +143,12 @@ void GetPortalLevel() setlevel = true; setlvlnum = (_setlevels)Portals[portalindex].level; currlevel = Portals[portalindex].level; - MyPlayer->plrlevel = setlvlnum; + MyPlayer->setLevel(setlvlnum); leveltype = Portals[portalindex].ltype; } else { setlevel = false; currlevel = Portals[portalindex].level; - MyPlayer->plrlevel = currlevel; + MyPlayer->setLevel(currlevel); leveltype = Portals[portalindex].ltype; }