From 848bffac86e54dfb944f3b0d5fbfd86048e393ca Mon Sep 17 00:00:00 2001 From: bash Date: Sun, 31 May 2026 00:28:26 +0200 Subject: [PATCH] refactor(Core/Movement): Drop no-progress guard now that probe + zone + validation fixes prevent the oscillation it was masking --- src/Ai/World/Rpg/Action/NewRpgBaseAction.cpp | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/src/Ai/World/Rpg/Action/NewRpgBaseAction.cpp b/src/Ai/World/Rpg/Action/NewRpgBaseAction.cpp index c3eb93a2f..51896c484 100644 --- a/src/Ai/World/Rpg/Action/NewRpgBaseAction.cpp +++ b/src/Ai/World/Rpg/Action/NewRpgBaseAction.cpp @@ -131,24 +131,6 @@ bool NewRpgBaseAction::MoveFarTo(WorldPosition dest) if (path.empty()) return false; - // Progress guard: refuse to dispatch a path whose endpoint isn't - // meaningfully closer to dest than the bot already is. Prevents - // oscillation around terrain the mmap probe can route along but the - // bot can't actually traverse (cave entries with missing nav, narrow - // ledges, geometry that loops back). Reference doesn't have this - // guard but their RPG layer detects stuck via different signals; - // ours surfaces the issue here so the strategy can re-pick a POI. - { - float const distFromBot = botPos.distance(dest); - float const distFromPathEnd = path.getBack().distance(dest); - if (distFromPathEnd + 5.0f >= distFromBot) - { - EmitDebugMove("MoveFar", "no-progress", - dest.GetPositionX(), dest.GetPositionY(), dest.GetPositionZ()); - return false; - } - } - // Walk dispatch. std::vector const& pts = path.getPointPath(); Movement::PointsArray points;