Changeset View
Changeset View
Standalone View
Standalone View
source/simulation2/system/ComponentManager.cpp
Show First 20 Lines • Show All 487 Lines • ▼ Show 20 Lines | for (; iit != m_ComponentsByTypeId.rend(); ++iit) | ||||
std::map<entity_id_t, IComponent*>::iterator eit = iit->second.begin(); | std::map<entity_id_t, IComponent*>::iterator eit = iit->second.begin(); | ||||
for (; eit != iit->second.end(); ++eit) | for (; eit != iit->second.end(); ++eit) | ||||
{ | { | ||||
eit->second->Deinit(); | eit->second->Deinit(); | ||||
m_ComponentTypesById[iit->first].dealloc(eit->second); | m_ComponentTypesById[iit->first].dealloc(eit->second); | ||||
} | } | ||||
} | } | ||||
m_SystemComponents.reset(); | |||||
std::vector<std::unordered_map<entity_id_t, IComponent*> >::iterator ifcit = m_ComponentsByInterface.begin(); | std::vector<std::unordered_map<entity_id_t, IComponent*> >::iterator ifcit = m_ComponentsByInterface.begin(); | ||||
for (; ifcit != m_ComponentsByInterface.end(); ++ifcit) | for (; ifcit != m_ComponentsByInterface.end(); ++ifcit) | ||||
ifcit->clear(); | ifcit->clear(); | ||||
m_ComponentsByTypeId.clear(); | m_ComponentsByTypeId.clear(); | ||||
// Delete all SEntityComponentCaches | // Delete all SEntityComponentCaches | ||||
std::unordered_map<entity_id_t, SEntityComponentCache*>::iterator ccit = m_ComponentCaches.begin(); | std::unordered_map<entity_id_t, SEntityComponentCache*>::iterator ccit = m_ComponentCaches.begin(); | ||||
▲ Show 20 Lines • Show All 179 Lines • ▼ Show 20 Lines | bool CComponentManager::AddComponent(CEntityHandle ent, ComponentTypeId cid, const CParamNode& paramNode) | ||||
component->Init(paramNode); | component->Init(paramNode); | ||||
return true; | return true; | ||||
} | } | ||||
void CComponentManager::AddSystemComponents(bool skipScriptedComponents, bool skipAI) | void CComponentManager::AddSystemComponents(bool skipScriptedComponents, bool skipAI) | ||||
{ | { | ||||
CParamNode noParam; | CParamNode noParam; | ||||
AddComponent(m_SystemEntity, CID_TemplateManager, noParam); | m_SystemComponents.emplace(); | ||||
AddComponent(m_SystemEntity, CID_CinemaManager, noParam); | AddSystemComponent(std::get<CCmpTemplateManager>(*m_SystemComponents)); | ||||
AddComponent(m_SystemEntity, CID_CommandQueue, noParam); | AddSystemComponent(std::get<CCmpCinemaManager>(*m_SystemComponents)); | ||||
AddComponent(m_SystemEntity, CID_ObstructionManager, noParam); | AddSystemComponent(std::get<CCmpCommandQueue>(*m_SystemComponents)); | ||||
AddComponent(m_SystemEntity, CID_ParticleManager, noParam); | AddSystemComponent(std::get<CCmpObstructionManager>(*m_SystemComponents)); | ||||
AddComponent(m_SystemEntity, CID_Pathfinder, noParam); | AddSystemComponent(std::get<CCmpParticleManager>(*m_SystemComponents)); | ||||
AddComponent(m_SystemEntity, CID_ProjectileManager, noParam); | AddSystemComponent(std::get<CCmpPathfinder>(*m_SystemComponents)); | ||||
AddComponent(m_SystemEntity, CID_RangeManager, noParam); | AddSystemComponent(std::get<CCmpProjectileManager>(*m_SystemComponents)); | ||||
AddComponent(m_SystemEntity, CID_SoundManager, noParam); | AddSystemComponent(std::get<CCmpRangeManager>(*m_SystemComponents)); | ||||
AddComponent(m_SystemEntity, CID_Terrain, noParam); | AddSystemComponent(std::get<CCmpSoundManager>(*m_SystemComponents)); | ||||
AddComponent(m_SystemEntity, CID_TerritoryManager, noParam); | AddSystemComponent(std::get<CCmpTerrain>(*m_SystemComponents)); | ||||
AddComponent(m_SystemEntity, CID_UnitMotionManager, noParam); | AddSystemComponent(std::get<CCmpTerritoryManager>(*m_SystemComponents)); | ||||
AddComponent(m_SystemEntity, CID_UnitRenderer, noParam); | AddSystemComponent(std::get<CCmpUnitMotionManager>(*m_SystemComponents)); | ||||
AddComponent(m_SystemEntity, CID_WaterManager, noParam); | AddSystemComponent(std::get<CCmpUnitRenderer>(*m_SystemComponents)); | ||||
AddSystemComponent(std::get<CCmpWaterManager>(*m_SystemComponents)); | |||||
// Add scripted system components: | // Add scripted system components: | ||||
if (!skipScriptedComponents) | if (!skipScriptedComponents) | ||||
{ | { | ||||
for (uint32_t i = 0; i < m_ScriptedSystemComponents.size(); ++i) | for (uint32_t i = 0; i < m_ScriptedSystemComponents.size(); ++i) | ||||
AddComponent(m_SystemEntity, m_ScriptedSystemComponents[i], noParam); | AddComponent(m_SystemEntity, m_ScriptedSystemComponents[i], noParam); | ||||
if (!skipAI) | if (!skipAI) | ||||
AddComponent(m_SystemEntity, CID_AIManager, noParam); | AddComponent(m_SystemEntity, CID_AIManager, noParam); | ||||
▲ Show 20 Lines • Show All 450 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator