From 3f7d02dc717c8c5f3f5dae9a509da74b8ff13031 Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Wed, 30 Sep 2026 08:53:13 -0500 Subject: [PATCH] refactor(dNavigation): fixed-width ints in the navmesh file headers They are read straight from the .bin files; int32_t is the same layout. Co-Authored-By: Claude Opus 5.5 --- dNavigation/DetourExtensions.h | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/dNavigation/DetourExtensions.h b/dNavigation/DetourExtensions.h index 55d3e29cb..0610cb82e 100644 --- a/dNavigation/DetourExtensions.h +++ b/dNavigation/DetourExtensions.h @@ -1,5 +1,7 @@ #pragma once +#include + #include "Recast.h" #include "DetourCommon.h" #include "DetourNavMesh.h" @@ -9,17 +11,22 @@ static const int NAVMESHSET_MAGIC = 'M' << 24 | 'S' << 16 | 'E' << 8 | 'T'; // char[4] of 'MSET' static const int NAVMESHSET_VERSION = 1; +// Read straight from the .bin navmesh files struct NavMeshSetHeader { - int magic; - int version; - int numTiles; + int32_t magic; + int32_t version; + int32_t numTiles; dtNavMeshParams params; }; struct NavMeshTileHeader { dtTileRef tileRef; - int dataSize; + int32_t dataSize; }; +// The layout the files were always read with on 64-bit builds +static_assert(sizeof(NavMeshSetHeader) == 12 + sizeof(dtNavMeshParams)); +static_assert(sizeof(NavMeshTileHeader) == (sizeof(dtTileRef) == 8 ? 16 : 8)); + static const int MAX_POLYS = 256; static const int MAX_SMOOTH = 2048;