|
|
|
@ -2890,11 +2890,7 @@ void RemovePlrMissiles(const Player &player) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#if defined(__clang__) || defined(__GNUC__) |
|
|
|
void StartNewLvl(Player &player, interface_mode fom, int lvl) |
|
|
|
__attribute__((no_sanitize("shift-base"))) |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
void |
|
|
|
|
|
|
|
StartNewLvl(Player &player, interface_mode fom, int lvl) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
InitLevelChange(player); |
|
|
|
InitLevelChange(player); |
|
|
|
|
|
|
|
|
|
|
|
@ -2910,10 +2906,14 @@ StartNewLvl(Player &player, interface_mode fom, int lvl) |
|
|
|
setlvlnum = (_setlevels)lvl; |
|
|
|
setlvlnum = (_setlevels)lvl; |
|
|
|
player.setLevel(setlvlnum); |
|
|
|
player.setLevel(setlvlnum); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case WM_DIABTWARPUP: |
|
|
|
case WM_DIABTWARPUP: { |
|
|
|
MyPlayer->pTownWarps |= 1 << (leveltype - 2); |
|
|
|
assert(leveltype >= DTYPE_CATACOMBS && leveltype <= DTYPE_HELL); |
|
|
|
|
|
|
|
const unsigned warpIndex = static_cast<unsigned>(leveltype - 2); |
|
|
|
|
|
|
|
const uint8_t warpMask = static_cast<uint8_t>(1u << warpIndex); |
|
|
|
|
|
|
|
MyPlayer->pTownWarps |= warpMask; |
|
|
|
player.setLevel(lvl); |
|
|
|
player.setLevel(lvl); |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
case WM_DIABRETOWN: |
|
|
|
case WM_DIABRETOWN: |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
|