summaryrefslogtreecommitdiffstats
path: root/src/object/task
diff options
context:
space:
mode:
Diffstat (limited to 'src/object/task')
-rw-r--r--src/object/task/task.cpp31
-rw-r--r--src/object/task/task.h5
-rw-r--r--src/object/task/taskadvance.cpp5
-rw-r--r--src/object/task/taskadvance.h3
-rw-r--r--src/object/task/taskbuild.cpp25
-rw-r--r--src/object/task/taskbuild.h2
-rw-r--r--src/object/task/taskfire.cpp6
-rw-r--r--src/object/task/taskfire.h2
-rw-r--r--src/object/task/taskfireant.cpp7
-rw-r--r--src/object/task/taskfireant.h2
-rw-r--r--src/object/task/taskflag.cpp26
-rw-r--r--src/object/task/taskflag.h3
-rw-r--r--src/object/task/taskgoto.cpp38
-rw-r--r--src/object/task/taskgoto.h3
-rw-r--r--src/object/task/taskgungoal.cpp4
-rw-r--r--src/object/task/taskgungoal.h2
-rw-r--r--src/object/task/taskinfo.cpp10
-rw-r--r--src/object/task/taskinfo.h2
-rw-r--r--src/object/task/taskmanager.cpp48
-rw-r--r--src/object/task/taskmanager.h7
-rw-r--r--src/object/task/taskmanip.cpp30
-rw-r--r--src/object/task/taskmanip.h2
-rw-r--r--src/object/task/taskpen.cpp8
-rw-r--r--src/object/task/taskpen.h2
-rw-r--r--src/object/task/taskrecover.cpp17
-rw-r--r--src/object/task/taskrecover.h3
-rw-r--r--src/object/task/taskreset.cpp9
-rw-r--r--src/object/task/taskreset.h2
-rw-r--r--src/object/task/tasksearch.cpp16
-rw-r--r--src/object/task/tasksearch.h2
-rw-r--r--src/object/task/taskshield.cpp12
-rw-r--r--src/object/task/taskshield.h3
-rw-r--r--src/object/task/taskspiderexplo.cpp8
-rw-r--r--src/object/task/taskspiderexplo.h2
-rw-r--r--src/object/task/tasktake.cpp22
-rw-r--r--src/object/task/tasktake.h2
-rw-r--r--src/object/task/taskterraform.cpp19
-rw-r--r--src/object/task/taskterraform.h3
-rw-r--r--src/object/task/taskturn.cpp4
-rw-r--r--src/object/task/taskturn.h2
-rw-r--r--src/object/task/taskwait.cpp4
-rw-r--r--src/object/task/taskwait.h2
42 files changed, 229 insertions, 176 deletions
diff --git a/src/object/task/task.cpp b/src/object/task/task.cpp
index b310fd5..39fdccf 100644
--- a/src/object/task/task.cpp
+++ b/src/object/task/task.cpp
@@ -14,33 +14,28 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// task.cpp
-
-
-// #include <stdio.h>
#include "object/task/task.h"
-#include "common/iman.h"
-#include "object/object.h"
+#include "app/app.h"
+#include "object/object.h"
+#include "object/robotmain.h"
// Object's constructor.
-CTask::CTask(CInstanceManager* iMan, CObject* object)
+CTask::CTask(CObject* object)
{
- m_iMan = iMan;
-
- m_engine = static_cast<Gfx::CEngine*>(m_iMan->SearchInstance(CLASS_ENGINE));
- 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_particle = static_cast<Gfx::CParticle*>(m_iMan->SearchInstance(CLASS_PARTICULE));
- m_camera = static_cast<Gfx::CCamera*>(m_iMan->SearchInstance(CLASS_CAMERA));
- m_displayText = static_cast<Ui::CDisplayText*>(m_iMan->SearchInstance(CLASS_DISPLAYTEXT));
- m_main = static_cast<CRobotMain*>(m_iMan->SearchInstance(CLASS_MAIN));
- m_sound = static_cast<CSoundInterface*>(m_iMan->SearchInstance(CLASS_SOUND));
+ m_sound = CApplication::GetInstancePointer()->GetSound();
+ m_engine = Gfx::CEngine::GetInstancePointer();
+ m_lightMan = m_engine->GetLightManager();
+ m_water = m_engine->GetWater();
+ m_particle = m_engine->GetParticle();
+ m_main = CRobotMain::GetInstancePointer();
+ m_terrain = m_main->GetTerrain();
+ m_camera = m_main->GetCamera();
+ m_displayText = m_main->GetDisplayText();
m_object = object;
m_physics = m_object->GetPhysics();
diff --git a/src/object/task/task.h b/src/object/task/task.h
index 7239d48..12961ef 100644
--- a/src/object/task/task.h
+++ b/src/object/task/task.h
@@ -21,10 +21,10 @@
#include "common/event.h"
#include "common/global.h"
+
#include "math/const.h"
-class CInstanceManager;
class CBrain;
class CPhysics;
class CMotion;
@@ -64,7 +64,7 @@ const float ARM_STOCK_ANGLE3 = -70.0f*Math::PI/180.0f;
class CTask
{
public:
- CTask(CInstanceManager* iMan, CObject* object);
+ CTask(CObject* object);
virtual ~CTask();
virtual bool EventProcess(const Event &event);
@@ -73,7 +73,6 @@ public:
virtual bool Abort();
protected:
- CInstanceManager* m_iMan;
Gfx::CEngine* m_engine;
Gfx::CLightManager* m_lightMan;
Gfx::CParticle* m_particle;
diff --git a/src/object/task/taskadvance.cpp b/src/object/task/taskadvance.cpp
index 0d159d2..58eb939 100644
--- a/src/object/task/taskadvance.cpp
+++ b/src/object/task/taskadvance.cpp
@@ -14,11 +14,11 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskadvance.cpp
#include "object/task/taskadvance.h"
#include "math/geometry.h"
+
#include "physics/physics.h"
@@ -26,8 +26,7 @@
// Object's constructor.
-CTaskAdvance::CTaskAdvance(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskAdvance::CTaskAdvance(CObject* object) : CTask(object)
{
}
diff --git a/src/object/task/taskadvance.h b/src/object/task/taskadvance.h
index dbb80d9..f8c672d 100644
--- a/src/object/task/taskadvance.h
+++ b/src/object/task/taskadvance.h
@@ -20,6 +20,7 @@
#include "object/task/task.h"
+
#include "math/vector.h"
@@ -27,7 +28,7 @@
class CTaskAdvance : public CTask
{
public:
- CTaskAdvance(CInstanceManager* iMan, CObject* object);
+ CTaskAdvance(CObject* object);
~CTaskAdvance();
bool EventProcess(const Event &event);
diff --git a/src/object/task/taskbuild.cpp b/src/object/task/taskbuild.cpp
index 5673ea4..f209cd5 100644
--- a/src/object/task/taskbuild.cpp
+++ b/src/object/task/taskbuild.cpp
@@ -14,29 +14,32 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskbuild.cpp
#include "object/task/taskbuild.h"
#include "common/iman.h"
+
#include "graphics/core/color.h"
#include "graphics/core/light.h"
#include "graphics/engine/lightman.h"
#include "graphics/engine/terrain.h"
#include "graphics/engine/water.h"
+
#include "math/geometry.h"
+
#include "object/auto/auto.h"
#include "object/motion/motionhuman.h"
#include "object/robotmain.h"
+
#include "physics/physics.h"
+
#include "ui/displaytext.h"
#include <string.h>
// Object's constructor.
-CTaskBuild::CTaskBuild(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskBuild::CTaskBuild(CObject* object) : CTask(object)
{
int i;
@@ -75,7 +78,7 @@ CTaskBuild::~CTaskBuild()
bool CTaskBuild::CreateBuilding(Math::Vector pos, float angle)
{
- m_building = new CObject(m_iMan);
+ m_building = new CObject();
if ( !m_building->CreateBuilding(pos, angle, 0.0f, m_type, 0.0f) )
{
delete m_building;
@@ -596,11 +599,13 @@ Error CTaskBuild::FlatFloor()
return bLittleFlat?ERR_BUILD_FLATLIT:ERR_BUILD_FLAT;
}
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
max = 100000.0f;
bBase = false;
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
if ( !pObj->GetActif() ) continue; // inactive?
@@ -648,7 +653,7 @@ Error CTaskBuild::FlatFloor()
max = 100000.0f;
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
if ( !pObj->GetActif() ) continue; // inactive?
@@ -715,12 +720,14 @@ CObject* CTaskBuild::SearchMetalObject(float &angle, float dMin, float dMax,
iAngle = m_object->GetAngleY(0);
iAngle = Math::NormAngle(iAngle); // 0..2*Math::PI
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
min = 1000000.0f;
pBest = 0;
bMetal = false;
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
if ( !pObj->GetActif() ) continue; // objet inactive?
@@ -779,9 +786,11 @@ void CTaskBuild::DeleteMark(Math::Vector pos, float radius)
float distance;
int i;
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
type = pObj->GetType();
diff --git a/src/object/task/taskbuild.h b/src/object/task/taskbuild.h
index 25300b3..b3193a0 100644
--- a/src/object/task/taskbuild.h
+++ b/src/object/task/taskbuild.h
@@ -45,7 +45,7 @@ enum TaskBuildPhase
class CTaskBuild : public CTask
{
public:
- CTaskBuild(CInstanceManager* iMan, CObject* object);
+ CTaskBuild(CObject* object);
~CTaskBuild();
bool EventProcess(const Event &event);
diff --git a/src/object/task/taskfire.cpp b/src/object/task/taskfire.cpp
index 99a88b8..beb4944 100644
--- a/src/object/task/taskfire.cpp
+++ b/src/object/task/taskfire.cpp
@@ -14,12 +14,13 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskfire.cpp
#include "object/task/taskfire.h"
#include "graphics/engine/particle.h"
+
#include "math/geometry.h"
+
#include "physics/physics.h"
@@ -31,8 +32,7 @@ const float ENERGY_FIREi = (0.10f/2.5f); // energy consumed/organic
// Object's constructor.
-CTaskFire::CTaskFire(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskFire::CTaskFire(CObject* object) : CTask(object)
{
m_soundChannel = -1;
}
diff --git a/src/object/task/taskfire.h b/src/object/task/taskfire.h
index 5cf4f0c..81058df 100644
--- a/src/object/task/taskfire.h
+++ b/src/object/task/taskfire.h
@@ -26,7 +26,7 @@
class CTaskFire : public CTask
{
public:
- CTaskFire(CInstanceManager* iMan, CObject* object);
+ CTaskFire(CObject* object);
~CTaskFire();
bool EventProcess(const Event &event);
diff --git a/src/object/task/taskfireant.cpp b/src/object/task/taskfireant.cpp
index 2044685..c0acf64 100644
--- a/src/object/task/taskfireant.cpp
+++ b/src/object/task/taskfireant.cpp
@@ -14,13 +14,15 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskfireant.cpp
#include "object/task/taskfireant.h"
#include "graphics/engine/particle.h"
+
#include "math/geometry.h"
+
#include "object/motion/motionant.h"
+
#include "physics/physics.h"
@@ -28,8 +30,7 @@
// Object's constructor.
-CTaskFireAnt::CTaskFireAnt(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskFireAnt::CTaskFireAnt(CObject* object) : CTask(object)
{
m_phase = TFA_NULL;
}
diff --git a/src/object/task/taskfireant.h b/src/object/task/taskfireant.h
index 4fa77b8..2a0ead8 100644
--- a/src/object/task/taskfireant.h
+++ b/src/object/task/taskfireant.h
@@ -38,7 +38,7 @@ enum TaskFireAnt
class CTaskFireAnt : public CTask
{
public:
- CTaskFireAnt(CInstanceManager* iMan, CObject* object);
+ CTaskFireAnt(CObject* object);
~CTaskFireAnt();
bool EventProcess(const Event &event);
diff --git a/src/object/task/taskflag.cpp b/src/object/task/taskflag.cpp
index c88b5c0..dd5e11d 100644
--- a/src/object/task/taskflag.cpp
+++ b/src/object/task/taskflag.cpp
@@ -14,26 +14,28 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskflag.cpp
#include "object/task/taskflag.h"
-#include "math/geometry.h"
#include "common/iman.h"
+
+#include "math/geometry.h"
+
#include "graphics/engine/particle.h"
#include "graphics/engine/pyro.h"
#include "graphics/engine/water.h"
-#include "physics/physics.h"
+
#include "object/motion/motionhuman.h"
+#include "physics/physics.h"
+
// Object's constructor.
-CTaskFlag::CTaskFlag(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskFlag::CTaskFlag(CObject* object) : CTask(object)
{
}
@@ -137,11 +139,13 @@ CObject* CTaskFlag::SearchNearest(Math::Vector pos, ObjectType type)
float min, dist;
int i;
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
min = 100000.0f;
pBest = 0;
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
if ( !pObj->GetEnable() ) continue;
@@ -180,10 +184,12 @@ int CTaskFlag::CountObject(ObjectType type)
Math::Vector oPos;
int i, count;
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
count = 0;
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
if ( !pObj->GetEnable() ) continue;
@@ -247,7 +253,7 @@ Error CTaskFlag::CreateFlag(int rank)
return ERR_FLAG_CREATE;
}
- pNew = new CObject(m_iMan);
+ pNew = new CObject();
if ( !pNew->CreateFlag(pos, 0.0f, table[i]) )
{
delete pNew;
@@ -256,7 +262,7 @@ Error CTaskFlag::CreateFlag(int rank)
//pNew->SetZoom(0, 0.0f);
m_sound->Play(SOUND_WAYPOINT, pos);
- pyro = new Gfx::CPyro(m_iMan);
+ pyro = new Gfx::CPyro();
pyro->Create(Gfx::PT_FLCREATE, pNew);
return ERR_OK;
@@ -295,7 +301,7 @@ Error CTaskFlag::DeleteFlag()
}
m_sound->Play(SOUND_WAYPOINT, iPos);
- pyro = new Gfx::CPyro(m_iMan);
+ pyro = new Gfx::CPyro();
pyro->Create(Gfx::PT_FLDELETE, pObj);
return ERR_OK;
diff --git a/src/object/task/taskflag.h b/src/object/task/taskflag.h
index 5b0a058..7e3e4ef 100644
--- a/src/object/task/taskflag.h
+++ b/src/object/task/taskflag.h
@@ -20,6 +20,7 @@
#include "object/task/task.h"
#include "object/object.h"
+
#include "math/vector.h"
@@ -35,7 +36,7 @@ enum TaskFlagOrder
class CTaskFlag : public CTask
{
public:
- CTaskFlag(CInstanceManager* iMan, CObject* object);
+ CTaskFlag(CObject* object);
~CTaskFlag();
bool EventProcess(const Event &event);
diff --git a/src/object/task/taskgoto.cpp b/src/object/task/taskgoto.cpp
index cab57f1..c4a2939 100644
--- a/src/object/task/taskgoto.cpp
+++ b/src/object/task/taskgoto.cpp
@@ -14,8 +14,6 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskgoto.cpp
-
#include <stdio.h>
@@ -23,9 +21,12 @@
#include "common/event.h"
#include "common/iman.h"
+
#include "graphics/engine/terrain.h"
#include "graphics/engine/water.h"
+
#include "math/geometry.h"
+
#include "physics/physics.h"
#include <string.h>
@@ -40,8 +41,7 @@ const float BM_DIM_STEP = 5.0f;
// Object's constructor.
-CTaskGoto::CTaskGoto(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskGoto::CTaskGoto(CObject* object) : CTask(object)
{
m_bmArray = 0;
}
@@ -494,12 +494,14 @@ CObject* CTaskGoto::WormSearch(Math::Vector &impact)
float distance, min, radius;
int i;
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
iPos = m_object->GetPosition(0);
min = 1000000.0f;
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
oType = pObj->GetType();
@@ -1026,11 +1028,13 @@ CObject* CTaskGoto::SearchTarget(Math::Vector pos, float margin)
float dist, min;
int i;
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
pBest = 0;
min = 1000000.0f;
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
if ( !pObj->GetActif() ) continue;
@@ -1170,9 +1174,11 @@ bool CTaskGoto::AdjustBuilding(Math::Vector &pos, float margin, float &distance)
float dist, suppl;
int i;
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
if ( !pObj->GetActif() ) continue;
@@ -1339,11 +1345,13 @@ bool CTaskGoto::LeakSearch(Math::Vector &pos, float &delay)
m_object->GetCrashSphere(0, iPos, iRadius);
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
min = 100000.0f;
bRadius = 0.0f;
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
if ( pObj == m_object ) continue;
@@ -1401,7 +1409,7 @@ void CTaskGoto::ComputeRepulse(Math::Point &dir)
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
if ( pObj == m_object ) continue;
@@ -1522,9 +1530,11 @@ void CTaskGoto::ComputeRepulse(Math::Point &dir)
bAlien = true;
}
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
if ( pObj == m_object ) continue;
@@ -1614,9 +1624,11 @@ void CTaskGoto::ComputeFlyingRepulse(float &dir)
fac = 1.5f;
dir = 0.0f;
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
if ( pObj == m_object ) continue;
@@ -1928,9 +1940,11 @@ void CTaskGoto::BitmapObject()
m_object->GetCrashSphere(0, iPos, iRadius);
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
type = pObj->GetType();
diff --git a/src/object/task/taskgoto.h b/src/object/task/taskgoto.h
index 1382d4c..d2b2d7e 100644
--- a/src/object/task/taskgoto.h
+++ b/src/object/task/taskgoto.h
@@ -20,6 +20,7 @@
#include "object/task/task.h"
+
#include "math/vector.h"
@@ -72,7 +73,7 @@ enum TaskGotoPhase
class CTaskGoto : public CTask
{
public:
- CTaskGoto(CInstanceManager* iMan, CObject* object);
+ CTaskGoto(CObject* object);
~CTaskGoto();
bool EventProcess(const Event &event);
diff --git a/src/object/task/taskgungoal.cpp b/src/object/task/taskgungoal.cpp
index aed3355..3373610 100644
--- a/src/object/task/taskgungoal.cpp
+++ b/src/object/task/taskgungoal.cpp
@@ -14,7 +14,6 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskgungoal.cpp
#include "object/task/taskgungoal.h"
@@ -25,8 +24,7 @@
// Object's constructor.
-CTaskGunGoal::CTaskGunGoal(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskGunGoal::CTaskGunGoal(CObject* object) : CTask(object)
{
}
diff --git a/src/object/task/taskgungoal.h b/src/object/task/taskgungoal.h
index 0c063d1..c6f010b 100644
--- a/src/object/task/taskgungoal.h
+++ b/src/object/task/taskgungoal.h
@@ -26,7 +26,7 @@
class CTaskGunGoal : public CTask
{
public:
- CTaskGunGoal(CInstanceManager* iMan, CObject* object);
+ CTaskGunGoal(CObject* object);
~CTaskGunGoal();
bool EventProcess(const Event &event);
diff --git a/src/object/task/taskinfo.cpp b/src/object/task/taskinfo.cpp
index 4e64584..32ac342 100644
--- a/src/object/task/taskinfo.cpp
+++ b/src/object/task/taskinfo.cpp
@@ -14,12 +14,13 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskinfo.cpp
#include "object/task/taskinfo.h"
#include "common/iman.h"
+
#include "graphics/engine/particle.h"
+
#include "object/auto/autoinfo.h"
#include <string.h>
@@ -28,8 +29,7 @@
// Object's constructor.
-CTaskInfo::CTaskInfo(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskInfo::CTaskInfo(CObject* object) : CTask(object)
{
}
@@ -189,11 +189,13 @@ CObject* CTaskInfo::SearchInfo(float power)
iPos = m_object->GetPosition(0);
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
min = 100000.0f;
pBest = 0;
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
type = pObj->GetType();
diff --git a/src/object/task/taskinfo.h b/src/object/task/taskinfo.h
index 036b57d..1ce3dca 100644
--- a/src/object/task/taskinfo.h
+++ b/src/object/task/taskinfo.h
@@ -26,7 +26,7 @@
class CTaskInfo : public CTask
{
public:
- CTaskInfo(CInstanceManager* iMan, CObject* object);
+ CTaskInfo(CObject* object);
~CTaskInfo();
bool EventProcess(const Event &event);
diff --git a/src/object/task/taskmanager.cpp b/src/object/task/taskmanager.cpp
index 26e389d..a2ce8b8 100644
--- a/src/object/task/taskmanager.cpp
+++ b/src/object/task/taskmanager.cpp
@@ -14,14 +14,13 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskmanager.cpp
-
#include <stdio.h>
#include "object/task/taskmanager.h"
#include "common/iman.h"
+
#include "object/task/taskwait.h"
#include "object/task/taskadvance.h"
#include "object/task/taskturn.h"
@@ -43,12 +42,9 @@
// Object's constructor.
-CTaskManager::CTaskManager(CInstanceManager* iMan, CObject* object)
+CTaskManager::CTaskManager(CObject* object)
{
- m_iMan = iMan;
- m_iMan->AddInstance(CLASS_TASKMANAGER, this, 100);
-
- m_task = 0;
+ m_task = nullptr;
m_object = object;
m_bPilot = false;
}
@@ -66,7 +62,7 @@ CTaskManager::~CTaskManager()
Error CTaskManager::StartTaskWait(float time)
{
- m_task = new CTaskWait(m_iMan, m_object);
+ m_task = new CTaskWait(m_object);
return (static_cast<CTaskWait*>(m_task))->Start(time);
}
@@ -74,7 +70,7 @@ Error CTaskManager::StartTaskWait(float time)
Error CTaskManager::StartTaskAdvance(float length)
{
- m_task = new CTaskAdvance(m_iMan, m_object);
+ m_task = new CTaskAdvance(m_object);
return (static_cast<CTaskAdvance*>(m_task))->Start(length);
}
@@ -82,7 +78,7 @@ Error CTaskManager::StartTaskAdvance(float length)
Error CTaskManager::StartTaskTurn(float angle)
{
- m_task = new CTaskTurn(m_iMan, m_object);
+ m_task = new CTaskTurn(m_object);
return (static_cast<CTaskTurn*>(m_task))->Start(angle);
}
@@ -90,7 +86,7 @@ Error CTaskManager::StartTaskTurn(float angle)
Error CTaskManager::StartTaskGoto(Math::Vector pos, float altitude, TaskGotoGoal goalMode, TaskGotoCrash crashMode)
{
- m_task = new CTaskGoto(m_iMan, m_object);
+ m_task = new CTaskGoto(m_object);
return (static_cast<CTaskGoto*>(m_task))->Start(pos, altitude, goalMode, crashMode);
}
@@ -98,7 +94,7 @@ Error CTaskManager::StartTaskGoto(Math::Vector pos, float altitude, TaskGotoGoal
Error CTaskManager::StartTaskTake()
{
- m_task = new CTaskTake(m_iMan, m_object);
+ m_task = new CTaskTake(m_object);
return (static_cast<CTaskTake*>(m_task))->Start();
}
@@ -106,7 +102,7 @@ Error CTaskManager::StartTaskTake()
Error CTaskManager::StartTaskManip(TaskManipOrder order, TaskManipArm arm)
{
- m_task = new CTaskManip(m_iMan, m_object);
+ m_task = new CTaskManip(m_object);
return (static_cast<CTaskManip*>(m_task))->Start(order, arm);
}
@@ -114,7 +110,7 @@ Error CTaskManager::StartTaskManip(TaskManipOrder order, TaskManipArm arm)
Error CTaskManager::StartTaskFlag(TaskFlagOrder order, int rank)
{
- m_task = new CTaskFlag(m_iMan, m_object);
+ m_task = new CTaskFlag(m_object);
return (static_cast<CTaskFlag*>(m_task))->Start(order, rank);
}
@@ -122,7 +118,7 @@ Error CTaskManager::StartTaskFlag(TaskFlagOrder order, int rank)
Error CTaskManager::StartTaskBuild(ObjectType type)
{
- m_task = new CTaskBuild(m_iMan, m_object);
+ m_task = new CTaskBuild(m_object);
return (static_cast<CTaskBuild*>(m_task))->Start(type);
}
@@ -130,7 +126,7 @@ Error CTaskManager::StartTaskBuild(ObjectType type)
Error CTaskManager::StartTaskSearch()
{
- m_task = new CTaskSearch(m_iMan, m_object);
+ m_task = new CTaskSearch(m_object);
return (static_cast<CTaskSearch*>(m_task))->Start();
}
@@ -138,7 +134,7 @@ Error CTaskManager::StartTaskSearch()
Error CTaskManager::StartTaskInfo(const char *name, float value, float power, bool bSend)
{
- m_task = new CTaskInfo(m_iMan, m_object);
+ m_task = new CTaskInfo(m_object);
return (static_cast<CTaskInfo*>(m_task))->Start(name, value, power, bSend);
}
@@ -146,7 +142,7 @@ Error CTaskManager::StartTaskInfo(const char *name, float value, float power, bo
Error CTaskManager::StartTaskTerraform()
{
- m_task = new CTaskTerraform(m_iMan, m_object);
+ m_task = new CTaskTerraform(m_object);
return (static_cast<CTaskTerraform*>(m_task))->Start();
}
@@ -154,7 +150,7 @@ Error CTaskManager::StartTaskTerraform()
Error CTaskManager::StartTaskPen(bool bDown, int color)
{
- m_task = new CTaskPen(m_iMan, m_object);
+ m_task = new CTaskPen(m_object);
return (static_cast<CTaskPen*>(m_task))->Start(bDown, color);
}
@@ -162,7 +158,7 @@ Error CTaskManager::StartTaskPen(bool bDown, int color)
Error CTaskManager::StartTaskRecover()
{
- m_task = new CTaskRecover(m_iMan, m_object);
+ m_task = new CTaskRecover(m_object);
return (static_cast<CTaskRecover*>(m_task))->Start();
}
@@ -172,7 +168,7 @@ Error CTaskManager::StartTaskShield(TaskShieldMode mode, float delay)
{
if ( mode == TSM_UP )
{
- m_task = new CTaskShield(m_iMan, m_object);
+ m_task = new CTaskShield(m_object);
return (static_cast<CTaskShield*>(m_task))->Start(mode, delay);
}
if ( mode == TSM_DOWN && m_task != 0 )
@@ -191,7 +187,7 @@ Error CTaskManager::StartTaskShield(TaskShieldMode mode, float delay)
Error CTaskManager::StartTaskFire(float delay)
{
m_bPilot = true;
- m_task = new CTaskFire(m_iMan, m_object);
+ m_task = new CTaskFire(m_object);
return (static_cast<CTaskFire*>(m_task))->Start(delay);
}
@@ -199,7 +195,7 @@ Error CTaskManager::StartTaskFire(float delay)
Error CTaskManager::StartTaskFireAnt(Math::Vector impact)
{
- m_task = new CTaskFireAnt(m_iMan, m_object);
+ m_task = new CTaskFireAnt(m_object);
return (static_cast<CTaskFireAnt*>(m_task))->Start(impact);
}
@@ -207,7 +203,7 @@ Error CTaskManager::StartTaskFireAnt(Math::Vector impact)
Error CTaskManager::StartTaskGunGoal(float dirV, float dirH)
{
- m_task = new CTaskGunGoal(m_iMan, m_object);
+ m_task = new CTaskGunGoal(m_object);
return (static_cast<CTaskGunGoal*>(m_task))->Start(dirV, dirH);
}
@@ -215,7 +211,7 @@ Error CTaskManager::StartTaskGunGoal(float dirV, float dirH)
Error CTaskManager::StartTaskSpiderExplo()
{
- m_task = new CTaskSpiderExplo(m_iMan, m_object);
+ m_task = new CTaskSpiderExplo(m_object);
return (static_cast<CTaskSpiderExplo*>(m_task))->Start();
}
@@ -223,7 +219,7 @@ Error CTaskManager::StartTaskSpiderExplo()
Error CTaskManager::StartTaskReset(Math::Vector goal, Math::Vector angle)
{
- m_task = new CTaskReset(m_iMan, m_object);
+ m_task = new CTaskReset(m_object);
return (static_cast<CTaskReset*>(m_task))->Start(goal, angle);
}
diff --git a/src/object/task/taskmanager.h b/src/object/task/taskmanager.h
index 6ce023a..80a78fd 100644
--- a/src/object/task/taskmanager.h
+++ b/src/object/task/taskmanager.h
@@ -19,8 +19,8 @@
#pragma once
-#include "object/task/task.h"
#include "object/object.h"
+#include "object/task/task.h"
#include "object/task/taskmanip.h"
#include "object/task/taskgoto.h"
#include "object/task/taskshield.h"
@@ -31,7 +31,7 @@
class CTaskManager
{
public:
- CTaskManager(CInstanceManager* iMan, CObject* object);
+ CTaskManager(CObject* object);
~CTaskManager();
Error StartTaskWait(float time);
@@ -61,9 +61,6 @@ public:
bool Abort();
protected:
-
-protected:
- CInstanceManager* m_iMan;
CTask* m_task;
CObject* m_object;
bool m_bPilot;
diff --git a/src/object/task/taskmanip.cpp b/src/object/task/taskmanip.cpp
index b0b146c..0608b6e 100644
--- a/src/object/task/taskmanip.cpp
+++ b/src/object/task/taskmanip.cpp
@@ -14,15 +14,18 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskmanip.cpp
#include "object/task/taskmanip.h"
#include "common/iman.h"
+
#include "graphics/engine/terrain.h"
#include "graphics/engine/pyro.h"
+
#include "math/geometry.h"
+
#include "object/robotmain.h"
+
#include "physics/physics.h"
@@ -40,8 +43,7 @@ const float MARGIN_BEE = 5.0f; //OK 1.9
// Object's constructor.
-CTaskManip::CTaskManip(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskManip::CTaskManip(CObject* object) : CTask(object)
{
m_arm = TMA_NEUTRAL;
m_hand = TMH_OPEN;
@@ -338,7 +340,7 @@ Error CTaskManip::Start(TaskManipOrder order, TaskManipArm arm)
pos.y += 2.0f;
m_object->SetPosition(0, pos); // against the top of jump
- pyro = new Gfx::CPyro(m_iMan);
+ pyro = new Gfx::CPyro();
pyro->Create(Gfx::PT_FALL, other); // the ball falls
}
@@ -728,11 +730,13 @@ CObject* CTaskManip::SearchTakeUnderObject(Math::Vector &pos, float dLimit)
iPos = m_object->GetPosition(0);
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
min = 1000000.0f;
pBest = 0;
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
type = pObj->GetType();
@@ -798,12 +802,14 @@ CObject* CTaskManip::SearchTakeFrontObject(bool bAdvance, Math::Vector &pos,
dLimit = MARGIN_FRONT;
}
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
min = 1000000.0f;
pBest = 0;
bAngle = 0.0f;
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
type = pObj->GetType();
@@ -889,12 +895,14 @@ CObject* CTaskManip::SearchTakeBackObject(bool bAdvance, Math::Vector &pos,
dLimit = MARGIN_BACK;
}
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
min = 1000000.0f;
pBest = 0;
bAngle = 0.0f;
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
type = pObj->GetType();
@@ -989,9 +997,11 @@ CObject* CTaskManip::SearchOtherObject(bool bAdvance, Math::Vector &pos,
dLimit = MARGIN_FRIEND;
}
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
if ( pObj == m_object ) continue; // yourself?
@@ -1345,9 +1355,11 @@ bool CTaskManip::IsFreeDeposeObject(Math::Vector pos)
mat = m_object->GetWorldMatrix(0);
iPos = Transform(*mat, pos);
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
if ( pObj == m_object ) continue;
diff --git a/src/object/task/taskmanip.h b/src/object/task/taskmanip.h
index 79d9ad5..e80602c 100644
--- a/src/object/task/taskmanip.h
+++ b/src/object/task/taskmanip.h
@@ -54,7 +54,7 @@ enum TaskManipHand
class CTaskManip : public CTask
{
public:
- CTaskManip(CInstanceManager* iMan, CObject* object);
+ CTaskManip(CObject* object);
~CTaskManip();
bool EventProcess(const Event &event);
diff --git a/src/object/task/taskpen.cpp b/src/object/task/taskpen.cpp
index 6e04233..03c2322 100644
--- a/src/object/task/taskpen.cpp
+++ b/src/object/task/taskpen.cpp
@@ -14,20 +14,20 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskpen.cpp
#include "object/task/taskpen.h"
#include "graphics/engine/particle.h"
-#include "math/geometry.h"
+
#include "object/object.h"
+#include "math/geometry.h"
+
// Object's constructor.
-CTaskPen::CTaskPen(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskPen::CTaskPen(CObject* object) : CTask(object)
{
}
diff --git a/src/object/task/taskpen.h b/src/object/task/taskpen.h
index 0974322..adaba6c 100644
--- a/src/object/task/taskpen.h
+++ b/src/object/task/taskpen.h
@@ -36,7 +36,7 @@ enum TaskPenPhase
class CTaskPen : public CTask
{
public:
- CTaskPen(CInstanceManager* iMan, CObject* object);
+ CTaskPen(CObject* object);
~CTaskPen();
bool EventProcess(const Event &event);
diff --git a/src/object/task/taskrecover.cpp b/src/object/task/taskrecover.cpp
index 4c8ead8..b86e9a5 100644
--- a/src/object/task/taskrecover.cpp
+++ b/src/object/task/taskrecover.cpp
@@ -14,17 +14,19 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskrecover.cpp
-
#include <stdio.h>
#include "object/task/taskrecover.h"
-#include "math/geometry.h"
#include "common/iman.h"
+
#include "graphics/engine/particle.h"
+
+#include "math/geometry.h"
+
#include "physics/physics.h"
+
#include "ui/displaytext.h"
@@ -35,8 +37,7 @@ const float RECOVER_DIST = 11.8f;
// Object's constructor.
-CTaskRecover::CTaskRecover(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskRecover::CTaskRecover(CObject* object) : CTask(object)
{
m_ruin = 0;
m_soundChannel = -1;
@@ -297,7 +298,7 @@ Error CTaskRecover::IsEnded()
if ( m_phase == TRP_DOWN )
{
- m_metal = new CObject(m_iMan);
+ m_metal = new CObject();
if ( !m_metal->CreateResource(m_recoverPos, 0.0f, OBJECT_METAL) )
{
delete m_metal;
@@ -385,11 +386,13 @@ CObject* CTaskRecover::SearchRuin()
float dist, min;
int i;
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
pBest = 0;
min = 100000.0f;
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
type = pObj->GetType();
diff --git a/src/object/task/taskrecover.h b/src/object/task/taskrecover.h
index 151ab6b..817ed5f 100644
--- a/src/object/task/taskrecover.h
+++ b/src/object/task/taskrecover.h
@@ -20,6 +20,7 @@
#include "object/task/task.h"
+
#include "math/vector.h"
@@ -38,7 +39,7 @@ enum TaskRecoverPhase
class CTaskRecover : public CTask
{
public:
- CTaskRecover(CInstanceManager* iMan, CObject* object);
+ CTaskRecover(CObject* object);
~CTaskRecover();
bool EventProcess(const Event &event);
diff --git a/src/object/task/taskreset.cpp b/src/object/task/taskreset.cpp
index 7e097bf..98d9730 100644
--- a/src/object/task/taskreset.cpp
+++ b/src/object/task/taskreset.cpp
@@ -14,11 +14,11 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskreset.cpp
#include "object/task/taskreset.h"
#include "common/iman.h"
+
#include "object/brain.h"
#include "object/robotmain.h"
@@ -32,8 +32,7 @@ const float RESET_DELAY_MOVE = 0.7f;
// Object's constructor.
-CTaskReset::CTaskReset(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskReset::CTaskReset(CObject* object) : CTask(object)
{
}
@@ -273,9 +272,11 @@ bool CTaskReset::SearchVehicle()
float oRadius, dist;
int i;
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
if ( pObj == m_object ) continue;
diff --git a/src/object/task/taskreset.h b/src/object/task/taskreset.h
index e3dacf7..5f1bb34 100644
--- a/src/object/task/taskreset.h
+++ b/src/object/task/taskreset.h
@@ -36,7 +36,7 @@ enum TaskResetPhase
class CTaskReset : public CTask
{
public:
- CTaskReset(CInstanceManager* iMan, CObject* object);
+ CTaskReset(CObject* object);
~CTaskReset();
bool EventProcess(const Event &event);
diff --git a/src/object/task/tasksearch.cpp b/src/object/task/tasksearch.cpp
index 578b41e..b219185 100644
--- a/src/object/task/tasksearch.cpp
+++ b/src/object/task/tasksearch.cpp
@@ -14,15 +14,18 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// tasksearch.cpp
#include "object/task/tasksearch.h"
-#include "math/geometry.h"
#include "common/iman.h"
+
#include "graphics/engine/particle.h"
#include "graphics/engine/terrain.h"
+
+#include "math/geometry.h"
+
#include "physics/physics.h"
+
#include "ui/displaytext.h"
@@ -30,8 +33,7 @@
// Object's constructor.
-CTaskSearch::CTaskSearch(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskSearch::CTaskSearch(CObject* object) : CTask(object)
{
m_hand = TSH_UP;
}
@@ -280,7 +282,7 @@ bool CTaskSearch::CreateMark()
//? DeleteMark(type);
- fret = new CObject(m_iMan);
+ fret = new CObject();
if ( !fret->CreateResource(pos, 0.0f, type) )
{
delete fret;
@@ -301,9 +303,11 @@ void CTaskSearch::DeleteMark(ObjectType type)
Math::Vector oPos;
int i;
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
if ( type == pObj->GetType() )
diff --git a/src/object/task/tasksearch.h b/src/object/task/tasksearch.h
index bffec16..582d45a 100644
--- a/src/object/task/tasksearch.h
+++ b/src/object/task/tasksearch.h
@@ -42,7 +42,7 @@ enum TaskSearchPhase
class CTaskSearch : public CTask
{
public:
- CTaskSearch(CInstanceManager* iMan, CObject* object);
+ CTaskSearch(CObject* object);
~CTaskSearch();
bool EventProcess(const Event &event);
diff --git a/src/object/task/taskshield.cpp b/src/object/task/taskshield.cpp
index 93afd62..4b2fccd 100644
--- a/src/object/task/taskshield.cpp
+++ b/src/object/task/taskshield.cpp
@@ -14,16 +14,19 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskshield.cpp
#include "object/task/taskshield.h"
#include "common/iman.h"
+
#include "graphics/core/light.h"
#include "graphics/engine/particle.h"
#include "graphics/engine/lightman.h"
+
#include "math/geometry.h"
+
#include "object/brain.h"
+
#include "physics/physics.h"
#include <string.h>
@@ -34,8 +37,7 @@ const float ENERGY_TIME = 20.0f; // maximum duration if full battery
// Object's constructor.
-CTaskShield::CTaskShield(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskShield::CTaskShield(CObject* object) : CTask(object)
{
m_rankSphere = -1;
m_soundChannel = -1;
@@ -521,9 +523,11 @@ void CTaskShield::IncreaseShield()
float dist, shield;
int i;
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
type = pObj->GetType();
diff --git a/src/object/task/taskshield.h b/src/object/task/taskshield.h
index 4a6811c..36d3819 100644
--- a/src/object/task/taskshield.h
+++ b/src/object/task/taskshield.h
@@ -20,6 +20,7 @@
#include "object/task/task.h"
+
#include "math/vector.h"
@@ -49,7 +50,7 @@ enum TaskShieldMode
class CTaskShield : public CTask
{
public:
- CTaskShield(CInstanceManager* iMan, CObject* object);
+ CTaskShield(CObject* object);
~CTaskShield();
bool EventProcess(const Event &event);
diff --git a/src/object/task/taskspiderexplo.cpp b/src/object/task/taskspiderexplo.cpp
index 8110870..f629714 100644
--- a/src/object/task/taskspiderexplo.cpp
+++ b/src/object/task/taskspiderexplo.cpp
@@ -14,12 +14,13 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskspiderexplo.cpp
#include "object/task/taskspiderexplo.h"
#include "graphics/engine/pyro.h"
+
#include "object/motion/motionspider.h"
+
#include "physics/physics.h"
@@ -27,8 +28,7 @@
// Object's constructor.
-CTaskSpiderExplo::CTaskSpiderExplo(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskSpiderExplo::CTaskSpiderExplo(CObject* object) : CTask(object)
{
m_time = 0.0f;
m_bError = false;
@@ -91,7 +91,7 @@ Error CTaskSpiderExplo::IsEnded()
if ( m_time < 1.0f ) return ERR_CONTINUE;
- pyro = new Gfx::CPyro(m_iMan);
+ pyro = new Gfx::CPyro();
pyro->Create(Gfx::PT_SPIDER, m_object); // the spider explodes (suicide)
Abort();
diff --git a/src/object/task/taskspiderexplo.h b/src/object/task/taskspiderexplo.h
index 50f3ad2..0984020 100644
--- a/src/object/task/taskspiderexplo.h
+++ b/src/object/task/taskspiderexplo.h
@@ -26,7 +26,7 @@
class CTaskSpiderExplo : public CTask
{
public:
- CTaskSpiderExplo(CInstanceManager* iMan, CObject* object);
+ CTaskSpiderExplo(CObject* object);
~CTaskSpiderExplo();
bool EventProcess(const Event &event);
diff --git a/src/object/task/tasktake.cpp b/src/object/task/tasktake.cpp
index 2737324..0037f85 100644
--- a/src/object/task/tasktake.cpp
+++ b/src/object/task/tasktake.cpp
@@ -14,16 +14,19 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// tasktake.cpp
#include "object/task/tasktake.h"
#include "common/iman.h"
+
#include "graphics/engine/terrain.h"
#include "graphics/engine/water.h"
+
#include "math/geometry.h"
+
#include "object/motion/motionhuman.h"
#include "object/robotmain.h"
+
#include "physics/physics.h"
@@ -31,10 +34,9 @@
// Object's constructor.
-CTaskTake::CTaskTake(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskTake::CTaskTake(CObject* object) : CTask(object)
{
- m_terrain = static_cast<Gfx::CTerrain*>(m_iMan->SearchInstance(CLASS_TERRAIN));
+ m_terrain = CRobotMain::GetInstancePointer()->GetTerrain();
m_arm = TTA_NEUTRAL;
}
@@ -305,12 +307,14 @@ CObject* CTaskTake::SearchTakeObject(float &angle,
iAngle = m_object->GetAngleY(0);
iAngle = Math::NormAngle(iAngle); // 0..2*Math::PI
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
min = 1000000.0f;
pBest = 0;
bAngle = 0.0f;
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
type = pObj->GetType();
@@ -374,9 +378,11 @@ CObject* CTaskTake::SearchFriendObject(float &angle,
iAngle = m_object->GetAngleY(0);
iAngle = Math::NormAngle(iAngle); // 0..2*Math::PI
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
if ( pObj == m_object ) continue; // yourself?
@@ -569,9 +575,11 @@ bool CTaskTake::IsFreeDeposeObject(Math::Vector pos)
mat = m_object->GetWorldMatrix(0);
iPos = Transform(*mat, pos);
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
if ( pObj == m_object ) continue;
diff --git a/src/object/task/tasktake.h b/src/object/task/tasktake.h
index c7950fe..7f3f831 100644
--- a/src/object/task/tasktake.h
+++ b/src/object/task/tasktake.h
@@ -42,7 +42,7 @@ enum TaskTakeArm
class CTaskTake : public CTask
{
public:
- CTaskTake(CInstanceManager* iMan, CObject* object);
+ CTaskTake(CObject* object);
~CTaskTake();
bool EventProcess(const Event &event);
diff --git a/src/object/task/taskterraform.cpp b/src/object/task/taskterraform.cpp
index 6afece4..1f5ef7b 100644
--- a/src/object/task/taskterraform.cpp
+++ b/src/object/task/taskterraform.cpp
@@ -14,23 +14,25 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskterraform.cpp
-
#include <stdio.h>
#include "object/task/taskterraform.h"
-#include "math/geometry.h"
#include "common/iman.h"
+
#include "graphics/engine/pyro.h"
#include "graphics/engine/particle.h"
#include "graphics/engine/terrain.h"
-#include "physics/physics.h"
+
+#include "math/geometry.h"
+
#include "object/brain.h"
#include "object/motion/motionant.h"
#include "object/motion/motionspider.h"
+#include "physics/physics.h"
+
const float ENERGY_TERRA = 0.40f; // energy consumed by blow
const float ACTION_RADIUS = 400.0f;
@@ -39,8 +41,7 @@ const float ACTION_RADIUS = 400.0f;
// Object's constructor.
-CTaskTerraform::CTaskTerraform(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskTerraform::CTaskTerraform(CObject* object) : CTask(object)
{
m_lastParticle = 0.0f;
m_soundChannel = -1;
@@ -370,9 +371,11 @@ bool CTaskTerraform::Terraform()
m_sound->Play(SOUND_THUMP, m_terraPos);
+ CInstanceManager* iMan = CInstanceManager::GetInstancePointer();
+
for ( i=0 ; i<1000000 ; i++ )
{
- pObj = static_cast<CObject*>(m_iMan->SearchInstance(CLASS_OBJECT, i));
+ pObj = static_cast<CObject*>(iMan->SearchInstance(CLASS_OBJECT, i));
if ( pObj == 0 ) break;
type = pObj->GetType();
@@ -383,7 +386,7 @@ bool CTaskTerraform::Terraform()
dist = Math::Distance(m_terraPos, pObj->GetPosition(0));
if ( dist > 20.0f ) continue;
- pyro = new Gfx::CPyro(m_iMan);
+ pyro = new Gfx::CPyro();
pyro->Create(Gfx::PT_FRAGT, pObj);
}
else
diff --git a/src/object/task/taskterraform.h b/src/object/task/taskterraform.h
index 91526b6..8ae0d64 100644
--- a/src/object/task/taskterraform.h
+++ b/src/object/task/taskterraform.h
@@ -20,6 +20,7 @@
#include "object/task/task.h"
+
#include "math/vector.h"
@@ -37,7 +38,7 @@ enum TaskTerraPhase
class CTaskTerraform : public CTask
{
public:
- CTaskTerraform(CInstanceManager* iMan, CObject* object);
+ CTaskTerraform(CObject* object);
~CTaskTerraform();
bool EventProcess(const Event &event);
diff --git a/src/object/task/taskturn.cpp b/src/object/task/taskturn.cpp
index 8f4bbd2..7a924cb 100644
--- a/src/object/task/taskturn.cpp
+++ b/src/object/task/taskturn.cpp
@@ -14,7 +14,6 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskturn.cpp
#include "object/task/taskturn.h"
@@ -26,8 +25,7 @@
// Object's constructor.
-CTaskTurn::CTaskTurn(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskTurn::CTaskTurn(CObject* object) : CTask(object)
{
}
diff --git a/src/object/task/taskturn.h b/src/object/task/taskturn.h
index 1ee40d9..11de476 100644
--- a/src/object/task/taskturn.h
+++ b/src/object/task/taskturn.h
@@ -26,7 +26,7 @@
class CTaskTurn : public CTask
{
public:
- CTaskTurn(CInstanceManager* iMan, CObject* object);
+ CTaskTurn(CObject* object);
~CTaskTurn();
bool EventProcess(const Event &event);
diff --git a/src/object/task/taskwait.cpp b/src/object/task/taskwait.cpp
index f612c24..3e201e0 100644
--- a/src/object/task/taskwait.cpp
+++ b/src/object/task/taskwait.cpp
@@ -14,7 +14,6 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
-// taskwait.cpp
#include "object/task/taskwait.h"
@@ -22,8 +21,7 @@
// Object's constructor.
-CTaskWait::CTaskWait(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
+CTaskWait::CTaskWait(CObject* object) : CTask(object)
{
}
diff --git a/src/object/task/taskwait.h b/src/object/task/taskwait.h
index 3434c36..3225c9a 100644
--- a/src/object/task/taskwait.h
+++ b/src/object/task/taskwait.h
@@ -26,7 +26,7 @@
class CTaskWait : public CTask
{
public:
- CTaskWait(CInstanceManager* iMan, CObject* object);
+ CTaskWait(CObject* object);
~CTaskWait();
bool EventProcess(const Event &event);