diff --git a/Source/control/control_panel.cpp b/Source/control/control_panel.cpp index 721c0cea7..dd33e6160 100644 --- a/Source/control/control_panel.cpp +++ b/Source/control/control_panel.cpp @@ -680,6 +680,9 @@ void CheckChrBtns() { const Player &myPlayer = *MyPlayer; + if (myPlayer._pmode == PM_DEATH) + return; + if (CharPanelButtonActive || myPlayer._pStatPts == 0) return; @@ -698,6 +701,11 @@ void CheckChrBtns() void ReleaseChrBtns(bool addAllStatPoints) { + const Player &myPlayer = *MyPlayer; + + if (myPlayer._pmode == PM_DEATH) + return; + CharPanelButtonActive = false; for (auto attribute : enum_values()) { auto buttonId = static_cast(attribute); diff --git a/Source/player.cpp b/Source/player.cpp index a9b9a3aa6..045070092 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -2108,7 +2108,7 @@ void LoadPlrGFX(Player &player, player_graphic graphic) return; const HeroClass cls = GetPlayerSpriteClass(player._pClass); - const PlayerWeaponGraphic animWeaponId = GetPlayerWeaponGraphic(graphic, static_cast(player._pgfxnum & 0xF)); + PlayerWeaponGraphic animWeaponId = GetPlayerWeaponGraphic(graphic, static_cast(player._pgfxnum & 0xF)); const PlayerSpriteData &spriteData = GetPlayerSpriteDataForClass(cls); const char *path = spriteData.classPath.c_str(); @@ -2145,8 +2145,8 @@ void LoadPlrGFX(Player &player, player_graphic graphic) szCel = "qm"; break; case player_graphic::Death: - if (animWeaponId != PlayerWeaponGraphic::Unarmed) - return; + // Only one Death animation exists, for unarmed characters + animWeaponId = PlayerWeaponGraphic::Unarmed; szCel = "dt"; break; case player_graphic::Block: diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 9257d9910..eb78b3317 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -14,6 +14,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Music doesn't unmute when focus is lost on level transition with Auto Pause On Focus Lost disabled - Image ghosting visible on border of map in higher resolutions +#### Stability / Performance / System + +- Crashes related to player graphics rendering in death state + ## DevilutionX 1.5.2 ### Bug Fixes