From 476566871879abe51a48833a01cec427dd7c6b8e Mon Sep 17 00:00:00 2001 From: ccrs Date: Sun, 19 May 2019 11:58:03 +0200 Subject: [PATCH] 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 (cherry picked from commit c826ec0a3c17f86f8a3e44455c533fb46f239720) --- src/server/game/Handlers/PetHandler.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index e312422087b..5801ec4742f 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -152,8 +152,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); @@ -371,7 +370,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(AI))