diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-11-17 20:56:14 +0100 |
---|---|---|
committer | funjoker <funjoker109@gmail.com> | 2023-12-01 23:28:35 +0100 |
commit | 33fcde6383d9325fae4eed10162829234d113c8d (patch) | |
tree | db1c15425b7b53bc96c979433fb413c70a59536a | |
parent | b45fa04a05825b7c1611583992900ea3445d59c2 (diff) |
Tools/Map extractor: Minor optimization in MCNK parsing loop - look up end iterator once
(cherry picked from commit 54d969713b14057204cfe4a57f8db2d399939d2b)
-rw-r--r-- | src/tools/map_extractor/System.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/tools/map_extractor/System.cpp b/src/tools/map_extractor/System.cpp index 4f9fba2598e..00712b990ec 100644 --- a/src/tools/map_extractor/System.cpp +++ b/src/tools/map_extractor/System.cpp @@ -22,6 +22,7 @@ #include "DB2Meta.h" #include "DBFilesClientList.h" #include "ExtractorDB2LoadInfo.h" +#include "IteratorPair.h" #include "MapDefines.h" #include "StringFormat.h" #include "adt.h" @@ -489,9 +490,9 @@ bool ConvertADT(ChunkedFile& adt, std::string const& mapName, std::string const& bool hasHoles = false; bool hasFlightBox = false; - for (std::multimap<std::string, FileChunk*>::const_iterator itr = adt.chunks.lower_bound("MCNK"); itr != adt.chunks.upper_bound("MCNK"); ++itr) + for (auto const& [_, rawChunk] : Trinity::Containers::MapEqualRange(adt.chunks, "MCNK")) { - adt_MCNK* mcnk = itr->second->As<adt_MCNK>(); + adt_MCNK* mcnk = rawChunk->As<adt_MCNK>(); // Area data area_ids[mcnk->iy][mcnk->ix] = mcnk->areaid; @@ -536,7 +537,7 @@ bool ConvertADT(ChunkedFile& adt, std::string const& mapName, std::string const& } // Get custom height - if (FileChunk* chunk = itr->second->GetSubChunk("MCVT")) + if (FileChunk* chunk = rawChunk->GetSubChunk("MCVT")) { adt_MCVT* mcvt = chunk->As<adt_MCVT>(); // get V9 height map @@ -565,7 +566,7 @@ bool ConvertADT(ChunkedFile& adt, std::string const& mapName, std::string const& // Liquid data if (mcnk->sizeMCLQ > 8) { - if (FileChunk* chunk = itr->second->GetSubChunk("MCLQ")) + if (FileChunk* chunk = rawChunk->GetSubChunk("MCLQ")) { adt_MCLQ* liquid = chunk->As<adt_MCLQ>(); int count = 0; |