aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/PetHandler.cpp
diff options
context:
space:
mode:
authorccrs <ccrs@users.noreply.github.com>2019-05-19 11:58:03 +0200
committerccrs <ccrs@users.noreply.github.com>2019-05-19 11:58:03 +0200
commitc826ec0a3c17f86f8a3e44455c533fb46f239720 (patch)
tree529bb04fd082b765cb10271c545b83bce31ef765 /src/server/game/Handlers/PetHandler.cpp
parent48208b8dde9fe69131f44bc49a52d8bff90db9ef (diff)
Core/Handlers: apply some movement related corrections
Unit::StopMoving() is evil, and so is MotionMaster::Clear() the first can really mess up existing movement generators the second can interrupt "controlled" movements... can do it literally mid-air
Diffstat (limited to 'src/server/game/Handlers/PetHandler.cpp')
-rw-r--r--src/server/game/Handlers/PetHandler.cpp4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp
index 0bc5d5006e7..dca55bf98ee 100644
--- a/src/server/game/Handlers/PetHandler.cpp
+++ b/src/server/game/Handlers/PetHandler.cpp
@@ -159,8 +159,7 @@ void WorldSession::HandlePetActionHelper(Unit* pet, ObjectGuid guid1, uint32 spe
switch (spellid)
{
case COMMAND_STAY: // flat = 1792 - STAY
- pet->StopMoving();
- pet->GetMotionMaster()->Clear();
+ pet->GetMotionMaster()->Clear(MOTION_PRIORITY_NORMAL);
pet->GetMotionMaster()->MoveIdle();
charmInfo->SetCommandState(COMMAND_STAY);
@@ -366,7 +365,6 @@ void WorldSession::HandlePetActionHelper(Unit* pet, ObjectGuid guid1, uint32 spe
// This is true if pet has no target or has target but targets differs.
if (pet->GetVictim() != unit_target)
{
- pet->GetMotionMaster()->Clear();
if (CreatureAI* AI = pet->ToCreature()->AI())
{
if (PetAI* petAI = dynamic_cast<PetAI*>(AI))