diff options
author | Subv <subv2112@gmail.com> | 2013-12-29 20:27:37 -0500 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2013-12-29 20:27:37 -0500 |
commit | 8cc77ff1fdc1f4ee788710383516d8794fb31a72 (patch) | |
tree | ff50812941e715de3170fbceb9097bba15511586 /src | |
parent | 0e58f5ad2444f8846ad00d0cd12ecafa3f673693 (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.h | 4 | ||||
-rw-r--r-- | src/tools/mesh_extractor/WDT.cpp | 3 | ||||
-rw-r--r-- | src/tools/mesh_extractor/WorldModelRoot.cpp | 2 |
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); } } |