aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/tools/map_extractor/System.cpp10
-rw-r--r--src/tools/vmap4_extractor/vmapexport.cpp12
-rw-r--r--src/tools/vmap4_extractor/wmo.cpp18
-rw-r--r--src/tools/vmap4_extractor/wmo.h5
4 files changed, 20 insertions, 25 deletions
diff --git a/src/tools/map_extractor/System.cpp b/src/tools/map_extractor/System.cpp
index 8452332b402..4e603450840 100644
--- a/src/tools/map_extractor/System.cpp
+++ b/src/tools/map_extractor/System.cpp
@@ -41,8 +41,8 @@ typedef struct
uint32 id;
} map_id;
-map_id *map_ids;
-uint16 *LiqType;
+std::vector<map_id> map_ids;
+std::vector<uint16> LiqType;
#define MAX_PATH_LENGTH 128
char output_path[MAX_PATH_LENGTH] = ".";
char input_path[MAX_PATH_LENGTH] = ".";
@@ -210,7 +210,7 @@ uint32 ReadMapDBC()
}
size_t map_count = dbc.getRecordCount();
- map_ids = new map_id[map_count];
+ map_ids.resize(map_count);
for(uint32 x = 0; x < map_count; ++x)
{
map_ids[x].id = dbc.getRecord(x).getUInt(0);
@@ -242,8 +242,7 @@ void ReadLiquidTypeTableDBC()
size_t liqTypeCount = dbc.getRecordCount();
size_t liqTypeMaxId = dbc.getMaxId();
- LiqType = new uint16[liqTypeMaxId + 1];
- memset(LiqType, 0xff, (liqTypeMaxId + 1) * sizeof(uint16));
+ LiqType.resize(liqTypeMaxId + 1, 0xFFFF);
for(uint32 x = 0; x < liqTypeCount; ++x)
LiqType[dbc.getRecord(x).getUInt(0)] = dbc.getRecord(x).getUInt(3);
@@ -956,7 +955,6 @@ void ExtractMapsFromMpq(uint32 build)
}
}
printf("\n");
- delete[] map_ids;
}
bool ExtractFile( char const* mpq_name, std::string const& filename )
diff --git a/src/tools/vmap4_extractor/vmapexport.cpp b/src/tools/vmap4_extractor/vmapexport.cpp
index b4bde805085..d7aa561f909 100644
--- a/src/tools/vmap4_extractor/vmapexport.cpp
+++ b/src/tools/vmap4_extractor/vmapexport.cpp
@@ -53,8 +53,8 @@ typedef struct
unsigned int id;
}map_id;
-map_id * map_ids;
-uint16 *LiqType = 0;
+std::vector<map_id> map_ids;
+std::vector<uint16> LiqType;
uint32 map_count;
char output_path[128]=".";
char input_path[1024]=".";
@@ -101,8 +101,7 @@ void ReadLiquidTypeTableDBC()
size_t LiqType_count = dbc.getRecordCount();
size_t LiqType_maxid = dbc.getRecord(LiqType_count - 1).getUInt(0);
- LiqType = new uint16[LiqType_maxid + 1];
- memset(LiqType, 0xff, (LiqType_maxid + 1) * sizeof(uint16));
+ LiqType.resize(LiqType_maxid + 1, 0xFFFF);
for(uint32 x = 0; x < LiqType_count; ++x)
LiqType[dbc.getRecord(x).getUInt(0)] = dbc.getRecord(x).getUInt(3);
@@ -501,7 +500,7 @@ int main(int argc, char ** argv)
return 1;
}
map_count = dbc->getRecordCount();
- map_ids = new map_id[map_count];
+ map_ids.resize(map_count);
for (unsigned int x = 0; x < map_count; ++x)
{
map_ids[x].id = dbc->getRecord(x).getUInt(0);
@@ -511,7 +510,6 @@ int main(int argc, char ** argv)
if (strlen(map_name) >= max_map_name_length)
{
delete dbc;
- delete[] map_ids;
printf("FATAL ERROR: Map name too long.\n");
return 1;
}
@@ -523,7 +521,6 @@ int main(int argc, char ** argv)
delete dbc;
ParsMapFiles();
- delete[] map_ids;
//nError = ERROR_SUCCESS;
// Extract models, listed in DameObjectDisplayInfo.dbc
ExtractGameobjectModels();
@@ -537,6 +534,5 @@ int main(int argc, char ** argv)
}
printf("Extract %s. Work complete. No errors.\n", versionString);
- delete[] LiqType;
return 0;
}
diff --git a/src/tools/vmap4_extractor/wmo.cpp b/src/tools/vmap4_extractor/wmo.cpp
index 6467d9cc98d..5527e84e693 100644
--- a/src/tools/vmap4_extractor/wmo.cpp
+++ b/src/tools/vmap4_extractor/wmo.cpp
@@ -27,11 +27,11 @@
#undef min
#undef max
-extern uint16 *LiqType;
+extern std::vector<uint16> LiqType;
WMORoot::WMORoot(std::string &filename)
- : filename(filename), col(0), nTextures(0), nGroups(0), nP(0), nLights(0),
- nModels(0), nDoodads(0), nDoodadSets(0), RootWMOID(0), liquidType(0)
+ : filename(filename), color(0), nTextures(0), nGroups(0), nPortals(0), nLights(0),
+ nDoodadNames(0), nDoodadDefs(0), nDoodadSets(0), RootWMOID(0), flags(0)
{
memset(bbcorn1, 0, sizeof(bbcorn1));
memset(bbcorn2, 0, sizeof(bbcorn2));
@@ -63,16 +63,16 @@ bool WMORoot::open()
{
f.read(&nTextures, 4);
f.read(&nGroups, 4);
- f.read(&nP, 4);
+ f.read(&nPortals, 4);
f.read(&nLights, 4);
- f.read(&nModels, 4);
- f.read(&nDoodads, 4);
+ f.read(&nDoodadNames, 4);
+ f.read(&nDoodadDefs, 4);
f.read(&nDoodadSets, 4);
- f.read(&col, 4);
+ f.read(&color, 4);
f.read(&RootWMOID, 4);
f.read(bbcorn1, 12);
f.read(bbcorn2, 12);
- f.read(&liquidType, 4);
+ f.read(&flags, 4);
break;
}
/*
@@ -407,7 +407,7 @@ int WMOGroup::ConvertToVMAPGroupWmo(FILE *output, WMORoot *rootWMO, bool precise
// according to WoW.Dev Wiki:
uint32 liquidEntry;
- if (rootWMO->liquidType & 4)
+ if (rootWMO->flags & 4)
liquidEntry = liquidType;
else if (liquidType == 15)
liquidEntry = 0;
diff --git a/src/tools/vmap4_extractor/wmo.h b/src/tools/vmap4_extractor/wmo.h
index 464c9500eef..f8fd7bdc966 100644
--- a/src/tools/vmap4_extractor/wmo.h
+++ b/src/tools/vmap4_extractor/wmo.h
@@ -23,6 +23,7 @@
#include <string>
#include <set>
+#include <vector>
#include "vec3d.h"
#include "loadlib/loadlib.h"
@@ -51,8 +52,8 @@ class WMORoot
private:
std::string filename;
public:
- unsigned int col;
- uint32 nTextures, nGroups, nP, nLights, nModels, nDoodads, nDoodadSets, RootWMOID, liquidType;
+ unsigned int color;
+ uint32 nTextures, nGroups, nPortals, nLights, nDoodadNames, nDoodadDefs, nDoodadSets, RootWMOID, flags;
float bbcorn1[3];
float bbcorn2[3];