aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-11-17 20:56:14 +0100
committerfunjoker <funjoker109@gmail.com>2023-12-01 23:28:35 +0100
commit33fcde6383d9325fae4eed10162829234d113c8d (patch)
treedb1c15425b7b53bc96c979433fb413c70a59536a
parentb45fa04a05825b7c1611583992900ea3445d59c2 (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.cpp9
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;