diff options
author | Shauren <shauren.trinity@gmail.com> | 2019-02-16 12:39:47 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2019-02-23 22:00:04 +0100 |
commit | 98949b75edefc35f7e8c33bf91846e473f74f24c (patch) | |
tree | 2e683c9fb47f8c162825edecf053073859a01681 /src | |
parent | 2924283f072459c0c324c8e8d6f7e78ca718dbad (diff) |
Tools/Misc: Partial cherry-pick of 457c93bc4b6e5015852a6b7f5d05262b2efbd24a
Diffstat (limited to 'src')
-rw-r--r-- | src/tools/vmap4_extractor/adtfile.cpp | 30 | ||||
-rw-r--r-- | src/tools/vmap4_extractor/adtfile.h | 4 | ||||
-rw-r--r-- | src/tools/vmap4_extractor/wdtfile.cpp | 19 | ||||
-rw-r--r-- | src/tools/vmap4_extractor/wdtfile.h | 2 |
4 files changed, 13 insertions, 42 deletions
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<buf+size) { fixnamen(p,strlen(p)); char* s = GetPlainName(p); fixname2(s,strlen(s)); - ModelInstansName[t++] = s; + ModelInstansName.push_back(s); std::string path(p); ExtractSingleModel(path); @@ -158,15 +140,13 @@ bool ADTFile::init(uint32 map_num, uint32 tileX, uint32 tileY) char* buf = new char[size]; ADT.read(buf, size); char* p=buf; - int q = 0; - WmoInstansName = new std::string[size]; while (p<buf+size) { char* s = GetPlainName(p); fixnamen(s, strlen(s)); fixname2(s, strlen(s)); p += strlen(p) + 1; - WmoInstansName[q++] = s; + WmoInstansName.push_back(s); } delete[] buf; } @@ -183,8 +163,6 @@ bool ADTFile::init(uint32 map_num, uint32 tileX, uint32 tileY) ADT.read(&id, 4); ModelInstance inst(ADT,ModelInstansName[id].c_str(), map_num, tileX, tileY, dirfile); } - delete[] ModelInstansName; - ModelInstansName = nullptr; } } else if (!strcmp(fourcc,"MODF")) @@ -198,8 +176,6 @@ bool ADTFile::init(uint32 map_num, uint32 tileX, uint32 tileY) ADT.read(&id, 4); WMOInstance inst(ADT,WmoInstansName[id].c_str(), map_num, tileX, tileY, dirfile); } - delete[] WmoInstansName; - WmoInstansName = nullptr; } } //====================== diff --git a/src/tools/vmap4_extractor/adtfile.h b/src/tools/vmap4_extractor/adtfile.h index 51a3aa3d05d..1f9937394e1 100644 --- a/src/tools/vmap4_extractor/adtfile.h +++ b/src/tools/vmap4_extractor/adtfile.h @@ -119,8 +119,8 @@ public: ~ADTFile(); int nWMO; int nMDX; - std::string* WmoInstansName; - std::string* ModelInstansName; + std::vector<std::string> WmoInstansName; + std::vector<std::string> 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<std::string> gWmoInstansName; int gnWMO; private: |