From 7578f3c118b4db74a070e7a7d6f9d670e878efd3 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 22 Mar 2015 14:50:54 +0100 Subject: [PATCH] Made bf55691e444ec6b6cda8ff7d69d418fd50befaa6 work with new CObjectManager --- src/object/task/taskdeletemark.cpp | 55 ++++++++++-------------------- 1 file changed, 18 insertions(+), 37 deletions(-) diff --git a/src/object/task/taskdeletemark.cpp b/src/object/task/taskdeletemark.cpp index 733555f2..98f062b6 100644 --- a/src/object/task/taskdeletemark.cpp +++ b/src/object/task/taskdeletemark.cpp @@ -20,17 +20,17 @@ #include "object/task/taskdeletemark.h" -#include "common/iman.h" #include "graphics/engine/particle.h" #include "graphics/engine/terrain.h" +#include "object/objman.h" +#include "object/robotmain.h" + #include "math/geometry.h" #include "physics/physics.h" -#include "object/robotmain.h" - CTaskDeleteMark::CTaskDeleteMark(CObject* object) : CTask(object) { @@ -41,12 +41,10 @@ CTaskDeleteMark::~CTaskDeleteMark() { } - // Management of an event. - bool CTaskDeleteMark::EventProcess(const Event &event) { - + return true; } Error CTaskDeleteMark::Start() @@ -59,17 +57,15 @@ Error CTaskDeleteMark::Start() } // Indicates whether the action is finished. - Error CTaskDeleteMark::IsEnded() { if ( m_bExecuted ) - return ERR_STOP; + return ERR_STOP; else - return ERR_CONTINUE; + return ERR_CONTINUE; } // Suddenly ends the current action. - bool CTaskDeleteMark::Abort() { return true; @@ -77,34 +73,19 @@ bool CTaskDeleteMark::Abort() void CTaskDeleteMark::DeleteMark() { - ObjectType type; - CObject* pObj; - Math::Vector oPos=m_object->GetPosition(0); - int i; + CObject* pObj = CObjectManager::GetInstancePointer()->FindNearest(m_object, { + OBJECT_MARKPOWER, + OBJECT_MARKSTONE, + OBJECT_MARKURANIUM, + OBJECT_MARKKEYa, + OBJECT_MARKKEYb, + OBJECT_MARKKEYc, + OBJECT_MARKKEYd + }, 8.0f/g_unit); - CInstanceManager* iMan = CInstanceManager::GetInstancePointer(); - - for ( i=0 ; i<1000000 ; i++ ) + if(pObj != nullptr) { - pObj = static_cast(iMan->SearchInstance(CLASS_OBJECT, i)); - if ( pObj == 0 ) break; - - type = pObj->GetType(); - - if ( type == OBJECT_MARKPOWER || - type == OBJECT_MARKSTONE || - type == OBJECT_MARKURANIUM || - type == OBJECT_MARKKEYa || - type == OBJECT_MARKKEYb || - type == OBJECT_MARKKEYc || - type == OBJECT_MARKKEYd ) - { - if ( Math::Distance(oPos, pObj->GetPosition(0)) < 8.0f ) - { - pObj->DeleteObject(); // removes the mark - delete pObj; - break; - } - } + pObj->DeleteObject(); // removes the mark + delete pObj; } } \ No newline at end of file