aboutsummaryrefslogtreecommitdiff
path: root/src/game/MotionMaster.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/MotionMaster.cpp')
-rw-r--r--src/game/MotionMaster.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/game/MotionMaster.cpp b/src/game/MotionMaster.cpp
index 39260362212..551383d985a 100644
--- a/src/game/MotionMaster.cpp
+++ b/src/game/MotionMaster.cpp
@@ -230,8 +230,6 @@ MotionMaster::MoveChase(Unit* target, float dist, float angle)
void
MotionMaster::MoveFollow(Unit* target, float dist, float angle)
{
- Clear();
-
// ignore movement request if target not exist
if(!target)
return;
@@ -276,6 +274,9 @@ MotionMaster::MoveFleeing(Unit* enemy)
if(!enemy)
return;
+ if(i_owner->HasAuraType(SPELL_AURA_PREVENTS_FLEEING))
+ return;
+
if(i_owner->GetTypeId()==TYPEID_PLAYER)
{
DEBUG_LOG("Player (GUID: %u) flee from %s (GUID: %u)", i_owner->GetGUIDLow(),
@@ -312,6 +313,9 @@ MotionMaster::MoveTaxiFlight(uint32 path, uint32 pathnode)
void
MotionMaster::MoveDistract(uint32 timer)
{
+ if(Impl[MOTION_SLOT_CONTROLLED])
+ return;
+
if(i_owner->GetTypeId()==TYPEID_PLAYER)
{
DEBUG_LOG("Player (GUID: %u) distracted (timer: %u)", i_owner->GetGUIDLow(), timer);