void MapBuilder::discoverTiles() { std::vector<std::string> files; uint32 mapID, tileX, tileY, tileID, count = 0; printf("Discovering maps... "); getDirContents(files, "maps"); for (uint32 i = 0; i < files.size(); ++i) { mapID = uint32(atoi(files[i].substr(0, 4).c_str())); if (std::find(m_tiles.begin(), m_tiles.end(), mapID) == m_tiles.end()) { m_tiles.emplace_back(MapTiles(mapID, new std::set<uint32>)); count++; } } files.clear(); getDirContents(files, "vmaps", "*.vmtree"); for (uint32 i = 0; i < files.size(); ++i) { mapID = uint32(atoi(files[i].substr(0, 4).c_str())); if (std::find(m_tiles.begin(), m_tiles.end(), mapID) == m_tiles.end()) { m_tiles.emplace_back(MapTiles(mapID, new std::set<uint32>)); count++; } } printf("found %u.\n", count); count = 0; printf("Discovering tiles... "); for (TileList::iterator itr = m_tiles.begin(); itr != m_tiles.end(); ++itr) { std::set<uint32>* tiles = (*itr).m_tiles; mapID = (*itr).m_mapId; files.clear(); getDirContents(files, "vmaps", Trinity::StringFormat("%04u*.vmtile", mapID)); for (uint32 i = 0; i < files.size(); ++i) { tileX = uint32(atoi(files[i].substr(8, 2).c_str())); tileY = uint32(atoi(files[i].substr(5, 2).c_str())); tileID = StaticMapTree::packTileID(tileY, tileX); tiles->insert(tileID); count++; } files.clear(); getDirContents(files, "maps", Trinity::StringFormat("%04u*", mapID)); for (uint32 i = 0; i < files.size(); ++i) { tileY = uint32(atoi(files[i].substr(5, 2).c_str())); tileX = uint32(atoi(files[i].substr(8, 2).c_str())); tileID = StaticMapTree::packTileID(tileX, tileY); if (tiles->insert(tileID).second) count++; } } printf("found %u.\n\n", count); }
void MapBuilder::discoverTiles() { std::vector<std::string> files; uint32 mapID, tileX, tileY, tileID, count = 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())); if (m_tiles.find(mapID) == m_tiles.end()) { m_tiles.insert(std::pair<uint32, std::set<uint32>*>(mapID, new std::set<uint32>)); count++; } } files.clear(); getDirContents(files, "vmaps", "*.vmtree"); for (uint32 i = 0; i < files.size(); ++i) { mapID = uint32(atoi(files[i].substr(0,3).c_str())); m_tiles.insert(std::pair<uint32, std::set<uint32>*>(mapID, new std::set<uint32>)); count++; } printf("found %u.\n", count); count = 0; printf("Discovering tiles... "); for (TileList::iterator itr = m_tiles.begin(); itr != m_tiles.end(); ++itr) { std::set<uint32>* tiles = (*itr).second; mapID = (*itr).first; sprintf(filter, "%03u*.vmtile", mapID); files.clear(); 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())); tileID = StaticMapTree::packTileID(tileY, tileX); tiles->insert(tileID); count++; } sprintf(filter, "%03u*", mapID); files.clear(); 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())); tileID = StaticMapTree::packTileID(tileX, tileY); if (tiles->insert(tileID).second) count++; } } printf("found %u.\n\n", count); }