From 6be00413a917752b0c804a801edee99eb4e7de53 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Mon, 27 Jan 2020 21:30:20 +0100 Subject: [PATCH] Core/Movement: MoveSmoothPath will now automatically flag a ground path as uncompressed when the delta is > 400 --- src/server/game/Movement/MotionMaster.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp index 2b43db14cf9..eefa703798b 100644 --- a/src/server/game/Movement/MotionMaster.cpp +++ b/src/server/game/Movement/MotionMaster.cpp @@ -530,8 +530,24 @@ void MotionMaster::MoveSmoothPath(uint32 pointId, Position const* pathPoints, si if (fly) { init.SetFly(); - init.SetUncompressed(); init.SetSmooth(); + init.SetUncompressed(); + } + else + { + if (pathSize > 1) + { + G3D::Vector3 middle = (path[0] + path[pathSize]) / 2.f; + for (uint32 i = 1; i < pathSize; ++i) + { + G3D::Vector3 delta = middle - path[i]; + if (delta.x > 400 || delta.y > 400 || delta.z > 400) + { + init.SetUncompressed(); + break; + } + } + } } if (velocity > 0.0f)