diff options
author | ariel- <ariel-@users.noreply.github.com> | 2017-05-06 15:49:56 -0300 |
---|---|---|
committer | ariel- <ariel-@users.noreply.github.com> | 2017-05-06 15:49:56 -0300 |
commit | c3176a814306db20a6f0ff7cdf1baad6bf9c877c (patch) | |
tree | 23d25d8b9740746cf4453ddfc14eabc501a896c1 /src | |
parent | 9ae53d25779292b9c0a76d40dfa2e3f910fdeaf2 (diff) |
Core/Players: fix null dereference crash
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index dadfa60fad9..f98e45327f7 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -23807,15 +23807,19 @@ void Player::ResurrectUsingRequestData() void Player::ResurrectUsingRequestDataImpl() { + // save health and mana before resurrecting, _resurrectionData can be erased + uint32 resurrectHealth = _resurrectionData->Health; + uint32 resurrectMana = _resurrectionData->Mana; + ResurrectPlayer(0.0f, false); - if (GetMaxHealth() > _resurrectionData->Health) - SetHealth(_resurrectionData->Health); + if (GetMaxHealth() > resurrectHealth) + SetHealth(resurrectHealth); else SetFullHealth(); - if (GetMaxPower(POWER_MANA) > _resurrectionData->Mana) - SetPower(POWER_MANA, _resurrectionData->Mana); + if (GetMaxPower(POWER_MANA) > resurrectMana) + SetPower(POWER_MANA, resurrectMana); else SetPower(POWER_MANA, GetMaxPower(POWER_MANA)); |