From 090cc5e2c6600a8b746a181bfa708ca5239fedb3 Mon Sep 17 00:00:00 2001 From: IntelligentQuantum Date: Sun, 24 Apr 2022 22:44:20 +0430 Subject: [PATCH] fix(Tools/Mapextractor): Fix water height redundancy algorithm ignoring "no water" (#10947) --- src/common/Collision/Maps/MapDefines.h | 2 +- src/server/game/Maps/Map.cpp | 2 +- src/tools/map_extractor/System.cpp | 9 ++++++++- src/tools/mmaps_generator/TerrainBuilder.cpp | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/common/Collision/Maps/MapDefines.h b/src/common/Collision/Maps/MapDefines.h index d7111b76f..743321377 100644 --- a/src/common/Collision/Maps/MapDefines.h +++ b/src/common/Collision/Maps/MapDefines.h @@ -13,7 +13,7 @@ #define SIZE_OF_GRIDS 533.3333f #define MMAP_MAGIC 0x4d4d4150 // 'MMAP' -#define MMAP_VERSION 12 +#define MMAP_VERSION 13 struct MmapTileHeader { diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index acaafeffb..733714004 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -50,7 +50,7 @@ union u_map_magic }; u_map_magic MapMagic = { {'M', 'A', 'P', 'S'} }; -uint32 MapVersionMagic = 8; +uint32 MapVersionMagic = 9; u_map_magic MapAreaMagic = { {'A', 'R', 'E', 'A'} }; u_map_magic MapHeightMagic = { {'M', 'H', 'G', 'T'} }; u_map_magic MapLiquidMagic = { {'M', 'L', 'I', 'Q'} }; diff --git a/src/tools/map_extractor/System.cpp b/src/tools/map_extractor/System.cpp index 955119f2d..62ac294ac 100644 --- a/src/tools/map_extractor/System.cpp +++ b/src/tools/map_extractor/System.cpp @@ -308,7 +308,7 @@ void ReadLiquidTypeTableDBC() // Map file format data static char const* MAP_MAGIC = "MAPS"; -static uint32 const MAP_VERSION_MAGIC = 8; +static uint32 const MAP_VERSION_MAGIC = 9; static char const* MAP_AREA_MAGIC = "AREA"; static char const* MAP_HEIGHT_MAGIC = "MHGT"; static char const* MAP_LIQUID_MAGIC = "MLIQ"; @@ -841,7 +841,14 @@ bool ConvertADT(std::string const& inputPath, std::string const& outputPath, int if (minHeight > h) minHeight = h; } else + { liquid_height[y][x] = CONF_use_minHeight; + + if (minHeight > CONF_use_minHeight) + { + minHeight = CONF_use_minHeight; + } + } } } map.liquidMapOffset = map.heightMapOffset + map.heightMapSize; diff --git a/src/tools/mmaps_generator/TerrainBuilder.cpp b/src/tools/mmaps_generator/TerrainBuilder.cpp index f2a8ce344..d5e2a9a4c 100644 --- a/src/tools/mmaps_generator/TerrainBuilder.cpp +++ b/src/tools/mmaps_generator/TerrainBuilder.cpp @@ -80,7 +80,7 @@ struct map_liquidHeader namespace MMAP { - uint32 const MAP_VERSION_MAGIC = 8; + uint32 const MAP_VERSION_MAGIC = 9; TerrainBuilder::TerrainBuilder(bool skipLiquid) : m_skipLiquid (skipLiquid) { } TerrainBuilder::~TerrainBuilder() = default;