From 98949b75edefc35f7e8c33bf91846e473f74f24c Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 16 Feb 2019 12:39:47 +0100 Subject: Tools/Misc: Partial cherry-pick of 457c93bc4b6e5015852a6b7f5d05262b2efbd24a --- src/tools/vmap4_extractor/adtfile.cpp | 30 +++--------------------------- src/tools/vmap4_extractor/adtfile.h | 4 ++-- src/tools/vmap4_extractor/wdtfile.cpp | 19 +++++++------------ src/tools/vmap4_extractor/wdtfile.h | 2 +- 4 files changed, 13 insertions(+), 42 deletions(-) (limited to 'src') diff --git a/src/tools/vmap4_extractor/adtfile.cpp b/src/tools/vmap4_extractor/adtfile.cpp index 00ee89efad6..df7968264f1 100644 --- a/src/tools/vmap4_extractor/adtfile.cpp +++ b/src/tools/vmap4_extractor/adtfile.cpp @@ -74,7 +74,7 @@ char* GetExtension(char* FileName) return nullptr; } -ADTFile::ADTFile(char* filename): ADT(filename), nWMO(0), nMDX(0), WmoInstansName(nullptr), ModelInstansName(nullptr) +ADTFile::ADTFile(char* filename): ADT(filename), nWMO(0), nMDX(0) { Adtfilename.append(filename); } @@ -85,22 +85,6 @@ bool ADTFile::init(uint32 map_num, uint32 tileX, uint32 tileY) return false; uint32 size; - - std::string xMap; - std::string yMap; - - Adtfilename.erase(Adtfilename.find(".adt"),4); - std::string TempMapNumber; - TempMapNumber = Adtfilename.substr(Adtfilename.length()-6,6); - xMap = TempMapNumber.substr(TempMapNumber.find('_')+1,(TempMapNumber.find_last_of('_')-1) - (TempMapNumber.find('_'))); - yMap = TempMapNumber.substr(TempMapNumber.find_last_of('_')+1,(TempMapNumber.length()) - (TempMapNumber.find_last_of('_'))); - Adtfilename.erase((Adtfilename.length()-xMap.length()-yMap.length()-2), (xMap.length()+yMap.length()+2)); - //string AdtMapNumber = xMap + ' ' + yMap + ' ' + GetPlainName((char*)Adtfilename.c_str()); - //printf("Processing map %s...\n", AdtMapNumber.c_str()); - //printf("MapNumber = %s\n", TempMapNumber.c_str()); - //printf("xMap = %s\n", xMap.c_str()); - //printf("yMap = %s\n", yMap.c_str()); - std::string dirname = std::string(szWorkDirWmo) + "/dir_bin"; FILE *dirfile; dirfile = fopen(dirname.c_str(), "ab"); @@ -133,15 +117,13 @@ bool ADTFile::init(uint32 map_num, uint32 tileX, uint32 tileY) char *buf = new char[size]; ADT.read(buf, size); char *p=buf; - int t=0; - ModelInstansName = new std::string[size]; while (p WmoInstansName; + std::vector ModelInstansName; bool init(uint32 map_num, uint32 tileX, uint32 tileY); //void LoadMapChunks(); diff --git a/src/tools/vmap4_extractor/wdtfile.cpp b/src/tools/vmap4_extractor/wdtfile.cpp index 321261e8167..b3bd68bbf0c 100644 --- a/src/tools/vmap4_extractor/wdtfile.cpp +++ b/src/tools/vmap4_extractor/wdtfile.cpp @@ -31,7 +31,7 @@ char * wdtGetPlainName(char * FileName) return FileName; } -WDTFile::WDTFile(char* file_name, char* file_name1) : gWmoInstansName(nullptr), gnWMO(0), WDT(file_name) +WDTFile::WDTFile(char* file_name, char* file_name1) : gnWMO(0), WDT(file_name) { filename.append(file_name1,strlen(file_name1)); } @@ -76,15 +76,13 @@ bool WDTFile::init(char* /*map_id*/, unsigned int mapID) { char *buf = new char[size]; WDT.read(buf, size); - char *p=buf; - int q = 0; - gWmoInstansName = new std::string[size]; + char *p = buf; while (p < buf + size) { - char* s=wdtGetPlainName(p); - fixnamen(s,strlen(s)); - p=p+strlen(p)+1; - gWmoInstansName[q++] = s; + char* s = wdtGetPlainName(p); + fixnamen(s, strlen(s)); + p = p + strlen(p) + 1; + gWmoInstansName.push_back(s); } delete[] buf; } @@ -100,11 +98,8 @@ bool WDTFile::init(char* /*map_id*/, unsigned int mapID) { int id; WDT.read(&id, 4); - WMOInstance inst(WDT,gWmoInstansName[id].c_str(), mapID, 65, 65, dirfile); + WMOInstance inst(WDT, gWmoInstansName[id].c_str(), mapID, 65, 65, dirfile); } - - delete[] gWmoInstansName; - gWmoInstansName = nullptr; } } WDT.seek((int)nextpos); diff --git a/src/tools/vmap4_extractor/wdtfile.h b/src/tools/vmap4_extractor/wdtfile.h index 66404ab986c..f4cadadb40e 100644 --- a/src/tools/vmap4_extractor/wdtfile.h +++ b/src/tools/vmap4_extractor/wdtfile.h @@ -33,7 +33,7 @@ public: bool init(char* map_id, unsigned int mapID); ADTFile* GetMap(int x, int z); - std::string* gWmoInstansName; + std::vector gWmoInstansName; int gnWMO; private: -- cgit v1.2.3