aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2019-02-16 12:39:47 +0100
committerShauren <shauren.trinity@gmail.com>2019-02-23 22:00:04 +0100
commit98949b75edefc35f7e8c33bf91846e473f74f24c (patch)
tree2e683c9fb47f8c162825edecf053073859a01681 /src
parent2924283f072459c0c324c8e8d6f7e78ca718dbad (diff)
Tools/Misc: Partial cherry-pick of 457c93bc4b6e5015852a6b7f5d05262b2efbd24a
Diffstat (limited to 'src')
-rw-r--r--src/tools/vmap4_extractor/adtfile.cpp30
-rw-r--r--src/tools/vmap4_extractor/adtfile.h4
-rw-r--r--src/tools/vmap4_extractor/wdtfile.cpp19
-rw-r--r--src/tools/vmap4_extractor/wdtfile.h2
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: