From aa07ebf3d20726e8924774613655862ea769bdf5 Mon Sep 17 00:00:00 2001 From: Shard <30301841+Shard-MW@users.noreply.github.com> Date: Thu, 17 Oct 2019 08:01:18 +0200 Subject: [PATCH] feat(Core/Tools): mmaps working with mapID >= 1000 (#2321) --- src/tools/mmaps_generator/MapBuilder.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/tools/mmaps_generator/MapBuilder.cpp b/src/tools/mmaps_generator/MapBuilder.cpp index 30317b663..7fa3363ce 100644 --- a/src/tools/mmaps_generator/MapBuilder.cpp +++ b/src/tools/mmaps_generator/MapBuilder.cpp @@ -88,14 +88,14 @@ namespace MMAP void MapBuilder::discoverTiles() { std::vector files; - uint32 mapID, tileX, tileY, tileID, count = 0; + uint32 mapID, tileX, tileY, tileID, count = 0, fsize = 0; char filter[12]; printf("Discovering maps... "); getDirContents(files, "maps"); for (uint32 i = 0; i < files.size(); ++i) { - mapID = uint32(atoi(files[i].substr(0,3).c_str())); + mapID = uint32(atoi(files[i].substr(0, files[i].size() - 8).c_str())); if (std::find(m_tiles.begin(), m_tiles.end(), mapID) == m_tiles.end()) { m_tiles.emplace_back(MapTiles(mapID, new std::set)); @@ -107,7 +107,7 @@ namespace MMAP getDirContents(files, "vmaps", "*.vmtree"); for (uint32 i = 0; i < files.size(); ++i) { - mapID = uint32(atoi(files[i].substr(0,3).c_str())); + mapID = uint32(atoi(files[i].substr(0, files[i].size() - 7).c_str())); if (std::find(m_tiles.begin(), m_tiles.end(), mapID) == m_tiles.end()) { m_tiles.emplace_back(MapTiles(mapID, new std::set)); @@ -128,8 +128,10 @@ namespace MMAP getDirContents(files, "vmaps", filter); for (uint32 i = 0; i < files.size(); ++i) { - tileX = uint32(atoi(files[i].substr(7,2).c_str())); - tileY = uint32(atoi(files[i].substr(4,2).c_str())); + fsize = files[i].size(); + + tileY = uint32(atoi(files[i].substr(fsize - 12, 2).c_str())); + tileX = uint32(atoi(files[i].substr(fsize - 9, 2).c_str())); tileID = StaticMapTree::packTileID(tileY, tileX); tiles->insert(tileID); @@ -141,8 +143,10 @@ namespace MMAP getDirContents(files, "maps", filter); for (uint32 i = 0; i < files.size(); ++i) { - tileY = uint32(atoi(files[i].substr(3,2).c_str())); - tileX = uint32(atoi(files[i].substr(5,2).c_str())); + fsize = files[i].size(); + + tileY = uint32(atoi(files[i].substr(fsize - 8, 2).c_str())); + tileX = uint32(atoi(files[i].substr(fsize - 6, 2).c_str())); tileID = StaticMapTree::packTileID(tileX, tileY); if (tiles->insert(tileID).second)