aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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));