From d49579395ef38d8ba4009846da0ff4009fe69504 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Wed, 22 Apr 2020 18:17:17 +0200 Subject: [PATCH] Core/Movement: added another mmap raycast exception for follow movement --- .../MovementGenerators/FollowMovementGenerator.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/server/game/Movement/MovementGenerators/FollowMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FollowMovementGenerator.cpp index 6fc9c48446b..16f2f17357b 100644 --- a/src/server/game/Movement/MovementGenerators/FollowMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/FollowMovementGenerator.cpp @@ -201,7 +201,13 @@ bool FollowMovementGenerator::Update(Unit* owner, uint32 diff) } Position dest = target->GetPosition(); - target->MovePositionToFirstCollision(dest, _range + target->GetBoundaryRadius() + owner->GetBoundaryRadius(), tAngle); + if (!owner->HasUnitState(UNIT_STATE_IGNORE_PATHFINDING)) + target->MovePositionToFirstCollision(dest, _range + target->GetBoundaryRadius() + owner->GetBoundaryRadius(), tAngle); + else + { + dest.m_positionX += std::cos(Position::NormalizeOrientation(target->GetOrientation() + tAngle)) * (_range + target->GetBoundaryRadius() + owner->GetBoundaryRadius()); + dest.m_positionY += std::sin(Position::NormalizeOrientation(target->GetOrientation() + tAngle)) * (_range + target->GetBoundaryRadius() + owner->GetBoundaryRadius()); + } Movement::MoveSplineInit init(owner); init.MoveTo(dest.GetPositionX(), dest.GetPositionY(), dest.GetPositionZ());