diff options
author | Piotr Dziwinski <piotrdz@gmail.com> | 2012-12-26 20:58:02 +0100 |
---|---|---|
committer | Piotr Dziwinski <piotrdz@gmail.com> | 2012-12-26 20:58:02 +0100 |
commit | 5574eccebd16ae38a2a21ed202d1f9d1ba8f67a4 (patch) | |
tree | b742447d1b3262c1541e9c0fe037ad35be467dff /src/script/script.cpp | |
parent | f9f15a2f3f80f968a64e76141b1e6fa5e28c7232 (diff) | |
download | colobot-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/script.cpp')
-rw-r--r-- | src/script/script.cpp | 26 |
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); |