Recast: add toggle to disable automatic traverse link building

This commit is contained in:
Kawe Mazidjatari 2024-11-04 22:10:42 +01:00
parent 3e5540e762
commit 5e36f58956
3 changed files with 17 additions and 8 deletions

View File

@ -147,6 +147,7 @@ Editor::Editor() :
m_filterLowHangingObstacles(true),
m_filterLedgeSpans(true),
m_filterWalkableLowHeightSpans(true),
m_buildTraversePortals(true),
m_traverseRayDynamicOffset(true),
m_collapseLinkedPolyGroups(false),
m_buildBvTree(true),
@ -452,6 +453,8 @@ void Editor::handleCommonSettings()
if (ImGui::CollapsingHeader("Traverse Table Fine Tuner"))
renderTraverseTableFineTuners();
ImGui::Checkbox("Build Traverse Portals", &m_buildTraversePortals);
ImGui::Checkbox("Collapse Linked Poly Groups", &m_collapseLinkedPolyGroups);
if (ImGui::Checkbox("Dynamic Traverse Ray Offset", &m_traverseRayDynamicOffset))

View File

@ -759,14 +759,17 @@ void Editor_TileMesh::buildTile(const float* pos)
}
}
// Reconnect the traverse links.
dtTraverseLinkConnectParams params;
createTraverseLinkParams(params);
if (m_buildTraversePortals)
{
// Reconnect the traverse links.
dtTraverseLinkConnectParams params;
createTraverseLinkParams(params);
params.linkToNeighbor = false;
m_navMesh->connectTraverseLinks(tileRef, params);
params.linkToNeighbor = true;
m_navMesh->connectTraverseLinks(tileRef, params);
params.linkToNeighbor = false;
m_navMesh->connectTraverseLinks(tileRef, params);
params.linkToNeighbor = true;
m_navMesh->connectTraverseLinks(tileRef, params);
}
createStaticPathingData();
}
@ -877,7 +880,9 @@ void Editor_TileMesh::buildAllTiles()
}
connectOffMeshLinks();
createTraverseLinks();
if (m_buildTraversePortals)
createTraverseLinks();
createStaticPathingData();

View File

@ -240,6 +240,7 @@ protected:
bool m_filterLowHangingObstacles;
bool m_filterLedgeSpans;
bool m_filterWalkableLowHeightSpans;
bool m_buildTraversePortals;
bool m_traverseRayDynamicOffset;
bool m_collapseLinkedPolyGroups;
bool m_buildBvTree;