From 43db8a6d1338fae91a121740591e083dcaef483e Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Sun, 1 May 2022 07:01:10 +0200 Subject: [PATCH] fix(Core/Movement): Improved pet's follow movement. (#11585) Fixes #9254 --- .../MovementGenerators/TargetedMovementGenerator.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp index 6720f3049..128a3b25f 100644 --- a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp @@ -453,11 +453,10 @@ bool FollowMovementGenerator::DoUpdate(T* owner, uint32 time_diff) else i_path->Clear(); - float distance = _range - target->GetCombatReach(); + target->MovePositionToFirstCollision(targetPosition, owner->GetCombatReach() + _range, target->ToAbsoluteAngle(_angle.RelativeAngle) - target->GetOrientation()); - float relAngle = _angle.RelativeAngle; float x, y, z; - target->GetNearPoint(owner, x, y, z, owner->GetCombatReach(), distance, target->ToAbsoluteAngle(relAngle), 0.f, &targetPosition); + targetPosition.GetPosition(x, y, z); if (owner->IsHovering()) owner->UpdateAllowedPositionZ(x, y, z);