diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Player.cpp | 4 | ||||
-rw-r--r-- | src/game/Unit.cpp | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index fc8e97b8505..c93047b3f84 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -21993,9 +21993,13 @@ void Player::ActivateSpec(uint8 spec) UnsummonPetTemporaryIfAny(); ClearComboPointHolders(); + ClearAllReactives(); UnsummonAllTotems(); RemoveAllControlled(); RemoveAllAurasOnDeath(); + if (GetPet()) + GetPet()->RemoveAllAurasOnDeath(); + //RemoveAllAuras(this->GetGUID(), NULL, false, true); // removes too many auras //ExitVehicle(); // should be impossible to switch specs from inside a vehicle.. diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 302e97ce053..c2a96465467 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -4188,7 +4188,7 @@ void Unit::RemoveArenaAuras(bool onleave) { // in join, remove positive buffs, on end, remove negative // used to remove positive visible auras in arenas - for (AuraMap::iterator iter = m_Auras.begin(); iter != m_Auras.end(); ) + for (AuraMap::iterator iter = m_Auras.begin(); iter != m_Auras.end();) { if ( !(iter->second->GetSpellProto()->AttributesEx4 & (1<<21)) // don't remove stances, shadowform, pally/hunter auras && !iter->second->IsPassive() // don't remove passive auras @@ -4204,7 +4204,7 @@ void Unit::RemoveAllAurasOnDeath() { // used just after dieing to remove all visible auras // and disable the mods for the passive ones - for (AuraMap::iterator iter = m_Auras.begin(); iter != m_Auras.end(); ) + for (AuraMap::iterator iter = m_Auras.begin(); iter != m_Auras.end();) { if (!iter->second->IsPassive() && !iter->second->IsDeathPersistent()) RemoveAura(iter, AURA_REMOVE_BY_DEATH); @@ -13184,7 +13184,7 @@ void Unit::ClearAllReactives() if (HasAuraState(AURA_STATE_DEFENSE)) ModifyAuraState(AURA_STATE_DEFENSE, false); - if (getClass() == CLASS_HUNTER && HasAuraState( AURA_STATE_HUNTER_PARRY)) + if (getClass() == CLASS_HUNTER && HasAuraState(AURA_STATE_HUNTER_PARRY)) ModifyAuraState(AURA_STATE_HUNTER_PARRY, false); if(getClass() == CLASS_WARRIOR && GetTypeId() == TYPEID_PLAYER) ((Player*)this)->ClearComboPoints(); |