From ba62e47eec434c413a054c2fd2d5a7eeddd11acf Mon Sep 17 00:00:00 2001 From: Eric Robinson Date: Thu, 4 Dec 2025 05:14:44 -0500 Subject: [PATCH] Refactor StartNewLvl --- Source/player.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/Source/player.cpp b/Source/player.cpp index 35887a8b2..cd8b65b4a 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -2680,8 +2680,7 @@ void StartPlrHit(Player &player, int dam, bool forcehit) #if defined(__clang__) || defined(__GNUC__) __attribute__((no_sanitize("shift-base"))) #endif -void -StartPlayerKill(Player &player, DeathReason deathReason) +void StartPlayerKill(Player &player, DeathReason deathReason) { if (player.hasNoLife() && player._pmode == PM_DEATH) { return; @@ -2893,11 +2892,7 @@ void RemovePlrMissiles(const Player &player) } } -#if defined(__clang__) || defined(__GNUC__) -__attribute__((no_sanitize("shift-base"))) -#endif -void -StartNewLvl(Player &player, interface_mode fom, int lvl) +void StartNewLvl(Player &player, interface_mode fom, int lvl) { InitLevelChange(player); @@ -2914,7 +2909,10 @@ StartNewLvl(Player &player, interface_mode fom, int lvl) player.setLevel(setlvlnum); break; case WM_DIABTWARPUP: - MyPlayer->pTownWarps |= 1 << (leveltype - 2); + assert(leveltype >= DTYPE_CATACOMBS && leveltype <= DTYPE_HELL); + const unsigned warpIndex = static_cast(leveltype - 2); + const uint8_t warpMask = static_cast(1u << warpIndex); + MyPlayer->pTownWarps |= warpMask; player.setLevel(lvl); break; case WM_DIABRETOWN: