feat(Core/Tools): mmaps working with mapID >= 1000 (#2321)

This commit is contained in:
Shard
2019-10-17 08:01:18 +02:00
committed by Stoabrogga
parent 7d09a260e8
commit aa07ebf3d2

View File

@@ -88,14 +88,14 @@ namespace MMAP
void MapBuilder::discoverTiles() void MapBuilder::discoverTiles()
{ {
std::vector<std::string> files; std::vector<std::string> files;
uint32 mapID, tileX, tileY, tileID, count = 0; uint32 mapID, tileX, tileY, tileID, count = 0, fsize = 0;
char filter[12]; char filter[12];
printf("Discovering maps... "); printf("Discovering maps... ");
getDirContents(files, "maps"); getDirContents(files, "maps");
for (uint32 i = 0; i < files.size(); ++i) 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()) if (std::find(m_tiles.begin(), m_tiles.end(), mapID) == m_tiles.end())
{ {
m_tiles.emplace_back(MapTiles(mapID, new std::set<uint32>)); m_tiles.emplace_back(MapTiles(mapID, new std::set<uint32>));
@@ -107,7 +107,7 @@ namespace MMAP
getDirContents(files, "vmaps", "*.vmtree"); getDirContents(files, "vmaps", "*.vmtree");
for (uint32 i = 0; i < files.size(); ++i) 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()) if (std::find(m_tiles.begin(), m_tiles.end(), mapID) == m_tiles.end())
{ {
m_tiles.emplace_back(MapTiles(mapID, new std::set<uint32>)); m_tiles.emplace_back(MapTiles(mapID, new std::set<uint32>));
@@ -128,8 +128,10 @@ namespace MMAP
getDirContents(files, "vmaps", filter); getDirContents(files, "vmaps", filter);
for (uint32 i = 0; i < files.size(); ++i) for (uint32 i = 0; i < files.size(); ++i)
{ {
tileX = uint32(atoi(files[i].substr(7,2).c_str())); fsize = files[i].size();
tileY = uint32(atoi(files[i].substr(4,2).c_str()));
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); tileID = StaticMapTree::packTileID(tileY, tileX);
tiles->insert(tileID); tiles->insert(tileID);
@@ -141,8 +143,10 @@ namespace MMAP
getDirContents(files, "maps", filter); getDirContents(files, "maps", filter);
for (uint32 i = 0; i < files.size(); ++i) for (uint32 i = 0; i < files.size(); ++i)
{ {
tileY = uint32(atoi(files[i].substr(3,2).c_str())); fsize = files[i].size();
tileX = uint32(atoi(files[i].substr(5,2).c_str()));
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); tileID = StaticMapTree::packTileID(tileX, tileY);
if (tiles->insert(tileID).second) if (tiles->insert(tileID).second)