aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalcrom <malcromdev@gmail.com>2013-12-03 23:41:11 -0330
committerMalcrom <malcromdev@gmail.com>2013-12-03 23:41:11 -0330
commite60fe4c30380277f06ab550bc33eab01c0de88d3 (patch)
treec5b35a26b034a0c0bb734a18acad65735ebe1e0c
parent81c73c2d53dd8ff1f908e9e1c1ec0573441d2fc2 (diff)
Core/SmartAI: Fixed waypoint pathing not resuming after evade.
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp
index b185ada614d..96c4cb9f5d0 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.cpp
+++ b/src/server/game/AI/SmartScripts/SmartAI.cpp
@@ -460,7 +460,6 @@ void SmartAI::EnterEvadeMode()
me->LoadCreaturesAddon();
me->SetLootRecipient(NULL);
me->ResetPlayerDamageReq();
-
GetScript()->ProcessEventsFor(SMART_EVENT_EVADE);//must be after aura clear so we can cast spells from db
SetRun(mRun);
@@ -475,7 +474,10 @@ void SmartAI::EnterEvadeMode()
me->GetMotionMaster()->MoveFollow(target, mFollowDist, mFollowAngle);
}
else
+ {
+ mCanCombatMove = true;
me->GetMotionMaster()->MoveTargetedHome();
+ }
Reset();
}
@@ -588,6 +590,9 @@ int SmartAI::Permissible(const Creature* creature)
void SmartAI::JustReachedHome()
{
GetScript()->ProcessEventsFor(SMART_EVENT_REACHED_HOME);
+
+ if (!UpdateVictim() && me->GetMotionMaster()->GetCurrentMovementGeneratorType() == IDLE_MOTION_TYPE && me->GetWaypointPath())
+ me->ToCreature()->GetMotionMaster()->MovePath(me->GetWaypointPath(), true);
}
void SmartAI::EnterCombat(Unit* enemy)
@@ -787,8 +792,9 @@ void SmartAI::SetCombatMove(bool on)
}
else
{
- me->StopMoving();
+ me->GetMotionMaster()->MovementExpired();
me->GetMotionMaster()->Clear(true);
+ me->StopMoving();
me->GetMotionMaster()->MoveIdle();
}
}