aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2013-12-29 20:27:37 -0500
committerSubv <subv2112@gmail.com>2013-12-29 20:27:37 -0500
commit8cc77ff1fdc1f4ee788710383516d8794fb31a72 (patch)
treeff50812941e715de3170fbceb9097bba15511586 /src
parent0e58f5ad2444f8846ad00d0cd12ecafa3f673693 (diff)
Don't delete the liquid height data in the destructor as it is called after ReadGroups ends, so the pointers are deleted but they are still referenced in the objects contained inside the Groups vector.
Diffstat (limited to 'src')
-rw-r--r--src/tools/mesh_extractor/Utils.h4
-rw-r--r--src/tools/mesh_extractor/WDT.cpp3
-rw-r--r--src/tools/mesh_extractor/WorldModelRoot.cpp2
3 files changed, 5 insertions, 4 deletions
diff --git a/src/tools/mesh_extractor/Utils.h b/src/tools/mesh_extractor/Utils.h
index 00f89f717c4..07a76282a45 100644
--- a/src/tools/mesh_extractor/Utils.h
+++ b/src/tools/mesh_extractor/Utils.h
@@ -261,13 +261,13 @@ public:
~LiquidData()
{
- for (uint32 i = 0; i < CountXVertices; ++i)
+ /*for (uint32 i = 0; i < CountXVertices; ++i)
delete[] HeightMap[i];
delete[] HeightMap;
for (uint32 i = 0; i < Width; ++i)
delete[] RenderFlags[i];
- delete[] RenderFlags;
+ delete[] RenderFlags;*/
}
float** HeightMap;
diff --git a/src/tools/mesh_extractor/WDT.cpp b/src/tools/mesh_extractor/WDT.cpp
index 3dfd45b666e..b22e9ff136b 100644
--- a/src/tools/mesh_extractor/WDT.cpp
+++ b/src/tools/mesh_extractor/WDT.cpp
@@ -20,6 +20,7 @@
#include "ChunkedData.h"
#include "Utils.h"
#include "WorldModelHandler.h"
+#include "Cache.h"
WDT::WDT(std::string file) : IsGlobalModel(false), IsValid(false), Model(NULL)
{
@@ -38,7 +39,7 @@ void WDT::ReadGlobalModel()
IsGlobalModel = true;
ModelDefinition = WorldModelDefinition::Read(defChunk->GetStream());
ModelFile = fileChunk->GetStream()->ReadString();
- Model = new WorldModelRoot(ModelFile);
+ Model = Cache->WorldModelCache.Get(ModelFile);
}
void WDT::ReadTileTable()
diff --git a/src/tools/mesh_extractor/WorldModelRoot.cpp b/src/tools/mesh_extractor/WorldModelRoot.cpp
index b5ee186afd0..32ff2923c75 100644
--- a/src/tools/mesh_extractor/WorldModelRoot.cpp
+++ b/src/tools/mesh_extractor/WorldModelRoot.cpp
@@ -44,7 +44,7 @@ void WorldModelRoot::ReadGroups()
sprintf(name, "%s_%03u.wmo", pathBase.c_str(), i);
WorldModelGroup group(name, i);
if (!group.IsBad)
- Groups.push_back(std::move(group));
+ Groups.push_back(group);
}
}