// Pushes results into m_workingData void DoGetPerceived( const TGameObjects& data, const IGameObject* pPerceiver, const AUVec3f& center, float radius ) const { size_t count = data.size(); for (size_t j=0; j<count; ++j) { IGameObject* pObj = data[j]; float dist = (pObj->GetEntity()->GetPosition() - center).Magnitude(); if ( pObj->GetEntityId() != pPerceiver->GetEntityId() && dist < radius ) { m_workingData.push_back( pObj ); } } }
void DoDestroyGameObject( ObjectId id ) { IObjectFactorySystem* pFactory = PerModuleInterface::g_pSystemTable->pObjectFactorySystem; IObject* pObj = pFactory->GetObject(id); if (pObj) { IGameObject* pGameObject = 0; IObjectUtils::GetObject( &pGameObject, pObj->GetObjectId() ); // Notify any listeners that object is about to be destroyed for (size_t i=0; i<m_Listeners.size(); ++i) { m_Listeners[i]->OnGameObjectAboutToDestroy(pGameObject); } m_GameObjects[pGameObject->GetGameObjectType()].erase(pGameObject); IObjectUtils::DestroyObjectAndEntity( pGameObject->GetEntityId() ); } }
void DestroyGameObjects() { for (size_t i=0; i<m_GameObjects.size(); ++i) { TGameObjects& objects = m_GameObjects[i]; TGameObjects::iterator it = objects.begin(); TGameObjects::iterator itEnd = objects.end(); while (it != itEnd) { IGameObject* pGameObject = *it; if (pGameObject) { IObjectUtils::DestroyObjectAndEntity( pGameObject->GetEntityId() ); } ++it; } objects.clear(); } }
void DestroyGameObjects() { IObjectFactorySystem* pFactory = PerModuleInterface::GetInstance()->GetSystemTable()->pObjectFactorySystem; for (size_t i=0; i<m_GameObjects.size(); ++i) { TGameObjects& objects = m_GameObjects[i]; TGameObjects::iterator it = objects.begin(); TGameObjects::iterator itEnd = objects.end(); while (it != itEnd) { IGameObject* pGameObject = *it; if (pGameObject) { IObjectUtils::DestroyObjectAndEntity( pGameObject->GetEntityId() ); } ++it; } objects.clear(); } }