diff options
| author | Ovah <dreadkiller@gmx.de> | 2019-09-28 09:24:41 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-12-18 22:27:20 +0100 |
| commit | 091084353869b843f700969e017746310492bdf6 (patch) | |
| tree | 241ad84e6dce7e1b0f086fc979943771dcaa7397 /src | |
| parent | 157eca58d7811e8fbb78c089c686050751bac45c (diff) | |
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
(cherry picked from commit c1e3d79a4fb5b7b1a9bca36ecd16b9bb902ced92)
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp index 2ce3d604da7..ea01bcca42f 100644 --- a/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp @@ -98,8 +98,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 @@ -126,7 +127,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)) |
