summaryrefslogtreecommitdiffstats
path: root/src/graphics/engine/modelmanager.cpp
diff options
context:
space:
mode:
authorPiotr Dziwinski <piotrdz@gmail.com>2013-03-31 13:06:38 +0200
committerPiotr Dziwinski <piotrdz@gmail.com>2013-03-31 13:06:38 +0200
commitff97de547799a60a2121008e9da5793d2ab1581f (patch)
treea4b2bd37da23c01d0b9c54c976e0c4079257951f /src/graphics/engine/modelmanager.cpp
parent0d70b6e2f874d9adeb6528df355d3271c3943845 (diff)
downloadcolobot-ff97de547799a60a2121008e9da5793d2ab1581f.tar.gz
colobot-ff97de547799a60a2121008e9da5793d2ab1581f.tar.bz2
colobot-ff97de547799a60a2121008e9da5793d2ab1581f.zip
Fixed graphics objects after reset
Should fix #120 and perhaps some other bugs as well
Diffstat (limited to 'src/graphics/engine/modelmanager.cpp')
-rw-r--r--src/graphics/engine/modelmanager.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/graphics/engine/modelmanager.cpp b/src/graphics/engine/modelmanager.cpp
index c23b79d..35b7e7a 100644
--- a/src/graphics/engine/modelmanager.cpp
+++ b/src/graphics/engine/modelmanager.cpp
@@ -111,6 +111,8 @@ bool CModelManager::AddModelCopy(const std::string& fileName, bool mirrored, int
m_engine->CopyBaseObject((*it).second.baseObjRank, copyBaseObjRank);
m_engine->SetObjectBaseRank(objRank, copyBaseObjRank);
+ m_copiesBaseRanks.push_back(copyBaseObjRank);
+
return true;
}
@@ -128,6 +130,16 @@ int CModelManager::GetModelBaseObjRank(const std::string& fileName, bool mirrore
return (*it).second.baseObjRank;
}
+void CModelManager::DeleteAllModelCopies()
+{
+ for (int baseObjRank : m_copiesBaseRanks)
+ {
+ m_engine->DeleteBaseObject(baseObjRank);
+ }
+
+ m_copiesBaseRanks.clear();
+}
+
void CModelManager::UnloadModel(const std::string& fileName, bool mirrored)
{
auto it = m_models.find(FileInfo(fileName, mirrored));