aboutsummaryrefslogtreecommitdiff
path: root/src/game/Unit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r--src/game/Unit.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 8aed67a0f9d..ba4f49f6691 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -11976,6 +11976,11 @@ void Unit::SetHover(bool on)
void Unit::setDeathState(DeathState s)
{
+ // death state needs to be updated before RemoveAllAurasOnDeath() calls HandleChannelDeathItem(..) so that
+ // it can be used to check creation of death items (such as soul shards).
+ DeathState oldDeathState = m_deathState;
+ m_deathState = s;
+
if (s != ALIVE && s != JUST_ALIVED)
{
CombatStop();
@@ -12012,13 +12017,12 @@ void Unit::setDeathState(DeathState s)
else if (s == JUST_ALIVED)
RemoveFlag (UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE); // clear skinnable for creature and player (at battleground)
- if (m_deathState != ALIVE && s == ALIVE)
+ if (oldDeathState != ALIVE && s == ALIVE)
{
//_ApplyAllAuraMods();
// Reset display id on resurection - needed by corpse explosion to cleanup after display change
SetDisplayId(GetNativeDisplayId());
}
- m_deathState = s;
}
/*########################################