diff --git a/src/bindings/universal/ScriptMgr.cpp b/src/bindings/universal/ScriptMgr.cpp index 0694946b7..b27111639 100644 --- a/src/bindings/universal/ScriptMgr.cpp +++ b/src/bindings/universal/ScriptMgr.cpp @@ -314,6 +314,7 @@ void ScriptedAI::UpdateAI(const uint32) void ScriptedAI::EnterEvadeMode() { + m_creature->CombatStop(true); if( m_creature->isAlive() ) DoGoHome(); } diff --git a/src/game/AggressorAI.cpp b/src/game/AggressorAI.cpp index 37346269c..086f32864 100644 --- a/src/game/AggressorAI.cpp +++ b/src/game/AggressorAI.cpp @@ -73,7 +73,7 @@ void AggressorAI::EnterEvadeMode() { DEBUG_LOG("Creature stopped attacking cuz his dead [guid=%u]", m_creature->GetGUIDLow()); i_victimGuid = 0; - m_creature->CombatStop(); + m_creature->CombatStop(true); m_creature->DeleteThreatList(); return; } @@ -114,7 +114,7 @@ void AggressorAI::EnterEvadeMode() m_creature->DeleteThreatList(); i_victimGuid = 0; - m_creature->CombatStop(); + m_creature->CombatStop(true); m_creature->SetLootRecipient(NULL); } diff --git a/src/game/CreatureEventAI.cpp b/src/game/CreatureEventAI.cpp index a63ca1136..2fb38e3f2 100644 --- a/src/game/CreatureEventAI.cpp +++ b/src/game/CreatureEventAI.cpp @@ -1063,7 +1063,7 @@ void CreatureEventAI::EnterEvadeMode() m_creature->InterruptNonMeleeSpells(true); m_creature->RemoveAllAuras(); m_creature->DeleteThreatList(); - m_creature->CombatStop(); + m_creature->CombatStop(true); if (m_creature->isAlive()) m_creature->GetMotionMaster()->MoveTargetedHome(); diff --git a/src/game/GuardAI.cpp b/src/game/GuardAI.cpp index b65e918cc..aad95c2ff 100644 --- a/src/game/GuardAI.cpp +++ b/src/game/GuardAI.cpp @@ -66,7 +66,7 @@ void GuardAI::EnterEvadeMode() i_state = STATE_NORMAL; i_victimGuid = 0; - m_creature->CombatStop(); + m_creature->CombatStop(true); m_creature->DeleteThreatList(); return; } @@ -97,7 +97,7 @@ void GuardAI::EnterEvadeMode() m_creature->RemoveAllAuras(); m_creature->DeleteThreatList(); i_victimGuid = 0; - m_creature->CombatStop(); + m_creature->CombatStop(true); i_state = STATE_NORMAL; // Remove TargetedMovementGenerator from MotionMaster stack list, and add HomeMovementGenerator instead diff --git a/src/game/ReactorAI.cpp b/src/game/ReactorAI.cpp index d12284f1c..0fd68dfe3 100644 --- a/src/game/ReactorAI.cpp +++ b/src/game/ReactorAI.cpp @@ -91,7 +91,7 @@ ReactorAI::EnterEvadeMode() m_creature->GetMotionMaster()->MovementExpired(); m_creature->GetMotionMaster()->MoveIdle(); i_victimGuid = 0; - m_creature->CombatStop(); + m_creature->CombatStop(true); m_creature->DeleteThreatList(); return; } @@ -118,7 +118,7 @@ ReactorAI::EnterEvadeMode() m_creature->RemoveAllAuras(); m_creature->DeleteThreatList(); i_victimGuid = 0; - m_creature->CombatStop(); + m_creature->CombatStop(true); m_creature->SetLootRecipient(NULL); // Remove TargetedMovementGenerator from MotionMaster stack list, and add HomeMovementGenerator instead diff --git a/src/game/TotemAI.cpp b/src/game/TotemAI.cpp index 8b1f6bd3c..6b1344140 100644 --- a/src/game/TotemAI.cpp +++ b/src/game/TotemAI.cpp @@ -47,7 +47,7 @@ TotemAI::MoveInLineOfSight(Unit *) void TotemAI::EnterEvadeMode() { - m_creature->CombatStop(); + m_creature->CombatStop(true); } void diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index cb81054b9..74ad504d6 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -7214,9 +7214,9 @@ bool Unit::AttackStop(bool targetSwitch /*=false*/) return true; } -void Unit::CombatStop(bool cast) +void Unit::CombatStop(bool includingCast) { - if (cast && IsNonMeleeSpellCasted(false)) + if (includingCast && IsNonMeleeSpellCasted(false)) InterruptNonMeleeSpells(false); AttackStop(); @@ -7226,19 +7226,19 @@ void Unit::CombatStop(bool cast) ClearInCombat(); } -void Unit::CombatStopWithPets(bool cast) +void Unit::CombatStopWithPets(bool includingCast) { - CombatStop(cast); + CombatStop(includingCast); if(Pet* pet = GetPet()) - pet->CombatStop(cast); + pet->CombatStop(includingCast); if(Unit* charm = GetCharm()) - charm->CombatStop(cast); + charm->CombatStop(includingCast); if(GetTypeId()==TYPEID_PLAYER) { GuardianPetList const& guardians = ((Player*)this)->GetGuardians(); for(GuardianPetList::const_iterator itr = guardians.begin(); itr != guardians.end(); ++itr) if(Unit* guardian = Unit::GetUnit(*this,*itr)) - guardian->CombatStop(cast); + guardian->CombatStop(includingCast); } } diff --git a/src/game/Unit.h b/src/game/Unit.h index 69f01e527..c9648da51 100644 --- a/src/game/Unit.h +++ b/src/game/Unit.h @@ -855,8 +855,8 @@ class MANGOS_DLL_SPEC Unit : public WorldObject AttackerSet const& getAttackers() const { return m_attackers; } bool isAttackingPlayer() const; Unit* getVictim() const { return m_attacking; } - void CombatStop(bool cast = false); - void CombatStopWithPets(bool cast = false); + void CombatStop(bool includingCast = false); + void CombatStopWithPets(bool includingCast = false); Unit* SelectNearbyTarget() const; bool hasNegativeAuraWithInterruptFlag(uint32 flag); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index ad5fcf157..9cd4cb69e 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "7696" + #define REVISION_NR "7697" #endif // __REVISION_NR_H__