diff options
author | Kitzunu <24550914+Kitzunu@users.noreply.github.com> | 2021-09-20 00:45:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-20 00:45:42 +0200 |
commit | 6df7303b2404824a8d1e4396247fcec97c876963 (patch) | |
tree | e340efdf4fde80e6e6078c0542fd7a85a10fdcaa /src/server/game/Maps/Map.cpp | |
parent | b70083599bf743a8265797b7f8dcf78ecad81024 (diff) |
refactor(Core/Maps): Change map file version from FourCC to uint32 (#7866)
Co-Authored-By: Giacomo Pozzoni <giacomopoz@gmail.com>
Diffstat (limited to 'src/server/game/Maps/Map.cpp')
-rw-r--r-- | src/server/game/Maps/Map.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 915a86ea2f..6e8dabec28 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -38,7 +38,7 @@ union u_map_magic }; u_map_magic MapMagic = { {'M', 'A', 'P', 'S'} }; -u_map_magic MapVersionMagic = { {'v', '1', '.', '8'} }; +uint32 MapVersionMagic = 8; u_map_magic MapAreaMagic = { {'A', 'R', 'E', 'A'} }; u_map_magic MapHeightMagic = { {'M', 'H', 'G', 'T'} }; u_map_magic MapLiquidMagic = { {'M', 'L', 'I', 'Q'} }; @@ -85,8 +85,12 @@ bool Map::ExistMap(uint32 mapid, int gx, int gy) map_fileheader header; if (fread(&header, sizeof(header), 1, pf) == 1) { - if (header.mapMagic != MapMagic.asUInt || header.versionMagic != MapVersionMagic.asUInt) - LOG_ERROR("maps", "Map file '%s' is from an incompatible clientversion. Please recreate using the mapextractor.", tmp); + if (header.mapMagic != MapMagic.asUInt || header.versionMagic != MapVersionMagic) + { + LOG_ERROR("maps", "Map file '%s' is from an incompatible map version (%.*u v%u), %.*s v%u is expected. Please pull your source, recompile tools and recreate maps using the updated mapextractor, then replace your old map files with new files.", + tmp, 4, header.mapMagic, header.versionMagic, 4, MapMagic.asChar, MapVersionMagic); + } + else ret = true; } @@ -1335,7 +1339,7 @@ bool GridMap::loadData(char* filename) return false; } - if (header.mapMagic == MapMagic.asUInt && header.versionMagic == MapVersionMagic.asUInt) + if (header.mapMagic == MapMagic.asUInt && header.versionMagic == MapVersionMagic) { // loadup area data if (header.areaMapOffset && !loadAreaData(in, header.areaMapOffset, header.areaMapSize)) |