Example #1
0
/* Remove all (entities and childrens scene nodes) */
void Util::removeAllFromNode(Ogre::SceneNode *node)
{
	ASSERT(node);

	removeAllEntities(node);
	if(node->getParentSceneNode()){
		node->getParentSceneNode()->removeAndDestroyChild(node->getName());
	}

}
	void GameEntitySystem::removeScene(int sceneIndex)
	{
		if(sceneIndex < 0 || sceneIndex > sceneList.size() - 1 || sceneList.size() < 2) return;

		int currentSceneIndex = getCurrentSceneIndex();

		if(currentSceneIndex == -1)
		{
			setCurrentScene(0);

			currentSceneIndex = 0;
		}

		int counter = 0;

		GameSceneList::iterator listIterator;

		for(listIterator = sceneList.begin(); listIterator != sceneList.end(); ++listIterator)
		{
			if(counter == sceneIndex)
			{
				entityList = &(*listIterator).entityList;

				removeAllEntities();

				sceneList.erase(listIterator);
				
				break;
			}

			counter++;
		}

		if(sceneIndex < currentSceneIndex)
		{
			setCurrentScene(currentSceneIndex - 1);
		}
		else
		{
			setCurrentScene(currentSceneIndex);
		}
	}
Example #3
0
/* Removes all the entities of a sceneNode (recursively) */
void Util::removeAllEntities(Ogre::SceneNode *node)
{
	ASSERT(node);

	// Destroy all the attached objects
	Ogre::SceneNode::ObjectIterator itObject =
			node->getAttachedObjectIterator();

	while (itObject.hasMoreElements())
	{
		Ogre::MovableObject* pObject =
				static_cast<Ogre::MovableObject*> (itObject.getNext());
		node->getCreator()->destroyMovableObject(pObject);
	}

	// Recurse to child SceneNodes
	Ogre::SceneNode::ChildNodeIterator itChild = node->getChildIterator();

	while (itChild.hasMoreElements())
	{
		Ogre::SceneNode* pChildNode = static_cast<Ogre::SceneNode*> (itChild.getNext());
		removeAllEntities(pChildNode);
	}
}
GEOL_Container::~GEOL_Container() {
	removeAllEntities();
	removeAllContainers();
}
Example #5
0
void EntityManager::reset()
{
  removeAllEntities();
  lowest_unassigned_eid_ = 1;
}
Example #6
0
EntityManager::~EntityManager()
{
  removeAllEntities();
}
Example #7
0
	World::~World() {
		removeAllEntities();
		GraphicsManager::GetInstance()->removeScene(_scene);
	}