void DestroyAllTrees() { IObjectFactorySystem* pFactory = PerModuleInterface::GetInstance()->GetSystemTable()->pObjectFactorySystem; TTreeMap::iterator it = m_trees.begin(); TTreeMap::iterator itEnd = m_trees.end(); while (it != itEnd) { IObject* pObj = pFactory->GetObject(it->second); delete pObj; ++it; } }
void DestroyBlackboardIndividualCommon( ObjectId id ) { TIndividualMap::iterator it = m_BlackboardIndividualCommon.find(id); if (it != m_BlackboardIndividualCommon.end()) { IObjectFactorySystem* pFactory = PerModuleInterface::g_pSystemTable->pObjectFactorySystem; IObject* pObj = pFactory->GetObject(it->second); delete pObj; m_BlackboardIndividualCommon.erase(it); } }
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 DestroyAllBlackboards() { IObjectFactorySystem* pFactory = PerModuleInterface::g_pSystemTable->pObjectFactorySystem; IObject* pObj = 0; delete m_pBlackboardGlobal; m_pBlackboardGlobal = 0; for (int i=0; i<EGT_COUNT; ++i) { pObj = pFactory->GetObject(m_BlackboardTeam[i]); delete pObj; m_BlackboardTeam[i] = ObjectId(); } for (int i=0; i<EGO_COUNT; ++i) { pObj = pFactory->GetObject(m_BlackboardGroup[i]); delete pObj; m_BlackboardGroup[i] = ObjectId(); } TIndividualMap::iterator it = m_BlackboardIndividual.begin(); TIndividualMap::iterator itEnd = m_BlackboardIndividual.end(); while (it != itEnd) { pObj = pFactory->GetObject(it->second); delete pObj; ++it; } m_BlackboardIndividual.clear(); it = m_BlackboardIndividualCommon.begin(); itEnd = m_BlackboardIndividualCommon.end(); while (it != itEnd) { pObj = pFactory->GetObject(it->second); delete pObj; ++it; } m_BlackboardIndividualCommon.clear(); }