Recast: fix static pathing build order

Traverse links should be build after the disjoint poly groups are created, but before the traverse tables are created. Previously, we created traverse links before disjoint poly groups causing isolated poly islands to be grouped under the same id.
This commit is contained in:
Kawe Mazidjatari 2024-08-09 14:22:07 +02:00
parent d5ddaf3313
commit 7cacc8ee03
3 changed files with 6 additions and 10 deletions

View File

@ -354,12 +354,6 @@ void Editor::handleUpdate(const float dt)
updateToolStates(dt); updateToolStates(dt);
} }
void Editor::buildTraverseLinks()
{
if (!m_navMesh) return;
dtCreateTraverseLinks(m_navMesh);
}
void Editor::buildStaticPathingData() void Editor::buildStaticPathingData()
{ {
if (!m_navMesh) return; if (!m_navMesh) return;
@ -371,6 +365,11 @@ void Editor::buildStaticPathingData()
m_ctx->log(RC_LOG_ERROR, "buildStaticPathingData: Failed to build disjoint poly groups."); m_ctx->log(RC_LOG_ERROR, "buildStaticPathingData: Failed to build disjoint poly groups.");
} }
if (!dtCreateTraverseLinks(m_navMesh))
{
m_ctx->log(RC_LOG_ERROR, "buildStaticPathingData: Failed to build traverse links.");
}
if (!dtCreateTraversalTableData(m_navMesh, data, NavMesh_GetTraversalTableCountForNavMeshType(m_selectedNavMeshType))) if (!dtCreateTraversalTableData(m_navMesh, data, NavMesh_GetTraversalTableCountForNavMeshType(m_selectedNavMeshType)))
{ {
m_ctx->log(RC_LOG_ERROR, "buildStaticPathingData: Failed to build traversal table data."); m_ctx->log(RC_LOG_ERROR, "buildStaticPathingData: Failed to build traversal table data.");
@ -519,7 +518,7 @@ void Editor::renderDetourDebugMenu()
{ {
ImGui::PushItemWidth(190); ImGui::PushItemWidth(190);
ImGui::SliderInt("Traverse Type", &m_traverseLinkDrawTypes, -1, 31); ImGui::SliderInt("Traverse Type", &m_traverseLinkDrawTypes, -1, 31);
ImGui::SliderInt("Traverse Distance", &m_traverseLinkDrawDistances, -1, 255); ImGui::SliderInt("Traverse Dist", &m_traverseLinkDrawDistances, -1, 255);
ImGui::PopItemWidth(); ImGui::PopItemWidth();
} }
} }

View File

@ -172,7 +172,6 @@ public:
else else
m_editor->buildTile(m_hitPos); m_editor->buildTile(m_hitPos);
m_editor->buildTraverseLinks();
m_editor->buildStaticPathingData(); m_editor->buildStaticPathingData();
} }
} }
@ -625,7 +624,6 @@ void Editor_TileMesh::buildAllTiles()
} }
} }
buildTraverseLinks();
buildStaticPathingData(); buildStaticPathingData();
// Start the build process. // Start the build process.

View File

@ -242,7 +242,6 @@ public:
void resetCommonSettings(); void resetCommonSettings();
void handleCommonSettings(); void handleCommonSettings();
void buildTraverseLinks();
void buildStaticPathingData(); void buildStaticPathingData();
private: private: