Browse Source

Fix statting on death crash (#8308)

pull/8285/merge
Eric Robinson 3 months ago committed by GitHub
parent
commit
15f2ac4272
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 8
      Source/control/control_panel.cpp
  2. 6
      Source/player.cpp
  3. 4
      docs/CHANGELOG.md

8
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<CharacterAttribute>()) {
auto buttonId = static_cast<size_t>(attribute);

6
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<PlayerWeaponGraphic>(player._pgfxnum & 0xF));
PlayerWeaponGraphic animWeaponId = GetPlayerWeaponGraphic(graphic, static_cast<PlayerWeaponGraphic>(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:

4
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

Loading…
Cancel
Save