SystemManager::~SystemManager() { RemoveAllComponents(); CheckRemovableComponents(); EntityComponentTable::iterator itTemplate = m_vTemplateTable.begin(); for (; itTemplate != m_vTemplateTable.end(); ++itTemplate) { MGDVector<Component*>::iterator itComponent = (*itTemplate).second.begin(); for (; itComponent != (*itTemplate).second.end(); ++itComponent) { delete((*itComponent)); } } m_vTemplateTable.clear(); MGDVector<SystemTable>::iterator it = m_vPerPhaseSystemArray.begin(); for(; it != m_vPerPhaseSystemArray.end(); ++it) { SystemTable::iterator itSystem = (*it).begin(); for(; itSystem != (*it).end(); ++itSystem) { delete((*itSystem).second); } } }
Node::~Node() { RemoveAllChildren(); RemoveAllComponents(); // Remove from the scene if (scene_) scene_->NodeRemoved(this); }
//------------------------------------------------------------------ //------------------------------------------------------------------ void Entity::Reset() { RemoveAllComponents(); RemoveAllChildren(); RemoveFromParent(); m_name = std::string(); m_transform.Reset(); }
bool Node::LoadXML(const XMLElement& source, SceneResolver& resolver, bool readChildren, bool rewriteIDs, CreateMode mode) { // Remove all children and components first in case this is not a fresh load RemoveAllChildren(); RemoveAllComponents(); if (!Serializable::LoadXML(source)) return false; XMLElement compElem = source.GetChild("component"); while (compElem) { String typeName = compElem.GetAttribute("type"); unsigned compID = compElem.GetInt("id"); Component* newComponent = CreateComponent(ShortStringHash(typeName), (mode == REPLICATED && compID < FIRST_LOCAL_ID) ? REPLICATED : LOCAL, rewriteIDs ? 0 : compID); if (newComponent) { resolver.AddComponent(compID, newComponent); if (!newComponent->LoadXML(compElem)) return false; } compElem = compElem.GetNext("component"); } if (!readChildren) return true; XMLElement childElem = source.GetChild("node"); while (childElem) { unsigned nodeID = childElem.GetInt("id"); Node* newNode = CreateChild(rewriteIDs ? 0 : nodeID, (mode == REPLICATED && nodeID < FIRST_LOCAL_ID) ? REPLICATED : LOCAL); resolver.AddNode(nodeID, newNode); if (!newNode->LoadXML(childElem, resolver, readChildren, rewriteIDs, mode)) return false; childElem = childElem.GetNext("node"); } return true; }
bool Node::Load(Deserializer& source, SceneResolver& resolver, bool readChildren, bool rewriteIDs, CreateMode mode) { // Remove all children and components first in case this is not a fresh load RemoveAllChildren(); RemoveAllComponents(); // ID has been read at the parent level if (!Serializable::Load(source)) return false; unsigned numComponents = source.ReadVLE(); for (unsigned i = 0; i < numComponents; ++i) { VectorBuffer compBuffer(source, source.ReadVLE()); ShortStringHash compType = compBuffer.ReadShortStringHash(); unsigned compID = compBuffer.ReadUInt(); Component* newComponent = CreateComponent(compType, (mode == REPLICATED && compID < FIRST_LOCAL_ID) ? REPLICATED : LOCAL, rewriteIDs ? 0 : compID); if (newComponent) { resolver.AddComponent(compID, newComponent); if (!newComponent->Load(compBuffer)) return false; } } if (!readChildren) return true; unsigned numChildren = source.ReadVLE(); for (unsigned i = 0; i < numChildren; ++i) { unsigned nodeID = source.ReadUInt(); Node* newNode = CreateChild(rewriteIDs ? 0 : nodeID, (mode == REPLICATED && nodeID < FIRST_LOCAL_ID) ? REPLICATED : LOCAL); resolver.AddNode(nodeID, newNode); if (!newNode->Load(source, resolver, readChildren, rewriteIDs, mode)) return false; } return true; }
void Camera::Release() { RemoveAllComponents(); }
//------------------------------------------------------------- //------------------------------------------------------------- Entity::~Entity() { RemoveAllComponents(); RemoveAllChildren(); }
Actor::~Actor() { mGame.GetTime().ClearAllTimers(this); RemoveAllChildren(); RemoveAllComponents(); }
void Prop::Release() { RemoveAllComponents(); }
Entity::~Entity() { RemoveAllComponents(); }