From b8f74928f44cd218088d040c3f3d392af1fac3da Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Sun, 4 Dec 2022 08:48:20 +0100 Subject: [PATCH] Core/Movement: always update the home position to a reached waypoint node instead of only upon reaching the end of a non-repeatable path --- .../MovementGenerators/WaypointMovementGenerator.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp index f99357b75a..9f5bba15b7 100755 --- a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp @@ -123,10 +123,9 @@ void WaypointMovementGenerator::ProcessWaypointArrival(Creature* creat _waypointDelay = waypoint.Delay; } - // Check if the waypoint path has reached its end and may not repeat. Inform AI and update home position. + // Check if the waypoint path has reached its end and may not repeat. Inform AI. if ((_currentNode == _path->Nodes.size() - 1) && !_repeating && !_done) { - UpdateHomePosition(creature, waypoint); _done = true; creature->UpdateCurrentWaypointInfo(0, 0); @@ -135,6 +134,8 @@ void WaypointMovementGenerator::ProcessWaypointArrival(Creature* creat AI->WaypointPathEnded(waypoint.Id, _path->Id); } + UpdateHomePosition(creature, waypoint); + if (waypoint.EventId && urand(0, 99) < waypoint.EventChance) { TC_LOG_DEBUG("maps.script", "Creature movement start script %u at point %u for %s.", waypoint.EventId, _currentNode, creature->GetGUID().ToString().c_str());