From 35f5c34190b10a3a95ba5b9939a203d7a3ecc6d8 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Thu, 14 Nov 2024 02:53:19 +0100 Subject: [PATCH] Recast: use dtLink's traverse type getters Small cleanup. --- src/thirdparty/recast/DebugUtils/Include/DetourDump.h | 2 +- .../recast/DebugUtils/Source/DetourDebugDraw.cpp | 4 ++-- src/thirdparty/recast/DebugUtils/Source/DetourDump.cpp | 10 ++++++---- .../recast/Detour/Source/DetourNavMeshBuilder.cpp | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/thirdparty/recast/DebugUtils/Include/DetourDump.h b/src/thirdparty/recast/DebugUtils/Include/DetourDump.h index 11f03a70..a47edd69 100644 --- a/src/thirdparty/recast/DebugUtils/Include/DetourDump.h +++ b/src/thirdparty/recast/DebugUtils/Include/DetourDump.h @@ -3,6 +3,6 @@ #include "FileIO.h" -bool duDumpTraverseLinkDetail(const dtNavMesh& mesh, const dtNavMeshQuery* query, const int traverseType, duFileIO* const io); +bool duDumpTraverseLinkDetail(const dtNavMesh& mesh, const dtNavMeshQuery* query, const int dumpTraverseType, duFileIO* const io); #endif // DETOUR_DUMP_H diff --git a/src/thirdparty/recast/DebugUtils/Source/DetourDebugDraw.cpp b/src/thirdparty/recast/DebugUtils/Source/DetourDebugDraw.cpp index d08156e7..5fbd4c63 100644 --- a/src/thirdparty/recast/DebugUtils/Source/DetourDebugDraw.cpp +++ b/src/thirdparty/recast/DebugUtils/Source/DetourDebugDraw.cpp @@ -265,12 +265,12 @@ static void drawTraverseLinks(duDebugDraw* dd, const dtNavMesh& mesh, const dtNa const dtLink* link = &tile->links[j]; // Skip "normal" links (non-jumping ones). - if (link->traverseType == DT_NULL_TRAVERSE_TYPE) + if (!link->hasTraverseType()) continue; // Filter, drawLinkType -1 means draw all types const int drawTraverseType = traverseLinkParams.traverseLinkType; - const unsigned char linkTraverseType = link->traverseType & (DT_MAX_TRAVERSE_TYPES-1); + const unsigned char linkTraverseType = link->getTraverseType(); if (drawTraverseType != -1 && linkTraverseType != drawTraverseType) continue; diff --git a/src/thirdparty/recast/DebugUtils/Source/DetourDump.cpp b/src/thirdparty/recast/DebugUtils/Source/DetourDump.cpp index 1dee388d..b1a15296 100644 --- a/src/thirdparty/recast/DebugUtils/Source/DetourDump.cpp +++ b/src/thirdparty/recast/DebugUtils/Source/DetourDump.cpp @@ -4,7 +4,7 @@ #include "Detour/Include/DetourNavMeshQuery.h" #include "DebugUtils/Include/DetourDump.h" -bool duDumpTraverseLinkDetail(const dtNavMesh& mesh, const dtNavMeshQuery* query, const int traverseType, duFileIO* const io) +bool duDumpTraverseLinkDetail(const dtNavMesh& mesh, const dtNavMeshQuery* query, const int dumpTraverseType, duFileIO* const io) { if (!io) { @@ -53,11 +53,13 @@ bool duDumpTraverseLinkDetail(const dtNavMesh& mesh, const dtNavMeshQuery* query const dtLink* link = &tile->links[k]; // Skip "normal" links (non-jumping ones). - if (link->traverseType == DT_NULL_TRAVERSE_TYPE) + if (!link->hasTraverseType()) continue; + const unsigned char traverseType = link->getTraverseType(); + // Filter out anything not matching input. - if (traverseType != -1 && link->traverseType != traverseType) + if (dumpTraverseType != -1 && traverseType != dumpTraverseType) continue; const dtPoly* endPoly; @@ -104,7 +106,7 @@ bool duDumpTraverseLinkDetail(const dtNavMesh& mesh, const dtNavMeshQuery* query io->write(buf, bufCount); bufCount = snprintf(buf, sizeof(buf), "\t\televation: %g\n", elevation); io->write(buf, bufCount); - bufCount = snprintf(buf, sizeof(buf), "\t\ttraverseType: %hhu\n", link->traverseType); + bufCount = snprintf(buf, sizeof(buf), "\t\ttraverseType: %hhu\n", traverseType); io->write(buf, bufCount); bufCount = snprintf(buf, sizeof(buf), "\t\ttraverseDist: %hhu\n", link->traverseDist); io->write(buf, bufCount); diff --git a/src/thirdparty/recast/Detour/Source/DetourNavMeshBuilder.cpp b/src/thirdparty/recast/Detour/Source/DetourNavMeshBuilder.cpp index 0ffe62b5..3bde19d3 100644 --- a/src/thirdparty/recast/Detour/Source/DetourNavMeshBuilder.cpp +++ b/src/thirdparty/recast/Detour/Source/DetourNavMeshBuilder.cpp @@ -397,7 +397,7 @@ static bool floodPolygonIsland(dtNavMesh* nav, dtDisjointSet& set, const dtPolyR const dtLink& link = currentTile->links[i]; // Skip traverse links as these can join separate islands together. - if (link.traverseType != DT_NULL_TRAVERSE_TYPE) + if (link.hasTraverseType()) continue; const dtPolyRef neiRef = link.ref;