From 5e36f5895672f029cdd5ef7b7a422a1539a625c4 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Mon, 4 Nov 2024 22:10:42 +0100 Subject: [PATCH] Recast: add toggle to disable automatic traverse link building --- src/naveditor/Editor.cpp | 3 +++ src/naveditor/Editor_TileMesh.cpp | 21 +++++++++++++-------- src/naveditor/include/Editor.h | 1 + 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/naveditor/Editor.cpp b/src/naveditor/Editor.cpp index f401a30c..f6b07f5b 100644 --- a/src/naveditor/Editor.cpp +++ b/src/naveditor/Editor.cpp @@ -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)) diff --git a/src/naveditor/Editor_TileMesh.cpp b/src/naveditor/Editor_TileMesh.cpp index f4b7a27d..83cc3be0 100644 --- a/src/naveditor/Editor_TileMesh.cpp +++ b/src/naveditor/Editor_TileMesh.cpp @@ -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(); diff --git a/src/naveditor/include/Editor.h b/src/naveditor/include/Editor.h index 964aaf33..1c31f367 100644 --- a/src/naveditor/include/Editor.h +++ b/src/naveditor/include/Editor.h @@ -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;