From c7929482c49d52e1c360c28cf106f1a476835735 Mon Sep 17 00:00:00 2001 From: bash Date: Mon, 18 May 2026 00:32:40 +0200 Subject: [PATCH] fix(Core/Travel): Bail chained probe on non-progress oscillation --- src/Mgr/Travel/TravelMgr.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/Mgr/Travel/TravelMgr.cpp b/src/Mgr/Travel/TravelMgr.cpp index 7d287e824..e7597e111 100644 --- a/src/Mgr/Travel/TravelMgr.cpp +++ b/src/Mgr/Travel/TravelMgr.cpp @@ -852,6 +852,15 @@ std::vector WorldPosition::getPathFromPath(std::vector::max(); + uint32 noProgress = 0; + constexpr uint32 MAX_NO_PROGRESS = 2; + // Limit the pathfinding attempts for (uint32 i = 0; i < maxAttempt; i++) { @@ -871,6 +880,18 @@ std::vector WorldPosition::getPathFromPath(std::vectordistance(&subPath.back()); + if (distNow + 0.5f >= bestDistToTarget) + { + if (++noProgress >= MAX_NO_PROGRESS) + break; + } + else + { + bestDistToTarget = distNow; + noProgress = 0; + } + currentPos = subPath.back(); }