summaryrefslogtreecommitdiffstats
path: root/src/graphics/engine/terrain.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/graphics/engine/terrain.cpp')
-rw-r--r--src/graphics/engine/terrain.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/graphics/engine/terrain.cpp b/src/graphics/engine/terrain.cpp
index 4fe3057..4b5384e 100644
--- a/src/graphics/engine/terrain.cpp
+++ b/src/graphics/engine/terrain.cpp
@@ -90,7 +90,7 @@ bool CTerrain::Generate(int mosaicCount, int brickCountPow2, float brickSize,
std::vector<int>(dim).swap(m_textures);
dim = m_mosaicCount*m_mosaicCount;
- std::vector<int>(dim).swap(m_objRanks);
+ std::vector<int>(dim, -1).swap(m_objRanks);
return true;
}
@@ -258,6 +258,23 @@ TerrainRes CTerrain::GetResource(const Math::Vector &p)
void CTerrain::FlushRelief()
{
m_relief.clear();
+ m_resources.clear();
+ m_textures.clear();
+
+ for (int objRank : m_objRanks)
+ {
+ if (objRank == -1)
+ continue;
+
+ int baseObjRank = m_engine->GetObjectBaseRank(objRank);
+
+ if (baseObjRank != -1)
+ m_engine->DeleteBaseObject(baseObjRank);
+
+ m_engine->DeleteObject(objRank);
+ }
+
+ m_objRanks.clear();
}
/**