summaryrefslogtreecommitdiffstats
path: root/src/script
diff options
context:
space:
mode:
authorPiotr Dziwinski <piotrdz@gmail.com>2012-12-26 20:58:02 +0100
committerPiotr Dziwinski <piotrdz@gmail.com>2012-12-26 20:58:02 +0100
commit5574eccebd16ae38a2a21ed202d1f9d1ba8f67a4 (patch)
treeb742447d1b3262c1541e9c0fe037ad35be467dff /src/script
parentf9f15a2f3f80f968a64e76141b1e6fa5e28c7232 (diff)
downloadcolobot-5574eccebd16ae38a2a21ed202d1f9d1ba8f67a4.tar.gz
colobot-5574eccebd16ae38a2a21ed202d1f9d1ba8f67a4.tar.bz2
colobot-5574eccebd16ae38a2a21ed202d1f9d1ba8f67a4.zip
Engine optimization - rewritten model management
- new class CModelManager - rewritten engine object structure in CEngine - created shared model data instead of separate objects per each model instance - minor refactoring
Diffstat (limited to 'src/script')
-rw-r--r--src/script/script.cpp26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/script/script.cpp b/src/script/script.cpp
index 8471df5..a6b39b9 100644
--- a/src/script/script.cpp
+++ b/src/script/script.cpp
@@ -2669,9 +2669,9 @@ CScript::CScript(CInstanceManager* iMan, CObject* object, CTaskManager** seconda
m_main = static_cast<CRobotMain*>(m_iMan->SearchInstance(CLASS_MAIN));
m_terrain = static_cast<Gfx::CTerrain*>(m_iMan->SearchInstance(CLASS_TERRAIN));
m_water = static_cast<Gfx::CWater*>(m_iMan->SearchInstance(CLASS_WATER));
- m_botProg = 0;
+ m_botProg = nullptr;
m_object = object;
- m_primaryTask = 0;
+ m_primaryTask = nullptr;
m_secondaryTask = secondaryTask;
m_interface = static_cast<Ui::CInterface*>(m_iMan->SearchInstance(CLASS_INTERFACE));
@@ -2680,7 +2680,7 @@ CScript::CScript(CInstanceManager* iMan, CObject* object, CTaskManager** seconda
m_ipf = CBOT_IPF;
m_errMode = ERM_STOP;
m_len = 0;
- m_script = 0;
+ m_script = nullptr;
m_bRun = false;
m_bStepMode = false;
m_bCompile = false;
@@ -2752,10 +2752,22 @@ void CScript::InitFonctions()
CScript::~CScript()
{
- delete m_botProg;
- delete m_primaryTask;
- delete m_script;
- m_script = 0;
+ if (m_botProg != nullptr)
+ {
+ delete m_botProg;
+ m_botProg = nullptr;
+ }
+ if (m_primaryTask != nullptr)
+ {
+ delete m_primaryTask;
+ m_primaryTask = nullptr;
+ }
+ if (m_script != nullptr)
+ {
+ delete m_script;
+ m_script = nullptr;
+ }
+
m_len = 0;
m_iMan->DeleteInstance(CLASS_SCRIPT, this);