From d4c3eb8dcce46058b6771f95bef5685579d934b2 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Fri, 16 Aug 2024 20:45:17 +0200 Subject: [PATCH] Recast: fix crash caused by traverse link table render selector Out of bounds access caused when a navmesh is loaded with a smaller amount of tables than currently selected. Always reset the selector when loading/building. --- src/naveditor/Editor.cpp | 1 + src/naveditor/Editor_TileMesh.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/src/naveditor/Editor.cpp b/src/naveditor/Editor.cpp index ee2494ba..1bdf0a47 100644 --- a/src/naveditor/Editor.cpp +++ b/src/naveditor/Editor.cpp @@ -1341,6 +1341,7 @@ bool Editor::loadNavMesh(const char* path, const bool fullPath) m_navQuery->init(m_navMesh, 2048); m_loadedNavMeshType = m_selectedNavMeshType; + m_traverseLinkParams.traverseAnimType = -2; if (m_tool) { diff --git a/src/naveditor/Editor_TileMesh.cpp b/src/naveditor/Editor_TileMesh.cpp index fe887bc9..97aade7b 100644 --- a/src/naveditor/Editor_TileMesh.cpp +++ b/src/naveditor/Editor_TileMesh.cpp @@ -472,6 +472,7 @@ bool Editor_TileMesh::handleBuild() } m_loadedNavMeshType = m_selectedNavMeshType; + m_traverseLinkParams.traverseAnimType = -2; dtNavMeshParams params; rdVcopy(params.orig, m_geom->getNavMeshBoundsMin());