From cf5ba0886a9a551b51721f520a6bbc35df6d567b Mon Sep 17 00:00:00 2001 From: Mitchell Richters Date: Sat, 17 Dec 2022 06:32:03 +1100 Subject: [PATCH] - SW: Properly guard the call to `PlayerDeathReset()` in `TerminateLevel()`. * Stems from an oversight in 28b97486cdbc9a4946e23ce979eb2f68b3c5f950. * Fixes #796. --- source/games/sw/src/game.cpp | 3 ++- source/games/sw/src/player.cpp | 7 ------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/source/games/sw/src/game.cpp b/source/games/sw/src/game.cpp index 4a2d90fe4..7dd2f8631 100644 --- a/source/games/sw/src/game.cpp +++ b/source/games/sw/src/game.cpp @@ -580,7 +580,8 @@ void TerminateLevel(void) { PLAYER* pp = &Player[pnum]; - PlayerDeathReset(pp); + if (pp->Flags & PF_DEAD) + PlayerDeathReset(pp); // Free panel sprites for players pClearSpriteList(pp); diff --git a/source/games/sw/src/player.cpp b/source/games/sw/src/player.cpp index 209fceb73..6ffc1b12e 100644 --- a/source/games/sw/src/player.cpp +++ b/source/games/sw/src/player.cpp @@ -6016,13 +6016,6 @@ void DoPlayerDeathCheckKeys(PLAYER* pp) DoPlayerZrange(pp); - pp->sop_control = nullptr; - pp->sop_remote = nullptr; - pp->sop_riding = nullptr; - pp->sop = nullptr; - - pp->Flags &= ~(PF_WEAPON_DOWN|PF_WEAPON_RETRACT); - pp->Flags &= ~(PF_DEAD); plActor->spr.cstat &= ~(CSTAT_SPRITE_YCENTER); plActor->spr.cstat |= (CSTAT_SPRITE_BLOCK|CSTAT_SPRITE_BLOCK_HITSCAN); plActor->spr.scale = DVector2(PLAYER_NINJA_XREPEAT, PLAYER_NINJA_YREPEAT);