aboutsummaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
Diffstat (limited to 'src/game')
-rw-r--r--src/game/CreatureAI.h1
-rw-r--r--src/game/Unit.cpp6
2 files changed, 4 insertions, 3 deletions
diff --git a/src/game/CreatureAI.h b/src/game/CreatureAI.h
index b47156f5876..791c4a96ca8 100644
--- a/src/game/CreatureAI.h
+++ b/src/game/CreatureAI.h
@@ -123,6 +123,7 @@ class TRINITY_DLL_SPEC CreatureAI : public UnitAI
// Called when the creature is target of hostile action: swing, hostile spell landed, fear/etc)
//virtual void AttackedBy(Unit* attacker);
+ virtual bool IsEscorted() {return false;}
// Called when creature is spawned or respawned (for reseting variables)
virtual void JustRespawned() { Reset(); }
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index c6fd2e5c270..d37aa91373a 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -10528,9 +10528,9 @@ void Unit::SetInCombatState(bool PvP, Unit* enemy)
if(GetTypeId() != TYPEID_PLAYER)
{
// Set home position at place of engaging combat for escorted creatures
- //if(((Creature*)this)->IsAIEnabled)
- //if (((Creature *)this)->AI()->IsEscorted())
- ((Creature*)this)->SetHomePosition(GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation());
+ if((((Creature*)this)->IsAIEnabled && ((Creature*)this)->AI()->IsEscorted()) || ((Creature*)this)->GetMotionMaster()->GetCurrentMovementGeneratorType() == WAYPOINT_MOTION_TYPE)
+ ((Creature*)this)->SetHomePosition(GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation());
+
if(enemy)
{
if(((Creature*)this)->IsAIEnabled)