From 4a3f22948c91b74de3f43a9cd674597904780f35 Mon Sep 17 00:00:00 2001 From: Shauren Date: Thu, 25 Sep 2025 00:32:39 +0200 Subject: Tools/vmap_extractor: Fixed duplicate output files with .m2 and .m2.vmo extensions --- src/tools/vmap4_extractor/adtfile.cpp | 2 +- src/tools/vmap4_extractor/model.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/tools/vmap4_extractor/adtfile.cpp b/src/tools/vmap4_extractor/adtfile.cpp index 7c09833d1d8..2db74603093 100644 --- a/src/tools/vmap4_extractor/adtfile.cpp +++ b/src/tools/vmap4_extractor/adtfile.cpp @@ -45,7 +45,7 @@ void FixNameCase(char* name, size_t len) char* ptr = name + len - 1; //extension in lowercase - for (; *ptr != '.'; --ptr) + for (; *ptr != '.' && ptr >= name; --ptr) *ptr |= 0x20; for (; ptr >= name; --ptr) diff --git a/src/tools/vmap4_extractor/model.cpp b/src/tools/vmap4_extractor/model.cpp index af2eafe4bf6..9b4b629265c 100644 --- a/src/tools/vmap4_extractor/model.cpp +++ b/src/tools/vmap4_extractor/model.cpp @@ -256,7 +256,10 @@ void Doodad::ExtractSet(WMODoodadData const& doodadData, ADT::MODF const& wmo, b uint32 nlen = ModelInstName.length(); NormalizeFileName(ModelInstName.data(), nlen); if (ModelInstName.ends_with(".mdx") || ModelInstName.ends_with(".mdl")) + { ModelInstName.replace(ModelInstName.length() - 2, 2, "2"); + nlen = ModelInstName.length(); + } std::string tempname = Trinity::StringFormat("{}/{}", szWorkDirWmo, ModelInstName); FILE* input = fopen(tempname.c_str(), "r+b"); -- cgit v1.2.3