aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server/Packets
diff options
context:
space:
mode:
authorModoX <moardox@gmail.com>2024-10-07 20:29:02 +0200
committerGitHub <noreply@github.com>2024-10-07 20:29:02 +0200
commit222a80a6d62410eae6fa46dbdc60309f1728653a (patch)
tree246ef3665a4baea293a64b562ffe63814334b7f0 /src/server/game/Server/Packets
parent86f0337d64776b9dd724f3ec21ca964fffc8aac4 (diff)
Core/Movement: Implemented cyclic waypoint movement (#29923)
Co-authored-by: Shauren <shauren.trinity@gmail.com>
Diffstat (limited to 'src/server/game/Server/Packets')
-rw-r--r--src/server/game/Server/Packets/MovementPackets.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp
index b28ce65e032..25272638ee8 100644
--- a/src/server/game/Server/Packets/MovementPackets.cpp
+++ b/src/server/game/Server/Packets/MovementPackets.cpp
@@ -372,7 +372,13 @@ void WorldPackets::Movement::CommonMovement::WriteCreateObjectSplineDataBlock(::
if (!moveSpline.isCyclic()) // Destination
dest = moveSpline.FinalDestination();
else
- dest = G3D::Vector3::zero();
+ {
+ ::Movement::MoveSpline::MySpline const& spline = moveSpline._Spline();
+ if (spline.getPointCount() <= 1)
+ dest = G3D::Vector3::zero();
+ else
+ dest = spline.getPoint(spline.last() - 1);
+ }
data << dest.x << dest.y << dest.z;