From 2bacebe93be450e21637205c2528256ecbe01b1f Mon Sep 17 00:00:00 2001 From: Giacomo Pozzoni Date: Tue, 17 Sep 2019 15:56:42 +0200 Subject: [PATCH] Core/MovementGenerator: Fix crash in taxi paths Fix a crash in taxi paths happening when joining a battleground/dungeon while on a taxi path after second last node but close to last node, then leaving/finishing the battleground. --- .../MovementGenerators/FlightPathMovementGenerator.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp index e9b53d969c0..b0811957afd 100644 --- a/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp @@ -152,8 +152,8 @@ void FlightPathMovementGenerator::DoReset(Player* player) bool FlightPathMovementGenerator::DoUpdate(Player* player, uint32 /*diff*/) { - uint32 pointId = (uint32)player->movespline->currentPathIdx(); - if (pointId > _currentNode) + uint32 pointId = player->movespline->currentPathIdx() < 0 ? 0 : player->movespline->currentPathIdx(); + if (pointId > _currentNode && _currentNode < _path.size()) { bool departureEvent = true; do @@ -170,7 +170,7 @@ bool FlightPathMovementGenerator::DoUpdate(Player* player, uint32 /*diff*/) } } - if (pointId == _currentNode) + if (pointId >= _currentNode) break; if (_currentNode == _preloadTargetNode)