void EntityManager::FlushChangeFamily() { Map<Entity*, EntityFamilyType>::iterator it = newFamilyEntities.begin(); Map<Entity*, EntityFamilyType>::iterator itEnd = newFamilyEntities.end(); for(; it != itEnd; ++it) { Entity * entity = it->first; ProcessAddRemoveComponent(entity, entity->GetFamily(), it->second); entity->changeState = 0; } newFamilyEntities.clear(); }
void EntityManager::FlushDestroy() { int32 size = deleteEntities.size(); for(int32 i = 0; i < size; ++i) { Entity * entity = deleteEntities[i]; Map<uint64, EntityFamily*>::iterator it = families.find(entity->GetFamily().GetBit()); if(it != families.end()) { EntityFamily * family = it->second; family->DeleteEntity(entity); RemoveFromGlobalList(entity); delete(entity); } else { //entity with no family } } deleteEntities.clear(); }