aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2017-05-06 15:49:56 -0300
committerariel- <ariel-@users.noreply.github.com>2017-05-06 15:49:56 -0300
commitc3176a814306db20a6f0ff7cdf1baad6bf9c877c (patch)
tree23d25d8b9740746cf4453ddfc14eabc501a896c1 /src
parent9ae53d25779292b9c0a76d40dfa2e3f910fdeaf2 (diff)
Core/Players: fix null dereference crash
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp12
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));