From c1e3d79a4fb5b7b1a9bca36ecd16b9bb902ced92 Mon Sep 17 00:00:00 2001 From: Ovah Date: Sat, 28 Sep 2019 09:24:41 +0200 Subject: Core/Movement: fixed taxi pathings getting finalized earlier than intended (#23830) * Core/Movement: fixed taxi pathings getting finalized earlier than intended Since we handle the intial starting point of a spline properly now the update logic was still expecting the old handling which resulted in incrementing the current node index earlier than intended * apply a missing change --- .../Movement/MovementGenerators/FlightPathMovementGenerator.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp index 931d0e2229b..cfcc4e32721 100644 --- a/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp @@ -94,8 +94,9 @@ bool FlightPathMovementGenerator::DoUpdate(Player* owner, uint32 /*diff*/) if (!owner) return false; - uint32 pointId = owner->movespline->currentPathIdx() < 0 ? 0 : owner->movespline->currentPathIdx(); - if (pointId > _currentNode && _currentNode < _path.size()) + // skipping the first spline path point because it's our starting point and not a taxi path point + uint32 pointId = owner->movespline->currentPathIdx() <= 0 ? 0 : owner->movespline->currentPathIdx() - 1; + if (pointId > _currentNode && _currentNode < _path.size() - 1) { bool departureEvent = true; do @@ -122,7 +123,7 @@ bool FlightPathMovementGenerator::DoUpdate(Player* owner, uint32 /*diff*/) _currentNode += departureEvent ? 1 : 0; departureEvent = !departureEvent; - } while (_currentNode < _path.size()); + } while (_currentNode < _path.size() - 1); } if (_currentNode >= (_path.size() - 1)) -- cgit v1.2.3