diff options
author | Sebastian Valle <s.v.h21@hotmail.com> | 2013-09-30 21:08:33 -0500 |
---|---|---|
committer | Sebastian Valle <s.v.h21@hotmail.com> | 2013-09-30 21:08:33 -0500 |
commit | 3ed0a11679a97aba9c88fde38a431aa3878bb759 (patch) | |
tree | 92fcbf6c8dfd7f04d1a38b8f227d05a6c431ae1c /src | |
parent | 1e23710b11c8c3c671279a0c5003f13f27f8802e (diff) |
Tools/MeshExtractor: Do not delete the polygons before we are done using them.
Diffstat (limited to 'src')
-rw-r--r-- | src/tools/mesh_extractor/MeshExtractor.cpp | 8 | ||||
-rw-r--r-- | src/tools/mesh_extractor/TileBuilder.cpp | 7 |
2 files changed, 9 insertions, 6 deletions
diff --git a/src/tools/mesh_extractor/MeshExtractor.cpp b/src/tools/mesh_extractor/MeshExtractor.cpp index 7653faae2ab..3443b3d9e0a 100644 --- a/src/tools/mesh_extractor/MeshExtractor.cpp +++ b/src/tools/mesh_extractor/MeshExtractor.cpp @@ -378,8 +378,8 @@ int main(int argc, char* argv[]) if (extractFlags & Constants::EXTRACT_FLAG_TEST) { - float start[] = { -230.133f, 191.085f, -24.9191f }; - float end[] = { -396.309f, 150.828f, 7.82184f }; + float start[] = { -44.641f, -34.606f, -1.045f }; + float end[] = { -66.18f, 20.222f, -1.128f }; // float m_spos[3]; @@ -408,7 +408,7 @@ int main(int argc, char* argv[]) dtPolyRef m_startRef; dtPolyRef m_endRef; - FILE* mmap = fopen("mmaps/389.mmap", "rb"); + FILE* mmap = fopen("mmaps/555.mmap", "rb"); dtNavMeshParams params; int count = fread(¶ms, sizeof(dtNavMeshParams), 1, mmap); fclose(mmap); @@ -427,7 +427,7 @@ int main(int argc, char* argv[]) for (int j = 0; j <= 32; ++j) { char buff[100]; - sprintf(buff, "mmaps/389%02i%02i.mmtile", i, j); + sprintf(buff, "mmaps/555%02i%02i.mmtile", i, j); LoadTile(navMesh, buff); } } diff --git a/src/tools/mesh_extractor/TileBuilder.cpp b/src/tools/mesh_extractor/TileBuilder.cpp index 73987162cc8..1871cb6186d 100644 --- a/src/tools/mesh_extractor/TileBuilder.cpp +++ b/src/tools/mesh_extractor/TileBuilder.cpp @@ -192,8 +192,6 @@ uint8* TileBuilder::BuildInstance( dtNavMeshParams& navMeshParams ) rcFreeHeightField(hf); rcFreeCompactHeightfield(chf); rcFreeContourSet(contours); - rcFreePolyMesh(pmesh); - rcFreePolyMeshDetail(dmesh); delete vertices; delete triangles; delete areas; @@ -206,6 +204,8 @@ uint8* TileBuilder::BuildInstance( dtNavMeshParams& navMeshParams ) // keep in mind that we do output those into debug info // drop tiles with only exact count - some tiles may have geometry while having less tiles printf("No polygons to build on tile, skipping.\n"); + rcFreePolyMesh(pmesh); + rcFreePolyMeshDetail(dmesh); return NULL; } @@ -214,6 +214,9 @@ uint8* TileBuilder::BuildInstance( dtNavMeshParams& navMeshParams ) printf("Creating the navmesh with %i vertices, %i polys, %i triangles!\n", params.vertCount, params.polyCount, params.detailTriCount); bool result = dtCreateNavMeshData(¶ms, &navData, &navDataSize); + rcFreePolyMesh(pmesh); + rcFreePolyMeshDetail(dmesh); + if (result) { printf("NavMesh created, size %i!\n", navDataSize); |