From 2a8bd2327292d4f2c155a3d2bbd0b3c3bf93b4e1 Mon Sep 17 00:00:00 2001 From: bash Date: Fri, 29 May 2026 15:22:18 +0200 Subject: [PATCH] fix(Core/Movement): Apply bot filter setters at all PathGenerator construction sites --- src/Ai/Base/Actions/BattleGroundTactics.cpp | 2 ++ src/Ai/Base/Actions/GoAction.cpp | 2 ++ src/Ai/Base/Actions/MovementActions.cpp | 4 ++++ src/Mgr/Travel/TravelNode.cpp | 2 ++ 4 files changed, 10 insertions(+) diff --git a/src/Ai/Base/Actions/BattleGroundTactics.cpp b/src/Ai/Base/Actions/BattleGroundTactics.cpp index 26271446b..93a63be26 100644 --- a/src/Ai/Base/Actions/BattleGroundTactics.cpp +++ b/src/Ai/Base/Actions/BattleGroundTactics.cpp @@ -4292,6 +4292,8 @@ bool ArenaTactics::Execute(Event /*event*/) if (losBlocked) { PathGenerator path(bot); + path.SetExcludeFlags(path.GetExcludeFlags() | NAV_GROUND_STEEP); + path.SetAreaCost(NAV_WATER, 10.0f); path.CalculatePath(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), false); if (path.GetPathType() != PATHFIND_NOPATH) diff --git a/src/Ai/Base/Actions/GoAction.cpp b/src/Ai/Base/Actions/GoAction.cpp index 61a7550c2..1860ff88e 100644 --- a/src/Ai/Base/Actions/GoAction.cpp +++ b/src/Ai/Base/Actions/GoAction.cpp @@ -124,6 +124,8 @@ bool GoAction::Execute(Event event) if (botAI->HasStrategy("debug move", BOT_STATE_NON_COMBAT)) { PathGenerator path(bot); + path.SetExcludeFlags(path.GetExcludeFlags() | NAV_GROUND_STEEP); + path.SetAreaCost(NAV_WATER, 10.0f); path.CalculatePath(x, y, z, false); diff --git a/src/Ai/Base/Actions/MovementActions.cpp b/src/Ai/Base/Actions/MovementActions.cpp index 8091e8617..9bc97803b 100644 --- a/src/Ai/Base/Actions/MovementActions.cpp +++ b/src/Ai/Base/Actions/MovementActions.cpp @@ -971,6 +971,8 @@ bool MovementAction::ReachCombatTo(Unit* target, float distance) return false; PathGenerator path(bot); + path.SetExcludeFlags(path.GetExcludeFlags() | NAV_GROUND_STEEP); + path.SetAreaCost(NAV_WATER, 10.0f); path.CalculatePath(tx, ty, tz, false); PathType type = path.GetPathType(); int typeOk = PATHFIND_NORMAL | PATHFIND_INCOMPLETE | PATHFIND_SHORTCUT; @@ -1878,6 +1880,8 @@ PathResult MovementAction::GeneratePath(float x, float y, float z, uint32 accept { PathResult result; PathGenerator gen(bot); + gen.SetExcludeFlags(gen.GetExcludeFlags() | NAV_GROUND_STEEP); + gen.SetAreaCost(NAV_WATER, 10.0f); gen.CalculatePath(x, y, z, forceDestination); result.pathType = gen.GetPathType(); result.reachable = !(result.pathType & (~acceptMask)); diff --git a/src/Mgr/Travel/TravelNode.cpp b/src/Mgr/Travel/TravelNode.cpp index 01ecea09b..e6057e3c1 100644 --- a/src/Mgr/Travel/TravelNode.cpp +++ b/src/Mgr/Travel/TravelNode.cpp @@ -1252,6 +1252,8 @@ TravelNodeRoute TravelNodeMap::FindRouteNearestNodes(WorldPosition startPos, Wor if (startNodePosition.GetMapId() == bot->GetMapId()) { PathGenerator path(bot); + path.SetExcludeFlags(path.GetExcludeFlags() | NAV_GROUND_STEEP); + path.SetAreaCost(NAV_WATER, 10.0f); path.CalculatePath(startNodePosition.GetPositionX(), startNodePosition.GetPositionY(), startNodePosition.GetPositionZ()); PathType type = path.GetPathType(); bool reachable = !(type & ~(PATHFIND_NORMAL | PATHFIND_INCOMPLETE | PATHFIND_FARFROMPOLY));