aboutsummaryrefslogtreecommitdiff
path: root/src/common/Collision/Maps/MMapDefines.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/Collision/Maps/MMapDefines.h')
-rw-r--r--src/common/Collision/Maps/MMapDefines.h51
1 files changed, 38 insertions, 13 deletions
diff --git a/src/common/Collision/Maps/MMapDefines.h b/src/common/Collision/Maps/MMapDefines.h
index 368281543a2..522112ebe62 100644
--- a/src/common/Collision/Maps/MMapDefines.h
+++ b/src/common/Collision/Maps/MMapDefines.h
@@ -19,22 +19,29 @@
#define MMapDefines_h__
#include "Define.h"
-#include "DetourNavMesh.h"
+#include <DetourNavMesh.h>
-const uint32 MMAP_MAGIC = 0x4d4d4150; // 'MMAP'
-#define MMAP_VERSION 15
+inline uint32 constexpr MMAP_MAGIC = 0x4d4d4150; // 'MMAP'
+inline uint32 constexpr MMAP_VERSION = 16;
-struct MmapTileHeader
+struct MmapNavMeshHeader
{
- uint32 mmapMagic;
- uint32 dtVersion;
- uint32 mmapVersion;
- uint32 size;
- char usesLiquids;
- char padding[3];
+ uint32 mmapMagic = MMAP_MAGIC;
+ uint32 mmapVersion = MMAP_VERSION;
+ dtNavMeshParams params = { };
+ uint32 offmeshConnectionCount = 0;
+};
+
+static_assert(sizeof(MmapNavMeshHeader) == 40);
- MmapTileHeader() : mmapMagic(MMAP_MAGIC), dtVersion(DT_NAVMESH_VERSION),
- mmapVersion(MMAP_VERSION), size(0), usesLiquids(true), padding() { }
+struct MmapTileHeader
+{
+ uint32 mmapMagic = MMAP_MAGIC;
+ uint32 dtVersion = DT_NAVMESH_VERSION;
+ uint32 mmapVersion = MMAP_VERSION;
+ uint32 size = 0;
+ char usesLiquids = true;
+ char padding[3] = { };
};
// All padding fields must be handled and initialized to ensure mmaps_generator will produce binary-identical *.mmtile files
@@ -60,7 +67,7 @@ enum NavArea
NAV_AREA_ALL_MASK = 0x3F // max allowed value
};
-enum NavTerrainFlag
+enum NavTerrainFlag : uint16
{
NAV_EMPTY = 0x00,
NAV_GROUND = 1 << (NAV_AREA_MAX_VALUE - NAV_AREA_GROUND),
@@ -69,4 +76,22 @@ enum NavTerrainFlag
NAV_MAGMA_SLIME = 1 << (NAV_AREA_MAX_VALUE - NAV_AREA_MAGMA_SLIME)
};
+enum OffMeshConnectionFlag : uint8
+{
+ OFFMESH_CONNECTION_FLAG_BIDIRECTIONAL = 0x01
+};
+
+struct OffMeshData
+{
+ uint32 MapId;
+ uint32 TileX;
+ uint32 TileY;
+ float From[3];
+ float To[3];
+ float Radius;
+ OffMeshConnectionFlag ConnectionFlags;
+ uint8 AreaId;
+ NavTerrainFlag Flags;
+};
+
#endif // MMapDefines_h__