fix(Core/Movement): Apply bot filter setters at all PathGenerator construction sites

This commit is contained in:
bash 2026-05-29 15:22:18 +02:00
parent 9d3ecbab88
commit 2a8bd23272
4 changed files with 10 additions and 0 deletions

View File

@ -4292,6 +4292,8 @@ bool ArenaTactics::Execute(Event /*event*/)
if (losBlocked) if (losBlocked)
{ {
PathGenerator path(bot); 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); path.CalculatePath(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), false);
if (path.GetPathType() != PATHFIND_NOPATH) if (path.GetPathType() != PATHFIND_NOPATH)

View File

@ -124,6 +124,8 @@ bool GoAction::Execute(Event event)
if (botAI->HasStrategy("debug move", BOT_STATE_NON_COMBAT)) if (botAI->HasStrategy("debug move", BOT_STATE_NON_COMBAT))
{ {
PathGenerator path(bot); PathGenerator path(bot);
path.SetExcludeFlags(path.GetExcludeFlags() | NAV_GROUND_STEEP);
path.SetAreaCost(NAV_WATER, 10.0f);
path.CalculatePath(x, y, z, false); path.CalculatePath(x, y, z, false);

View File

@ -971,6 +971,8 @@ bool MovementAction::ReachCombatTo(Unit* target, float distance)
return false; return false;
PathGenerator path(bot); PathGenerator path(bot);
path.SetExcludeFlags(path.GetExcludeFlags() | NAV_GROUND_STEEP);
path.SetAreaCost(NAV_WATER, 10.0f);
path.CalculatePath(tx, ty, tz, false); path.CalculatePath(tx, ty, tz, false);
PathType type = path.GetPathType(); PathType type = path.GetPathType();
int typeOk = PATHFIND_NORMAL | PATHFIND_INCOMPLETE | PATHFIND_SHORTCUT; 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; PathResult result;
PathGenerator gen(bot); PathGenerator gen(bot);
gen.SetExcludeFlags(gen.GetExcludeFlags() | NAV_GROUND_STEEP);
gen.SetAreaCost(NAV_WATER, 10.0f);
gen.CalculatePath(x, y, z, forceDestination); gen.CalculatePath(x, y, z, forceDestination);
result.pathType = gen.GetPathType(); result.pathType = gen.GetPathType();
result.reachable = !(result.pathType & (~acceptMask)); result.reachable = !(result.pathType & (~acceptMask));

View File

@ -1252,6 +1252,8 @@ TravelNodeRoute TravelNodeMap::FindRouteNearestNodes(WorldPosition startPos, Wor
if (startNodePosition.GetMapId() == bot->GetMapId()) if (startNodePosition.GetMapId() == bot->GetMapId())
{ {
PathGenerator path(bot); PathGenerator path(bot);
path.SetExcludeFlags(path.GetExcludeFlags() | NAV_GROUND_STEEP);
path.SetAreaCost(NAV_WATER, 10.0f);
path.CalculatePath(startNodePosition.GetPositionX(), startNodePosition.GetPositionY(), startNodePosition.GetPositionZ()); path.CalculatePath(startNodePosition.GetPositionX(), startNodePosition.GetPositionY(), startNodePosition.GetPositionZ());
PathType type = path.GetPathType(); PathType type = path.GetPathType();
bool reachable = !(type & ~(PATHFIND_NORMAL | PATHFIND_INCOMPLETE | PATHFIND_FARFROMPOLY)); bool reachable = !(type & ~(PATHFIND_NORMAL | PATHFIND_INCOMPLETE | PATHFIND_FARFROMPOLY));