From 8eb294b731c4c6c0baaa571b39d8346a688ffaeb Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Tue, 22 Oct 2024 11:59:43 +0200 Subject: [PATCH] Recast: only run polygroup union logic if it won't be collapsed No point in running this code if we are going to collapse it. This also fixes a possible deadlock when removing and rebuilding individual tiles. --- src/thirdparty/recast/Detour/Source/DetourNavMeshBuilder.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/thirdparty/recast/Detour/Source/DetourNavMeshBuilder.cpp b/src/thirdparty/recast/Detour/Source/DetourNavMeshBuilder.cpp index 43188b14..c665ee0d 100644 --- a/src/thirdparty/recast/Detour/Source/DetourNavMeshBuilder.cpp +++ b/src/thirdparty/recast/Detour/Source/DetourNavMeshBuilder.cpp @@ -442,7 +442,8 @@ static void copyBaseDisjointSets(const dtTraverseTableCreateParams* params) if (i > 0) // Don't copy the base into itself. set.copy(targetSet); - unionTraverseLinkedPolyGroups(params, i); + if (!params->collapseGroups) + unionTraverseLinkedPolyGroups(params, i); } }