From 16883fcdc4cb53b2046ee0de48b55811d0100538 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Sun, 12 Jul 2015 11:33:52 +0200 Subject: [PATCH] Make CAuto classes use COldObject --- src/object/auto/auto.cpp | 8 ++------ src/object/auto/auto.h | 10 +++++++--- src/object/auto/autobase.cpp | 3 ++- src/object/auto/autobase.h | 8 +++++--- src/object/auto/autoconvert.cpp | 6 ++---- src/object/auto/autoconvert.h | 3 ++- src/object/auto/autoderrick.cpp | 6 ++---- src/object/auto/autoderrick.h | 3 ++- src/object/auto/autodestroyer.cpp | 6 ++---- src/object/auto/autodestroyer.h | 4 +++- src/object/auto/autoegg.cpp | 18 ++++++----------- src/object/auto/autoegg.h | 30 ++++++++++++++++------------ src/object/auto/autofactory.cpp | 6 ++---- src/object/auto/autofactory.h | 4 ++-- src/object/auto/autoflag.cpp | 7 ++++--- src/object/auto/autoflag.h | 2 +- src/object/auto/autohouston.cpp | 6 +++--- src/object/auto/autohouston.h | 2 +- src/object/auto/autojostle.cpp | 4 ++-- src/object/auto/autojostle.h | 2 +- src/object/auto/autolabo.cpp | 24 +++++++++------------- src/object/auto/autolabo.h | 3 +-- src/object/auto/automush.cpp | 7 ++----- src/object/auto/automush.h | 2 +- src/object/auto/autonest.cpp | 7 ++----- src/object/auto/autonest.h | 3 ++- src/object/auto/autonuclearplant.cpp | 15 ++++++-------- src/object/auto/autonuclearplant.h | 5 ++--- src/object/auto/autoportico.cpp | 13 ++++-------- src/object/auto/autoportico.h | 2 +- src/object/auto/autopowercaptor.cpp | 6 ++---- src/object/auto/autopowercaptor.h | 2 +- src/object/auto/autopowerplant.cpp | 15 ++++++-------- src/object/auto/autopowerplant.h | 5 ++--- src/object/auto/autopowerstation.cpp | 4 ++-- src/object/auto/autopowerstation.h | 3 ++- src/object/auto/autoradar.cpp | 4 ++-- src/object/auto/autoradar.h | 2 +- src/object/auto/autorepair.cpp | 6 ++---- src/object/auto/autorepair.h | 3 ++- src/object/auto/autoresearch.cpp | 13 +++++------- src/object/auto/autoresearch.h | 5 +---- src/object/auto/autoroot.cpp | 5 +++-- src/object/auto/autoroot.h | 2 +- src/object/auto/autotower.cpp | 16 ++++++--------- src/object/auto/autotower.h | 5 ++--- src/object/auto/autovault.cpp | 10 +++------- src/object/auto/autovault.h | 3 ++- 48 files changed, 143 insertions(+), 185 deletions(-) diff --git a/src/object/auto/auto.cpp b/src/object/auto/auto.cpp index 89edc9d0..dc8025bb 100644 --- a/src/object/auto/auto.cpp +++ b/src/object/auto/auto.cpp @@ -20,26 +20,22 @@ #include "object/auto/auto.h" - #include "app/app.h" #include "common/event.h" #include "object/level/parserline.h" #include "object/level/parserparam.h" - +#include "object/old_object.h" #include "ui/interface.h" #include "ui/gauge.h" #include "ui/window.h" -#include -#include - // Object's constructor. -CAuto::CAuto(CObject* object) +CAuto::CAuto(COldObject* object) { m_object = object; m_engine = Gfx::CEngine::GetInstancePointer(); diff --git a/src/object/auto/auto.h b/src/object/auto/auto.h index 9568563c..9b05eaaf 100644 --- a/src/object/auto/auto.h +++ b/src/object/auto/auto.h @@ -22,13 +22,16 @@ #pragma once +#include "common/event.h" #include "common/global.h" -#include "object/object.h" + +#include "object/object_type.h" class CRobotMain; class CSoundInterface; class CLevelParserLine; +class COldObject; namespace Ui { class CInterface; @@ -46,13 +49,14 @@ class CCloud; class CCamera; class CPlanet; class CLightning; +class CTerrain; } /* Gfx */ class CAuto { public: - CAuto(CObject* object); + CAuto(COldObject* object); virtual ~CAuto(); virtual void DeleteObject(bool bAll=false); @@ -103,7 +107,7 @@ protected: Gfx::CCamera* m_camera; Ui::CInterface* m_interface; CRobotMain* m_main; - CObject* m_object; + COldObject* m_object; CSoundInterface* m_sound; ObjectType m_type; diff --git a/src/object/auto/autobase.cpp b/src/object/auto/autobase.cpp index 330b8028..0d4f7c62 100644 --- a/src/object/auto/autobase.cpp +++ b/src/object/auto/autobase.cpp @@ -31,6 +31,7 @@ #include "math/geometry.h" #include "object/object_manager.h" +#include "object/old_object.h" #include "object/robotmain.h" #include "physics/physics.h" @@ -54,7 +55,7 @@ const float BASE_TRANSIT_TIME = 15.0f; // transit duration // Object's constructor. -CAutoBase::CAutoBase(CObject* object) : CAuto(object) +CAutoBase::CAutoBase(COldObject* object) : CAuto(object) { m_fogStart = m_engine->GetFogStart(); m_deepView = m_engine->GetDeepView(); diff --git a/src/object/auto/autobase.h b/src/object/auto/autobase.h index c0b2b883..b2c2da62 100644 --- a/src/object/auto/autobase.h +++ b/src/object/auto/autobase.h @@ -24,6 +24,8 @@ #include "object/auto/auto.h" +#include "graphics/core/color.h" + enum AutoBaseParam @@ -67,7 +69,7 @@ enum AutoBasePhase class CAutoBase : public CAuto { public: - CAutoBase(CObject* object); + CAutoBase(COldObject* object); ~CAutoBase(); void DeleteObject(bool bAll=false); @@ -79,8 +81,8 @@ public: Error GetError(); bool CreateInterface(bool bSelect); - - Error TakeOff(bool printMsg); + + Error TakeOff(bool printMsg); protected: void UpdateInterface(); diff --git a/src/object/auto/autoconvert.cpp b/src/object/auto/autoconvert.cpp index 4c163063..237f28da 100644 --- a/src/object/auto/autoconvert.cpp +++ b/src/object/auto/autoconvert.cpp @@ -23,6 +23,7 @@ #include "math/geometry.h" #include "object/object_manager.h" +#include "object/old_object.h" #include "object/level/parserline.h" #include "object/level/parserparam.h" #include "object/interface/transportable_object.h" @@ -30,13 +31,10 @@ #include "ui/interface.h" #include "ui/window.h" -#include -#include - // Object's constructor. -CAutoConvert::CAutoConvert(CObject* object) : CAuto(object) +CAutoConvert::CAutoConvert(COldObject* object) : CAuto(object) { Init(); m_phase = ACP_STOP; diff --git a/src/object/auto/autoconvert.h b/src/object/auto/autoconvert.h index 4fab9b0e..7ea51aec 100644 --- a/src/object/auto/autoconvert.h +++ b/src/object/auto/autoconvert.h @@ -25,6 +25,7 @@ #include "object/auto/auto.h" +class CObject; enum AutoConvertPhase { @@ -40,7 +41,7 @@ enum AutoConvertPhase class CAutoConvert : public CAuto { public: - CAutoConvert(CObject* object); + CAutoConvert(COldObject* object); ~CAutoConvert(); void DeleteObject(bool bAll=false); diff --git a/src/object/auto/autoderrick.cpp b/src/object/auto/autoderrick.cpp index 0ed06f35..f02b92b6 100644 --- a/src/object/auto/autoderrick.cpp +++ b/src/object/auto/autoderrick.cpp @@ -25,15 +25,13 @@ #include "math/geometry.h" #include "object/object_manager.h" +#include "object/old_object.h" #include "object/level/parserline.h" #include "object/level/parserparam.h" - #include "ui/interface.h" #include "ui/window.h" -#include -#include const float DERRICK_DELAY = 10.0f; // duration of the extraction @@ -44,7 +42,7 @@ const float DERRICK_DELAYu = 30.0f; // same, but for uranium // Object's constructor. -CAutoDerrick::CAutoDerrick(CObject* object) : CAuto(object) +CAutoDerrick::CAutoDerrick(COldObject* object) : CAuto(object) { Init(); m_phase = ADP_WAIT; // paused until the first Init () diff --git a/src/object/auto/autoderrick.h b/src/object/auto/autoderrick.h index 9ffb6412..7439e2a9 100644 --- a/src/object/auto/autoderrick.h +++ b/src/object/auto/autoderrick.h @@ -25,6 +25,7 @@ #include "object/auto/auto.h" +class CObject; enum AutoDerrickPhase { @@ -40,7 +41,7 @@ enum AutoDerrickPhase class CAutoDerrick : public CAuto { public: - CAutoDerrick(CObject* object); + CAutoDerrick(COldObject* object); ~CAutoDerrick(); void DeleteObject(bool bAll=false); diff --git a/src/object/auto/autodestroyer.cpp b/src/object/auto/autodestroyer.cpp index 9e5026c1..51d81d0b 100644 --- a/src/object/auto/autodestroyer.cpp +++ b/src/object/auto/autodestroyer.cpp @@ -23,20 +23,18 @@ #include "graphics/engine/pyro_manager.h" #include "object/object_manager.h" +#include "object/old_object.h" #include "object/level/parserline.h" #include "object/level/parserparam.h" - #include "ui/interface.h" #include "ui/window.h" -#include -#include // Object's constructor. -CAutoDestroyer::CAutoDestroyer(CObject* object) : CAuto(object) +CAutoDestroyer::CAutoDestroyer(COldObject* object) : CAuto(object) { Init(); m_phase = ADEP_WAIT; // paused until the first Init () diff --git a/src/object/auto/autodestroyer.h b/src/object/auto/autodestroyer.h index 5b3b86a2..81988c32 100644 --- a/src/object/auto/autodestroyer.h +++ b/src/object/auto/autodestroyer.h @@ -25,6 +25,8 @@ #include "object/auto/auto.h" +class CObject; + enum AutoDestroyerPhase { @@ -39,7 +41,7 @@ enum AutoDestroyerPhase class CAutoDestroyer : public CAuto { public: - CAutoDestroyer(CObject* object); + CAutoDestroyer(COldObject* object); ~CAutoDestroyer(); void DeleteObject(bool bAll=false); diff --git a/src/object/auto/autoegg.cpp b/src/object/auto/autoegg.cpp index d14cd674..c4cb7f49 100644 --- a/src/object/auto/autoegg.cpp +++ b/src/object/auto/autoegg.cpp @@ -26,23 +26,19 @@ #include "object/brain.h" #include "object/object_manager.h" +#include "object/old_object.h" #include "object/interface/programmable_object.h" #include "object/interface/transportable_object.h" #include "object/level/parserline.h" #include "object/level/parserparam.h" -#include -#include - - // Object's constructor. -CAutoEgg::CAutoEgg(CObject* object) : CAuto(object) +CAutoEgg::CAutoEgg(COldObject* object) : CAuto(object) { m_type = OBJECT_NULL; m_value = 0.0f; - m_string[0] = 0; m_param = 0; m_phase = AEP_NULL; @@ -138,11 +134,9 @@ bool CAutoEgg::SetValue(int rank, float value) return true; } -// Getes the string. - bool CAutoEgg::SetString(char *string) { - strcpy(m_string, string); + m_alienProgramName = string; return true; } @@ -189,7 +183,7 @@ bool CAutoEgg::EventProcess(const Event &event) CBrain* brain = dynamic_cast(alien)->GetBrain(); Program* program = brain->AddProgram(); - brain->ReadProgram(program, m_string); + brain->ReadProgram(program, m_alienProgramName.c_str()); brain->RunProgram(program); } Init(); @@ -312,7 +306,7 @@ bool CAutoEgg::Write(CLevelParserLine* line) line->AddParam("aSpeed", CLevelParserParamUPtr{new CLevelParserParam(m_speed)}); line->AddParam("aParamType", CLevelParserParamUPtr{new CLevelParserParam(m_type)}); line->AddParam("aParamValue1", CLevelParserParamUPtr{new CLevelParserParam(m_value)}); - line->AddParam("aParamString", CLevelParserParamUPtr{new CLevelParserParam(std::string(m_string))}); + line->AddParam("aParamString", CLevelParserParamUPtr{new CLevelParserParam(m_alienProgramName)}); return true; } @@ -329,7 +323,7 @@ bool CAutoEgg::Read(CLevelParserLine* line) m_speed = line->GetParam("aSpeed")->AsFloat(1.0f); m_type = line->GetParam("aParamType")->AsObjectType(OBJECT_NULL); m_value = line->GetParam("aParamValue1")->AsFloat(0.0f); - strcpy(m_string, line->GetParam("aParamString")->AsString("").c_str()); + m_alienProgramName = line->GetParam("aParamString")->AsString(""); return true; } diff --git a/src/object/auto/autoegg.h b/src/object/auto/autoegg.h index e28eef1d..f2ebf524 100644 --- a/src/object/auto/autoegg.h +++ b/src/object/auto/autoegg.h @@ -25,6 +25,8 @@ #include "object/auto/auto.h" +class CObject; + enum AutoEggPhase { AEP_NULL = 0, @@ -39,23 +41,25 @@ enum AutoEggPhase class CAutoEgg : public CAuto { public: - CAutoEgg(CObject* object); + CAutoEgg(COldObject* object); ~CAutoEgg(); - void DeleteObject(bool bAll=false); + void DeleteObject(bool bAll=false) override; - void Init(); - void Start(int param); - bool EventProcess(const Event &event); - Error IsEnded(); - Error GetError(); + void Init() override; + void Start(int param) override; + bool EventProcess(const Event &event) override; + Error IsEnded() override; + Error GetError() override; - bool SetType(ObjectType type); - bool SetValue(int rank, float value); - bool SetString(char *string); + bool SetType(ObjectType type) override; + bool SetValue(int rank, float value) override; + //! Sets program which will be run by created aliens + // TODO: rename to be more meanigful + bool SetString(char* string) override; - bool Write(CLevelParserLine* line); - bool Read(CLevelParserLine* line); + bool Write(CLevelParserLine* line) override; + bool Read(CLevelParserLine* line) override; protected: CObject* SearchAlien(); @@ -63,7 +67,7 @@ protected: protected: ObjectType m_type; float m_value; - char m_string[100]; + std::string m_alienProgramName; int m_param; AutoEggPhase m_phase; float m_progress; diff --git a/src/object/auto/autofactory.cpp b/src/object/auto/autofactory.cpp index da14c334..dcd805b7 100644 --- a/src/object/auto/autofactory.cpp +++ b/src/object/auto/autofactory.cpp @@ -25,6 +25,7 @@ #include "math/geometry.h" #include "object/brain.h" +#include "object/old_object.h" #include "object/object_manager.h" #include "object/robotmain.h" #include "object/level/parserline.h" @@ -39,14 +40,11 @@ #include "ui/interface.h" #include "ui/window.h" -#include -#include - // Object's constructor. -CAutoFactory::CAutoFactory(CObject* object) : CAuto(object) +CAutoFactory::CAutoFactory(COldObject* object) : CAuto(object) { Init(); m_type = OBJECT_MOBILEws; diff --git a/src/object/auto/autofactory.h b/src/object/auto/autofactory.h index 4aef3c0c..90f96115 100644 --- a/src/object/auto/autofactory.h +++ b/src/object/auto/autofactory.h @@ -24,7 +24,7 @@ #include "object/auto/auto.h" - +class CObject; enum AutoFactoryPhase { @@ -42,7 +42,7 @@ enum AutoFactoryPhase class CAutoFactory : public CAuto { public: - CAutoFactory(CObject* object); + CAutoFactory(COldObject* object); ~CAutoFactory(); void DeleteObject(bool bAll=false); diff --git a/src/object/auto/autoflag.cpp b/src/object/auto/autoflag.cpp index 99a5181e..2c6473df 100644 --- a/src/object/auto/autoflag.cpp +++ b/src/object/auto/autoflag.cpp @@ -20,10 +20,11 @@ #include "object/auto/autoflag.h" -#include "math/geometry.h" #include "graphics/engine/terrain.h" -#include +#include "math/geometry.h" + +#include "object/old_object.h" @@ -39,7 +40,7 @@ static float g_flag3 = 2.00f; // Object's constructor. -CAutoFlag::CAutoFlag(CObject* object) : CAuto(object) +CAutoFlag::CAutoFlag(COldObject* object) : CAuto(object) { Init(); } diff --git a/src/object/auto/autoflag.h b/src/object/auto/autoflag.h index 59c7b719..711a5d0f 100644 --- a/src/object/auto/autoflag.h +++ b/src/object/auto/autoflag.h @@ -29,7 +29,7 @@ class CAutoFlag : public CAuto { public: - CAutoFlag(CObject* object); + CAutoFlag(COldObject* object); ~CAutoFlag(); void DeleteObject(bool bAll=false); diff --git a/src/object/auto/autohouston.cpp b/src/object/auto/autohouston.cpp index d13674a7..580462a9 100644 --- a/src/object/auto/autohouston.cpp +++ b/src/object/auto/autohouston.cpp @@ -20,15 +20,15 @@ #include "object/auto/autohouston.h" +#include "object/old_object.h" + #include "ui/interface.h" #include "ui/window.h" -#include - // Object's constructor. -CAutoHouston::CAutoHouston(CObject* object) : CAuto(object) +CAutoHouston::CAutoHouston(COldObject* object) : CAuto(object) { Math::Vector pos; int i; diff --git a/src/object/auto/autohouston.h b/src/object/auto/autohouston.h index 627e616c..9857b22c 100644 --- a/src/object/auto/autohouston.h +++ b/src/object/auto/autohouston.h @@ -44,7 +44,7 @@ const int HUSTONMAXLENS = 20; class CAutoHouston : public CAuto { public: - CAutoHouston(CObject* object); + CAutoHouston(COldObject* object); ~CAutoHouston(); void DeleteObject(bool bAll=false); diff --git a/src/object/auto/autojostle.cpp b/src/object/auto/autojostle.cpp index 4ff49e57..124c1b41 100644 --- a/src/object/auto/autojostle.cpp +++ b/src/object/auto/autojostle.cpp @@ -20,12 +20,12 @@ #include "object/auto/autojostle.h" -#include +#include "object/old_object.h" // Object's constructor. -CAutoJostle::CAutoJostle(CObject* object) : CAuto(object) +CAutoJostle::CAutoJostle(COldObject* object) : CAuto(object) { Init(); } diff --git a/src/object/auto/autojostle.h b/src/object/auto/autojostle.h index 36397766..c77c67c5 100644 --- a/src/object/auto/autojostle.h +++ b/src/object/auto/autojostle.h @@ -29,7 +29,7 @@ class CAutoJostle : public CAuto { public: - CAutoJostle(CObject* object); + CAutoJostle(COldObject* object); ~CAutoJostle(); void DeleteObject(bool bAll=false) override; diff --git a/src/object/auto/autolabo.cpp b/src/object/auto/autolabo.cpp index 5c4c30f3..cb6e2fc3 100644 --- a/src/object/auto/autolabo.cpp +++ b/src/object/auto/autolabo.cpp @@ -26,6 +26,7 @@ #include "math/geometry.h" #include "object/object_manager.h" +#include "object/old_object.h" #include "object/robotmain.h" #include "object/level/parserline.h" #include "object/level/parserparam.h" @@ -34,8 +35,6 @@ #include "ui/interface.h" #include "ui/window.h" -#include -#include const float LABO_DELAY = 20.0f; // duration of the analysis @@ -45,11 +44,9 @@ const float LABO_DELAY = 20.0f; // duration of the analysis // Object's constructor. -CAutoLabo::CAutoLabo(CObject* object) : CAuto(object) +CAutoLabo::CAutoLabo(COldObject* object) : CAuto(object) { - int i; - - for ( i=0 ; i<3 ; i++ ) + for (int i = 0; i < 3; i++) { m_partiRank[i] = -1; } @@ -59,7 +56,6 @@ CAutoLabo::CAutoLabo(CObject* object) : CAuto(object) Init(); assert(m_object->Implements(ObjectInterfaceType::Powered)); - m_poweredObject = dynamic_cast(m_object); } // Object's destructor. @@ -73,9 +69,7 @@ CAutoLabo::~CAutoLabo() void CAutoLabo::DeleteObject(bool bAll) { - int i; - - for ( i=0 ; i<3 ; i++ ) + for (int i = 0; i < 3; i++) { if ( m_partiRank[i] != -1 ) { @@ -133,7 +127,7 @@ Error CAutoLabo::StartAction(int param) return ERR_LABO_ALREADY; } - CObject* power = m_poweredObject->GetPower(); + CObject* power = m_object->GetPower(); if (power == nullptr) { return ERR_LABO_NULL; @@ -305,7 +299,7 @@ bool CAutoLabo::EventProcess(const Event &event) { if ( m_progress < 1.0f ) { - power = m_poweredObject->GetPower(); + power = m_object->GetPower(); if ( power != 0 ) { power->SetZoom(0, 1.0f-m_progress); @@ -366,10 +360,10 @@ bool CAutoLabo::EventProcess(const Event &event) m_eventQueue->AddEvent(newEvent); UpdateInterface(); - power = m_poweredObject->GetPower(); + power = m_object->GetPower(); if ( power != nullptr ) { - m_poweredObject->SetPower(nullptr); + m_object->SetPower(nullptr); CObjectManager::GetInstancePointer()->DeleteObject(power); } @@ -457,7 +451,7 @@ Error CAutoLabo::GetError() return ERR_BAT_VIRUS; } - CObject* obj = m_poweredObject->GetPower(); + CObject* obj = m_object->GetPower(); if (obj == nullptr) return ERR_LABO_NULL; ObjectType type = obj->GetType(); if ( type != OBJECT_BULLET ) return ERR_LABO_BAD; diff --git a/src/object/auto/autolabo.h b/src/object/auto/autolabo.h index b83db873..2c70ee95 100644 --- a/src/object/auto/autolabo.h +++ b/src/object/auto/autolabo.h @@ -44,7 +44,7 @@ enum AutoLaboPhase class CAutoLabo : public CAuto { public: - CAutoLabo(CObject* object); + CAutoLabo(COldObject* object); ~CAutoLabo(); void DeleteObject(bool bAll=false); @@ -67,7 +67,6 @@ protected: void SoundManip(float time, float amplitude, float frequency); protected: - CPoweredObject* m_poweredObject; AutoLaboPhase m_phase; float m_progress; float m_speed; diff --git a/src/object/auto/automush.cpp b/src/object/auto/automush.cpp index 06d3ae4b..d6fde492 100644 --- a/src/object/auto/automush.cpp +++ b/src/object/auto/automush.cpp @@ -21,18 +21,15 @@ #include "object/auto/automush.h" #include "object/object_manager.h" +#include "object/old_object.h" #include "object/level/parserline.h" #include "object/level/parserparam.h" -#include -#include - - // Object's constructor. -CAutoMush::CAutoMush(CObject* object) : CAuto(object) +CAutoMush::CAutoMush(COldObject* object) : CAuto(object) { Init(); } diff --git a/src/object/auto/automush.h b/src/object/auto/automush.h index 273dcc40..4c3f8017 100644 --- a/src/object/auto/automush.h +++ b/src/object/auto/automush.h @@ -40,7 +40,7 @@ enum AutoMushPhase class CAutoMush : public CAuto { public: - CAutoMush(CObject* object); + CAutoMush(COldObject* object); ~CAutoMush(); void DeleteObject(bool bAll=false); diff --git a/src/object/auto/autonest.cpp b/src/object/auto/autonest.cpp index 410dc867..53124f16 100644 --- a/src/object/auto/autonest.cpp +++ b/src/object/auto/autonest.cpp @@ -23,17 +23,14 @@ #include "graphics/engine/terrain.h" #include "object/object_manager.h" +#include "object/old_object.h" #include "object/level/parserline.h" #include "object/level/parserparam.h" -#include -#include - - // Object's constructor. -CAutoNest::CAutoNest(CObject* object) : CAuto(object) +CAutoNest::CAutoNest(COldObject* object) : CAuto(object) { Init(); } diff --git a/src/object/auto/autonest.h b/src/object/auto/autonest.h index 173766e9..7777b4cc 100644 --- a/src/object/auto/autonest.h +++ b/src/object/auto/autonest.h @@ -25,6 +25,7 @@ #include "object/auto/auto.h" +class CObject; enum AutoNestPhase { @@ -37,7 +38,7 @@ enum AutoNestPhase class CAutoNest : public CAuto { public: - CAutoNest(CObject* object); + CAutoNest(COldObject* object); ~CAutoNest(); void DeleteObject(bool bAll=false); diff --git a/src/object/auto/autonuclearplant.cpp b/src/object/auto/autonuclearplant.cpp index b925423b..55442f74 100644 --- a/src/object/auto/autonuclearplant.cpp +++ b/src/object/auto/autonuclearplant.cpp @@ -23,6 +23,7 @@ #include "math/geometry.h" #include "object/object_manager.h" +#include "object/old_object.h" #include "object/level/parserline.h" #include "object/level/parserparam.h" #include "object/interface/powered_object.h" @@ -31,9 +32,6 @@ #include "ui/interface.h" #include "ui/window.h" -#include -#include - const float NUCLEARPLANT_DELAY = 30.0f; // duration of the generation @@ -42,13 +40,12 @@ const float NUCLEARPLANT_DELAY = 30.0f; // duration of the generation // Object's constructor. -CAutoNuclearPlant::CAutoNuclearPlant(CObject* object) : CAuto(object) +CAutoNuclearPlant::CAutoNuclearPlant(COldObject* object) : CAuto(object) { m_channelSound = -1; Init(); assert(m_object->Implements(ObjectInterfaceType::Powered)); - m_poweredObject = dynamic_cast(m_object); } // Object's destructor. @@ -234,7 +231,7 @@ bool CAutoNuclearPlant::EventProcess(const Event &event) if ( cargo != nullptr ) { CObjectManager::GetInstancePointer()->DeleteObject(cargo); - m_poweredObject->SetPower(nullptr); + m_object->SetPower(nullptr); } CreatePower(); // creates the atomic cell @@ -322,7 +319,7 @@ bool CAutoNuclearPlant::CreateInterface(bool bSelect) CObject* CAutoNuclearPlant::SearchUranium() { - CObject* obj = m_poweredObject->GetPower(); + CObject* obj = m_object->GetPower(); if (obj == nullptr) return nullptr; if (obj->GetType() == OBJECT_URANIUM) return obj; return nullptr; @@ -391,7 +388,7 @@ void CAutoNuclearPlant::CreatePower() dynamic_cast(power)->SetTransporter(m_object); power->SetPosition(0, Math::Vector(22.0f, 3.0f, 0.0f)); - m_poweredObject->SetPower(power); + m_object->SetPower(power); } @@ -411,7 +408,7 @@ Error CAutoNuclearPlant::GetError() //? if ( m_object->GetEnergy() < ENERGY_POWER ) return ERR_NUCLEAR_LOW; - CObject* obj = m_poweredObject->GetPower(); + CObject* obj = m_object->GetPower(); if ( obj == nullptr ) return ERR_NUCLEAR_EMPTY; if ( obj->GetLock() ) return ERR_OK; ObjectType type = obj->GetType(); diff --git a/src/object/auto/autonuclearplant.h b/src/object/auto/autonuclearplant.h index 33c1648e..5aae92e9 100644 --- a/src/object/auto/autonuclearplant.h +++ b/src/object/auto/autonuclearplant.h @@ -25,7 +25,7 @@ #include "object/auto/auto.h" -class CPoweredObject; +class CObject; enum AutoNuclearPlantPhase { @@ -41,7 +41,7 @@ enum AutoNuclearPlantPhase class CAutoNuclearPlant : public CAuto { public: - CAutoNuclearPlant(CObject* object); + CAutoNuclearPlant(COldObject* object); ~CAutoNuclearPlant(); void DeleteObject(bool bAll=false); @@ -61,7 +61,6 @@ protected: void CreatePower(); protected: - CPoweredObject* m_poweredObject; AutoNuclearPlantPhase m_phase; float m_progress; float m_speed; diff --git a/src/object/auto/autoportico.cpp b/src/object/auto/autoportico.cpp index bd31a483..f3349389 100644 --- a/src/object/auto/autoportico.cpp +++ b/src/object/auto/autoportico.cpp @@ -22,9 +22,7 @@ #include "object/robotmain.h" - -#include -#include +#include "object/old_object.h" const int PARAM_DEPOSE = 2; // run=2 -> deposits the spaceship @@ -57,7 +55,7 @@ float Progress(float a, float b, float progress) // Object's constructor. -CAutoPortico::CAutoPortico(CObject* object) : CAuto(object) +CAutoPortico::CAutoPortico(COldObject* object) : CAuto(object) { Init(); m_phase = APOP_WAIT; @@ -398,10 +396,7 @@ Error CAutoPortico::GetError() void CAutoPortico::UpdateTrackMapping(float left, float right) { - Gfx::Material mat; - int rank; - - memset( &mat, 0, sizeof(Gfx::Material)); + Gfx::Material mat; mat.diffuse.r = 1.0f; mat.diffuse.g = 1.0f; mat.diffuse.b = 1.0f; // blank @@ -409,7 +404,7 @@ void CAutoPortico::UpdateTrackMapping(float left, float right) mat.ambient.g = 0.5f; mat.ambient.b = 0.5f; - rank = m_object->GetObjectRank(0); + int rank = m_object->GetObjectRank(0); m_engine->TrackTextureMapping(rank, mat, Gfx::ENG_RSTATE_PART1, "objects/lemt.png", "", Gfx::ENG_TEX_MAPPING_X, diff --git a/src/object/auto/autoportico.h b/src/object/auto/autoportico.h index f0554485..0744ed27 100644 --- a/src/object/auto/autoportico.h +++ b/src/object/auto/autoportico.h @@ -42,7 +42,7 @@ enum AutoPorticoPhase class CAutoPortico : public CAuto { public: - CAutoPortico(CObject* object); + CAutoPortico(COldObject* object); ~CAutoPortico(); void DeleteObject(bool bAll=false); diff --git a/src/object/auto/autopowercaptor.cpp b/src/object/auto/autopowercaptor.cpp index c3dceada..fd32662f 100644 --- a/src/object/auto/autopowercaptor.cpp +++ b/src/object/auto/autopowercaptor.cpp @@ -24,6 +24,7 @@ #include "math/geometry.h" #include "object/object_manager.h" +#include "object/old_object.h" #include "object/level/parserline.h" #include "object/level/parserparam.h" #include "object/interface/carrier_object.h" @@ -33,14 +34,11 @@ #include "ui/interface.h" #include "ui/window.h" -#include -#include - // Object's constructor. -CAutoPowerCaptor::CAutoPowerCaptor(CObject* object) : CAuto(object) +CAutoPowerCaptor::CAutoPowerCaptor(COldObject* object) : CAuto(object) { m_channelSound = -1; Init(); diff --git a/src/object/auto/autopowercaptor.h b/src/object/auto/autopowercaptor.h index 91ec2aed..e12caf3e 100644 --- a/src/object/auto/autopowercaptor.h +++ b/src/object/auto/autopowercaptor.h @@ -38,7 +38,7 @@ enum AutoPowerCaptorPhase class CAutoPowerCaptor : public CAuto { public: - CAutoPowerCaptor(CObject* object); + CAutoPowerCaptor(COldObject* object); ~CAutoPowerCaptor(); void DeleteObject(bool bAll=false); diff --git a/src/object/auto/autopowerplant.cpp b/src/object/auto/autopowerplant.cpp index 1b40f1ef..fb2b8013 100644 --- a/src/object/auto/autopowerplant.cpp +++ b/src/object/auto/autopowerplant.cpp @@ -25,6 +25,7 @@ #include "math/geometry.h" #include "object/object_manager.h" +#include "object/old_object.h" #include "object/interface/powered_object.h" #include "object/interface/transportable_object.h" #include "object/level/parserline.h" @@ -34,9 +35,6 @@ #include "ui/gauge.h" #include "ui/window.h" -#include -#include - const float POWERPLANT_POWER = 0.4f; // Necessary energy for a battery const float POWERPLANT_DELAY = 12.0f; // processing time @@ -46,13 +44,12 @@ const float POWERPLANT_DELAY = 12.0f; // processing time // Object's constructor. -CAutoPowerPlant::CAutoPowerPlant(CObject* object) : CAuto(object) +CAutoPowerPlant::CAutoPowerPlant(COldObject* object) : CAuto(object) { m_partiSphere = -1; Init(); assert(m_object->Implements(ObjectInterfaceType::Powered)); - m_poweredObject = dynamic_cast(m_object); } // Object's destructor. @@ -313,7 +310,7 @@ bool CAutoPowerPlant::EventProcess(const Event &event) cargo = SearchMetal(); if ( cargo != nullptr ) { - m_poweredObject->SetPower(nullptr); + m_object->SetPower(nullptr); CObjectManager::GetInstancePointer()->DeleteObject(cargo); } @@ -326,7 +323,7 @@ bool CAutoPowerPlant::EventProcess(const Event &event) cargo->SetLock(false); // usable battery dynamic_cast(cargo)->SetTransporter(m_object); cargo->SetPosition(0, Math::Vector(0.0f, 3.0f, 0.0f)); - m_poweredObject->SetPower(cargo); + m_object->SetPower(cargo); m_main->DisplayError(INFO_ENERGY, m_object); } @@ -380,7 +377,7 @@ bool CAutoPowerPlant::EventProcess(const Event &event) CObject* CAutoPowerPlant::SearchMetal() { - CObject* obj = m_poweredObject->GetPower(); + CObject* obj = m_object->GetPower(); if ( obj == nullptr ) return nullptr; ObjectType type = obj->GetType(); @@ -502,7 +499,7 @@ Error CAutoPowerPlant::GetError() if ( m_object->GetEnergy() < POWERPLANT_POWER ) return ERR_ENERGY_LOW; - CObject* obj = m_poweredObject->GetPower(); + CObject* obj = m_object->GetPower(); if (obj == nullptr) return ERR_ENERGY_EMPTY; ObjectType type = obj->GetType(); if ( type == OBJECT_POWER ) return ERR_OK; diff --git a/src/object/auto/autopowerplant.h b/src/object/auto/autopowerplant.h index 5f438b2d..d4cd594f 100644 --- a/src/object/auto/autopowerplant.h +++ b/src/object/auto/autopowerplant.h @@ -25,7 +25,7 @@ #include "object/auto/auto.h" -class CPoweredObject; +class CObject; enum AutoPowerPlantPhase @@ -42,7 +42,7 @@ enum AutoPowerPlantPhase class CAutoPowerPlant : public CAuto { public: - CAutoPowerPlant(CObject* object); + CAutoPowerPlant(COldObject* object); ~CAutoPowerPlant(); void DeleteObject(bool bAll=false); @@ -65,7 +65,6 @@ protected: CObject* SearchPower(); protected: - CPoweredObject* m_poweredObject; AutoPowerPlantPhase m_phase; float m_progress; float m_speed; diff --git a/src/object/auto/autopowerstation.cpp b/src/object/auto/autopowerstation.cpp index 05b28a33..25ffffc7 100644 --- a/src/object/auto/autopowerstation.cpp +++ b/src/object/auto/autopowerstation.cpp @@ -26,6 +26,7 @@ #include "math/geometry.h" #include "object/object_manager.h" +#include "object/old_object.h" #include "object/interface/carrier_object.h" #include "object/interface/powered_object.h" @@ -33,12 +34,11 @@ #include "ui/gauge.h" #include "ui/window.h" -#include // Object's constructor. -CAutoPowerStation::CAutoPowerStation(CObject* object) : CAuto(object) +CAutoPowerStation::CAutoPowerStation(COldObject* object) : CAuto(object) { Init(); } diff --git a/src/object/auto/autopowerstation.h b/src/object/auto/autopowerstation.h index c7991d75..21b7baec 100644 --- a/src/object/auto/autopowerstation.h +++ b/src/object/auto/autopowerstation.h @@ -24,12 +24,13 @@ #include "object/auto/auto.h" +class CObject; class CAutoPowerStation : public CAuto { public: - CAutoPowerStation(CObject* object); + CAutoPowerStation(COldObject* object); ~CAutoPowerStation(); void DeleteObject(bool bAll=false); diff --git a/src/object/auto/autoradar.cpp b/src/object/auto/autoradar.cpp index 3e5bb80c..ad3e2a62 100644 --- a/src/object/auto/autoradar.cpp +++ b/src/object/auto/autoradar.cpp @@ -23,17 +23,17 @@ #include "math/geometry.h" #include "object/object_manager.h" +#include "object/old_object.h" #include "ui/interface.h" #include "ui/window.h" #include "ui/gauge.h" -#include // Object's constructor. -CAutoRadar::CAutoRadar(CObject* object) : CAuto(object) +CAutoRadar::CAutoRadar(COldObject* object) : CAuto(object) { Init(); m_phase = ARAP_WAIT; diff --git a/src/object/auto/autoradar.h b/src/object/auto/autoradar.h index 6cdb21a2..9b1f1cc9 100644 --- a/src/object/auto/autoradar.h +++ b/src/object/auto/autoradar.h @@ -39,7 +39,7 @@ enum AutoRadarPhase class CAutoRadar : public CAuto { public: - CAutoRadar(CObject* object); + CAutoRadar(COldObject* object); ~CAutoRadar(); void DeleteObject(bool bAll=false); diff --git a/src/object/auto/autorepair.cpp b/src/object/auto/autorepair.cpp index 57da00be..0cdd723c 100644 --- a/src/object/auto/autorepair.cpp +++ b/src/object/auto/autorepair.cpp @@ -21,22 +21,20 @@ #include "object/auto/autorepair.h" #include "object/object_manager.h" +#include "object/old_object.h" #include "object/level/parserline.h" #include "object/level/parserparam.h" #include "physics/physics.h" - #include "ui/interface.h" #include "ui/window.h" -#include -#include // Object's constructor. -CAutoRepair::CAutoRepair(CObject* object) : CAuto(object) +CAutoRepair::CAutoRepair(COldObject* object) : CAuto(object) { Init(); m_phase = ARP_WAIT; // paused until the first Init () diff --git a/src/object/auto/autorepair.h b/src/object/auto/autorepair.h index a82a4797..c945da26 100644 --- a/src/object/auto/autorepair.h +++ b/src/object/auto/autorepair.h @@ -25,6 +25,7 @@ #include "object/auto/auto.h" +class CObject; enum AutoRepairPhase { @@ -40,7 +41,7 @@ enum AutoRepairPhase class CAutoRepair : public CAuto { public: - CAutoRepair(CObject* object); + CAutoRepair(COldObject* object); ~CAutoRepair(); void DeleteObject(bool bAll=false); diff --git a/src/object/auto/autoresearch.cpp b/src/object/auto/autoresearch.cpp index 67460920..2af91f0d 100644 --- a/src/object/auto/autoresearch.cpp +++ b/src/object/auto/autoresearch.cpp @@ -25,6 +25,7 @@ #include "math/geometry.h" #include "object/robotmain.h" +#include "object/old_object.h" #include "object/level/parserline.h" #include "object/level/parserparam.h" #include "object/interface/powered_object.h" @@ -33,9 +34,6 @@ #include "ui/gauge.h" #include "ui/window.h" -#include -#include - const float SEARCH_TIME = 30.0f; // duration of a research @@ -43,7 +41,7 @@ const float SEARCH_TIME = 30.0f; // duration of a research // Object's constructor. -CAutoResearch::CAutoResearch(CObject* object) : CAuto(object) +CAutoResearch::CAutoResearch(COldObject* object) : CAuto(object) { for (int i = 0; i < 6; i++) { @@ -54,7 +52,6 @@ CAutoResearch::CAutoResearch(CObject* object) : CAuto(object) Init(); assert(m_object->Implements(ObjectInterfaceType::Powered)); - m_poweredObject = dynamic_cast(m_object); } // Object's destructor. @@ -111,7 +108,7 @@ Error CAutoResearch::StartAction(int param) return ERR_RESEARCH_ALREADY; } - CObject* power = m_poweredObject->GetPower(); + CObject* power = m_object->GetPower(); if (power == nullptr) { return ERR_RESEARCH_POWER; @@ -218,7 +215,7 @@ bool CAutoResearch::EventProcess(const Event &event) FireStopUpdate(m_progress, true); // flashes if ( m_progress < 1.0f ) { - power = m_poweredObject->GetPower(); + power = m_object->GetPower(); if ( power == 0 ) // more battery? { SetBusy(false); @@ -300,7 +297,7 @@ Error CAutoResearch::GetError() return ERR_BAT_VIRUS; } - CObject* power = m_poweredObject->GetPower(); + CObject* power = m_object->GetPower(); if ( power == 0 ) { return ERR_RESEARCH_POWER; diff --git a/src/object/auto/autoresearch.h b/src/object/auto/autoresearch.h index 6013a0c1..f916f539 100644 --- a/src/object/auto/autoresearch.h +++ b/src/object/auto/autoresearch.h @@ -25,8 +25,6 @@ #include "object/auto/auto.h" -class CPoweredObject; - enum AutoResearchPhase { ALP_WAIT = 1, @@ -38,7 +36,7 @@ enum AutoResearchPhase class CAutoResearch : public CAuto { public: - CAutoResearch(CObject* object); + CAutoResearch(COldObject* object); ~CAutoResearch(); void DeleteObject(bool bAll=false); @@ -61,7 +59,6 @@ protected: void FireStopUpdate(float progress, bool bLightOn); protected: - CPoweredObject* m_poweredObject; AutoResearchPhase m_phase; float m_progress; float m_speed; diff --git a/src/object/auto/autoroot.cpp b/src/object/auto/autoroot.cpp index 429f1c66..80920f2b 100644 --- a/src/object/auto/autoroot.cpp +++ b/src/object/auto/autoroot.cpp @@ -23,14 +23,15 @@ #include "graphics/engine/particle.h" #include "graphics/engine/terrain.h" +#include "object/old_object.h" + #include "math/geometry.h" -#include // Object's constructor. -CAutoRoot::CAutoRoot(CObject* object) : CAuto(object) +CAutoRoot::CAutoRoot(COldObject* object) : CAuto(object) { Init(); } diff --git a/src/object/auto/autoroot.h b/src/object/auto/autoroot.h index 88c85d5d..5c20ac67 100644 --- a/src/object/auto/autoroot.h +++ b/src/object/auto/autoroot.h @@ -29,7 +29,7 @@ class CAutoRoot : public CAuto { public: - CAutoRoot(CObject* object); + CAutoRoot(COldObject* object); ~CAutoRoot(); void DeleteObject(bool bAll=false); diff --git a/src/object/auto/autotower.cpp b/src/object/auto/autotower.cpp index 144cac04..bbd12260 100644 --- a/src/object/auto/autotower.cpp +++ b/src/object/auto/autotower.cpp @@ -23,20 +23,17 @@ #include "math/geometry.h" #include "object/object_manager.h" +#include "object/old_object.h" #include "object/level/parserline.h" #include "object/level/parserparam.h" #include "object/interface/powered_object.h" #include "physics/physics.h" - #include "ui/interface.h" #include "ui/window.h" #include "ui/gauge.h" -#include -#include - const float TOWER_SCOPE = 200.0f; // range of beam const float ENERGY_FIRE = 0.125f; // energy consumed by fire @@ -44,7 +41,7 @@ const float ENERGY_FIRE = 0.125f; // energy consumed by fire // Object's constructor. -CAutoTower::CAutoTower(CObject* object) : CAuto(object) +CAutoTower::CAutoTower(COldObject* object) : CAuto(object) { for (int i = 0; i < 4; i++) { @@ -57,7 +54,6 @@ CAutoTower::CAutoTower(CObject* object) : CAuto(object) m_lastUpdateTime = 0.0f; assert(m_object->Implements(ObjectInterfaceType::Powered)); - m_poweredObject = dynamic_cast(m_object); } // Object's destructor. @@ -134,7 +130,7 @@ bool CAutoTower::EventProcess(const Event &event) if ( m_progress < 1.0f ) { energy = 0.0f; - power = m_poweredObject->GetPower(); + power = m_object->GetPower(); if ( power != 0 ) { energy = power->GetEnergy()*power->GetCapacity(); @@ -174,7 +170,7 @@ bool CAutoTower::EventProcess(const Event &event) else { energy = 0.0f; - power = m_poweredObject->GetPower(); + power = m_object->GetPower(); if ( power != 0 ) { energy = power->GetEnergy()*power->GetCapacity(); @@ -227,7 +223,7 @@ bool CAutoTower::EventProcess(const Event &event) m_object->SetAngleY(1, m_angleYfinal); m_object->SetAngleZ(2, m_angleZfinal); - power = m_poweredObject->GetPower(); + power = m_object->GetPower(); if ( power != 0 ) { energy = power->GetEnergy(); @@ -321,7 +317,7 @@ Error CAutoTower::GetError() return ERR_BAT_VIRUS; } - CObject* power = m_poweredObject->GetPower(); + CObject* power = m_object->GetPower(); if ( power == nullptr ) { return ERR_TOWER_POWER; // no battery diff --git a/src/object/auto/autotower.h b/src/object/auto/autotower.h index 99f555cf..e91f4e49 100644 --- a/src/object/auto/autotower.h +++ b/src/object/auto/autotower.h @@ -25,7 +25,7 @@ #include "object/auto/auto.h" -class CPoweredObject; +class CObject; enum AutoTowerPhase { @@ -41,7 +41,7 @@ enum AutoTowerPhase class CAutoTower : public CAuto { public: - CAutoTower(CObject* object); + CAutoTower(COldObject* object); ~CAutoTower(); void DeleteObject(bool bAll=false); @@ -62,7 +62,6 @@ protected: void FireStopUpdate(float progress, bool bLightOn); protected: - CPoweredObject* m_poweredObject; AutoTowerPhase m_phase; float m_progress; float m_speed; diff --git a/src/object/auto/autovault.cpp b/src/object/auto/autovault.cpp index 2bdd53f7..159a6209 100644 --- a/src/object/auto/autovault.cpp +++ b/src/object/auto/autovault.cpp @@ -23,6 +23,7 @@ #include "math/geometry.h" #include "object/object_manager.h" +#include "object/old_object.h" #include "object/robotmain.h" #include "object/level/parserline.h" #include "object/level/parserparam.h" @@ -31,20 +32,15 @@ #include "ui/interface.h" #include "ui/window.h" -#include -#include - const float OPEN_DELAY = 8.0f; // duration of opening // Object's constructor. -CAutoVault::CAutoVault(CObject* object) : CAuto(object) +CAutoVault::CAutoVault(COldObject* object) : CAuto(object) { - int i; - - for ( i=0 ; i<4 ; i++ ) + for (int i = 0; i < 4; i++) { m_bKey[i] = false; m_keyParti[i] = -1; diff --git a/src/object/auto/autovault.h b/src/object/auto/autovault.h index 56683f31..eaa74667 100644 --- a/src/object/auto/autovault.h +++ b/src/object/auto/autovault.h @@ -25,6 +25,7 @@ #include "object/auto/auto.h" +class CObject; enum AutoVaultPhase { @@ -38,7 +39,7 @@ enum AutoVaultPhase class CAutoVault : public CAuto { public: - CAutoVault(CObject* object); + CAutoVault(COldObject* object); ~CAutoVault(); void DeleteObject(bool bAll=false);