summaryrefslogtreecommitdiffstats
path: root/src/object/auto/auto.cpp
diff options
context:
space:
mode:
authorPiotr Dziwiński <piotr.dziwinski@nsn.com>2013-02-16 22:37:43 +0100
committerPiotr Dziwiński <piotr.dziwinski@nsn.com>2013-02-17 12:11:56 +0100
commit001d37b257b126dd6ef1dced70f94ff3d2806d28 (patch)
tree1025979c635c899f196d606f7d74170e33ef4f3a /src/object/auto/auto.cpp
parent45040318b026f8864d244e39f1703685ad688470 (diff)
downloadcolobot-001d37b257b126dd6ef1dced70f94ff3d2806d28.tar.gz
colobot-001d37b257b126dd6ef1dced70f94ff3d2806d28.tar.bz2
colobot-001d37b257b126dd6ef1dced70f94ff3d2806d28.zip
CInstanceManager refactoring
* removed classes managed by CInstanceManager except for CObject, CPyro, CBrain and CPhysics because of dependencies * refactored instance searching to use existing singleton instances of CApplication, CEngine and CRobotMain and calling their getter functions
Diffstat (limited to 'src/object/auto/auto.cpp')
-rw-r--r--src/object/auto/auto.cpp54
1 files changed, 36 insertions, 18 deletions
diff --git a/src/object/auto/auto.cpp b/src/object/auto/auto.cpp
index 4003193..3d88012 100644
--- a/src/object/auto/auto.cpp
+++ b/src/object/auto/auto.cpp
@@ -18,8 +18,13 @@
#include "object/auto/auto.h"
+#include "app/app.h"
+
+#include "common/event.h"
#include "common/iman.h"
+
#include "script/cmdtoken.h"
+
#include "ui/interface.h"
#include "ui/gauge.h"
#include "ui/window.h"
@@ -30,26 +35,24 @@
// Object's constructor.
-CAuto::CAuto(CInstanceManager* iMan, CObject* object)
+CAuto::CAuto(CObject* object)
{
- m_iMan = iMan;
- m_iMan->AddInstance(CLASS_AUTO, this, 100);
+ m_iMan = CInstanceManager::GetInstancePointer();
m_object = object;
- m_event = static_cast< CEventQueue* >(m_iMan->SearchInstance(CLASS_EVENT));
- m_engine = static_cast< Gfx::CEngine* >(m_iMan->SearchInstance(CLASS_ENGINE));
- m_particle = static_cast< Gfx::CParticle* >(m_iMan->SearchInstance(CLASS_PARTICULE));
- m_lightMan = static_cast< Gfx::CLightManager* >(m_iMan->SearchInstance(CLASS_LIGHT));
- m_terrain = static_cast< Gfx::CTerrain* >(m_iMan->SearchInstance(CLASS_TERRAIN));
- m_water = static_cast< Gfx::CWater* >(m_iMan->SearchInstance(CLASS_WATER));
- m_cloud = static_cast< Gfx::CCloud* >(m_iMan->SearchInstance(CLASS_CLOUD));
- m_planet = static_cast< Gfx::CPlanet* >(m_iMan->SearchInstance(CLASS_PLANET));
- m_lightning = static_cast< Gfx::CLightning* >(m_iMan->SearchInstance(CLASS_BLITZ));
- m_camera = static_cast< Gfx::CCamera* >(m_iMan->SearchInstance(CLASS_CAMERA));
- m_interface = static_cast< Ui::CInterface* >(m_iMan->SearchInstance(CLASS_INTERFACE));
- m_main = static_cast< CRobotMain* >(m_iMan->SearchInstance(CLASS_MAIN));
- m_displayText = static_cast< Ui::CDisplayText* >(m_iMan->SearchInstance(CLASS_DISPLAYTEXT));
- m_sound = static_cast< CSoundInterface* >(m_iMan->SearchInstance(CLASS_SOUND));
+ m_engine = Gfx::CEngine::GetInstancePointer();
+ m_main = CRobotMain::GetInstancePointer();
+ m_eventQueue = CApplication::GetInstancePointer()->GetEventQueue();
+ m_sound = CApplication::GetInstancePointer()->GetSound();
+ m_particle = m_engine->GetParticle();
+ m_terrain = m_engine->GetTerrain();
+ m_water = m_engine->GetWater();
+ m_cloud = m_engine->GetCloud();
+ m_planet = m_engine->GetPlanet();
+ m_lightning = m_engine->GetLightning();
+ m_camera = m_main->GetCamera();
+ m_interface = m_main->GetInterface();
+ m_displayText = m_main->GetDisplayText();
m_type = m_object->GetType();
m_time = 0.0f;
@@ -65,7 +68,22 @@ CAuto::CAuto(CInstanceManager* iMan, CObject* object)
CAuto::~CAuto()
{
- m_iMan->DeleteInstance(CLASS_AUTO, this);
+ m_iMan = nullptr;
+
+ m_object = nullptr;
+ m_engine = nullptr;
+ m_main = nullptr;
+ m_eventQueue = nullptr;
+ m_sound = nullptr;
+ m_particle = nullptr;
+ m_terrain = nullptr;
+ m_water = nullptr;
+ m_cloud = nullptr;
+ m_planet = nullptr;
+ m_lightning = nullptr;
+ m_camera = nullptr;
+ m_interface = nullptr;
+ m_displayText = nullptr;
}