From 62fdfc9f92128a2c79db2c810baa766ef92eaefc Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Mon, 13 Jul 2015 22:40:55 +0200 Subject: [PATCH] Refactor ResetCap -> AnimateOnReset --- src/object/object.cpp | 12 ++++++++++++ src/object/object.h | 6 ++++++ src/object/old_object.cpp | 18 +++--------------- src/object/old_object.h | 9 --------- src/object/old_object_interface.cpp | 10 ---------- src/object/old_object_interface.h | 9 --------- src/object/robotmain.cpp | 10 +++++----- 7 files changed, 26 insertions(+), 48 deletions(-) diff --git a/src/object/object.cpp b/src/object/object.cpp index a03c5f7d..094e410a 100644 --- a/src/object/object.cpp +++ b/src/object/object.cpp @@ -9,6 +9,7 @@ CObject::CObject(int id, ObjectType type) , m_position(0.0f, 0.0f, 0.0f) , m_rotation(0.0f, 0.0f, 0.0f) , m_scale(1.0f, 1.0f, 1.0f) + , m_animateOnReset(false) { m_implementedInterfaces.fill(false); } @@ -92,3 +93,14 @@ Math::Sphere CObject::GetCameraCollisionSphere() return transformedSphere; } +bool CObject::GetAnimateOnReset() +{ + return m_animateOnReset; +} + +void CObject::SetAnimateOnReset(bool animateOnReset) +{ + m_animateOnReset = animateOnReset; +} + + diff --git a/src/object/object.h b/src/object/object.h index ce11c861..94167b8d 100644 --- a/src/object/object.h +++ b/src/object/object.h @@ -118,6 +118,11 @@ public: //! Sets the transparency of object virtual void SetTransparency(float value) = 0; + //! Sets flag controlling animation effect on level reset + void SetAnimateOnReset(bool animateOnReset); + //! Returns flag controlling animation effect on level reset + bool GetAnimateOnReset(); + protected: //! Transform crash sphere by object's world matrix virtual void TransformCrashSphere(Math::Sphere& crashSphere) = 0; @@ -133,4 +138,5 @@ protected: Math::Vector m_scale; std::vector m_crashSpheres; //!< crash spheres Math::Sphere m_cameraCollisionSphere; + bool m_animateOnReset; }; diff --git a/src/object/old_object.cpp b/src/object/old_object.cpp index 0b764b7b..fc96f825 100644 --- a/src/object/old_object.cpp +++ b/src/object/old_object.cpp @@ -289,8 +289,6 @@ COldObject::COldObject(int id) m_character.wheelLeft = 1.0f; m_character.wheelRight = 1.0f; - m_resetCap = RESET_NONE; - m_cameraType = Gfx::CAM_TYPE_BACK; m_cameraDist = 50.0f; m_bCameraLock = false; @@ -940,9 +938,9 @@ void COldObject::Write(CLevelParserLine* line) if ( GetGunGoalH() != 0.0f ) line->AddParam("aimH", CLevelParserParamUPtr{new CLevelParserParam(GetGunGoalH())}); - if ( GetResetCap() != 0 ) + if ( GetAnimateOnReset() != 0 ) { - line->AddParam("resetCap", CLevelParserParamUPtr{new CLevelParserParam(static_cast(GetResetCap()))}); + line->AddParam("resetCap", CLevelParserParamUPtr{new CLevelParserParam(GetAnimateOnReset())}); } if ( m_bVirusMode ) @@ -1012,7 +1010,7 @@ void COldObject::Read(CLevelParserLine* line) SetGunGoalV(line->GetParam("aimV")->AsFloat(0.0f)); SetGunGoalH(line->GetParam("aimH")->AsFloat(0.0f)); - SetResetCap(static_cast(line->GetParam("resetCap")->AsInt(0))); + SetAnimateOnReset(line->GetParam("resetCap")->AsBool(false)); m_bBurn = line->GetParam("burnMode")->AsBool(false); m_bVirusMode = line->GetParam("virusMode")->AsBool(false); m_virusTime = line->GetParam("virusTime")->AsFloat(0.0f); @@ -1456,16 +1454,6 @@ bool COldObject::GetManual() return m_bManual; } -void COldObject::SetResetCap(ResetCap cap) -{ - m_resetCap = cap; -} - -ResetCap COldObject::GetResetCap() -{ - return m_resetCap; -} - // Management of the particle master. void COldObject::SetMasterParticle(int part, int parti) diff --git a/src/object/old_object.h b/src/object/old_object.h index 39b6550c..a8528fe3 100644 --- a/src/object/old_object.h +++ b/src/object/old_object.h @@ -150,9 +150,6 @@ public: void SetManual(bool bManual); bool GetManual(); - void SetResetCap(ResetCap cap) override; - ResetCap GetResetCap() override; - void SetMasterParticle(int part, int parti) override; void SetPower(CObject* power) override; @@ -393,12 +390,6 @@ protected: int m_partiSel[4]; - ResetCap m_resetCap; - bool m_bResetBusy; - Math::Vector m_resetPosition; - Math::Vector m_resetAngle; - Program* m_resetRun; - float m_infoReturn; std::vector m_cmdLine; diff --git a/src/object/old_object_interface.cpp b/src/object/old_object_interface.cpp index 3b747b11..322a53ed 100644 --- a/src/object/old_object_interface.cpp +++ b/src/object/old_object_interface.cpp @@ -187,16 +187,6 @@ bool COldObjectInterface::GetTrainer() throw std::logic_error("GetTrainer: not implemented!"); } -void COldObjectInterface::SetResetCap(ResetCap cap) -{ - throw std::logic_error("SetResetCap: not implemented!"); -} - -ResetCap COldObjectInterface::GetResetCap() -{ - throw std::logic_error("GetResetCap: not implemented!"); -} - void COldObjectInterface::SetMasterParticle(int part, int parti) { throw std::logic_error("SetMasterParticle: not implemented!"); diff --git a/src/object/old_object_interface.h b/src/object/old_object_interface.h index d0bb205a..be6a8c3f 100644 --- a/src/object/old_object_interface.h +++ b/src/object/old_object_interface.h @@ -64,12 +64,6 @@ enum class ExplosionType Water = 3, }; -enum ResetCap -{ - RESET_NONE = 0, - RESET_MOVE = 1 -}; - class COldObjectInterface { public: @@ -118,9 +112,6 @@ public: virtual void SetTrainer(bool bEnable); virtual bool GetTrainer(); - virtual ResetCap GetResetCap(); - virtual void SetResetCap(ResetCap resetCap); - virtual void SetMasterParticle(int part, int parti); virtual float GetCmdLine(unsigned int rank); diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index e5499a3d..4f8a2e4c 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -3680,7 +3680,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) ->SetSoluceName(const_cast(line->GetParam("soluce")->AsPath("ai").c_str())); if (line->GetParam("reset")->AsBool(false)) - oldObj->SetResetCap(RESET_MOVE); + oldObj->SetAnimateOnReset(true); } rankObj ++; @@ -5325,10 +5325,10 @@ void CRobotMain::ResetCreate() for (CObject* obj : m_objMan->GetAllObjects()) { - ResetCap cap = obj->GetResetCap(); - if (cap == RESET_NONE) continue; - - m_engine->GetPyroManager()->Create(Gfx::PT_RESET, obj); + if (obj->GetAnimateOnReset()) + { + m_engine->GetPyroManager()->Create(Gfx::PT_RESET, obj); + } } } catch (const CLevelParserException& e)