From 33fcde6383d9325fae4eed10162829234d113c8d Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 17 Nov 2023 20:56:14 +0100 Subject: Tools/Map extractor: Minor optimization in MCNK parsing loop - look up end iterator once (cherry picked from commit 54d969713b14057204cfe4a57f8db2d399939d2b) --- src/tools/map_extractor/System.cpp | 9 +++++---- 1 file 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::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* mcnk = rawChunk->As(); // 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(); // 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(); int count = 0; -- cgit v1.2.3