Beispiel #1
0
//-------------------------------------------------------------------------------------
TUMBU::~TUMBU(void){
	Ogre::LogManager::getSingletonPtr()->logMessage("Finishing Game");
	instance = NULL;

	removeAllKeyListeners();
	removeAllMouseListeners();

	Ogre::LogManager::getSingletonPtr()->logMessage("\tDeleting CutScene...");
	if( cutScene != NULL ){
		mRoot->removeFrameListener( cutScene );
		delete cutScene;
	}
	Ogre::LogManager::getSingletonPtr()->logMessage("\tDeleting SoundManager...");
	if( soundManager != NULL ){
		if( startScreenBackgroundSound != NULL ){
			startScreenBackgroundSound->stop();
			soundManager->destroySound( startScreenBackgroundSound );
		}
		mRoot->removeFrameListener( soundManager );
		delete soundManager;
	}
	Ogre::LogManager::getSingletonPtr()->logMessage("\tDeleting Clock...");
	if( clock != NULL ){
		mRoot->removeFrameListener( clock );
		delete clock;
	}
	Ogre::LogManager::getSingletonPtr()->logMessage("\tDeleting AI...");
	if( ai != NULL ){
		mRoot->removeFrameListener( ai );
		delete ai;
	}
	if ( activeScene != NULL ){
		Ogre::LogManager::getSingletonPtr()->logMessage("\tDeleting Active Scene...");
		activeScene->removeAndDestroyAllChildren();
		mSceneMgr->destroySceneNode( activeScene );
	}
	Ogre::LogManager::getSingletonPtr()->logMessage("\tDeleting Gui...");
	if ( gui != NULL ){
		mRoot->removeFrameListener( gui );
		removeKeyListener( gui );
		removeMouseListener( gui );
		removeJoystickListener( gui );
		delete gui;
	}

	Ogre::LogManager::getSingletonPtr()->logMessage("\tCleaning Scene...");
	mSceneMgr->destroyAllEntities();
	mSceneMgr->destroyAllAnimations();
	mSceneMgr->destroyAllAnimationStates();
	mSceneMgr->destroyAllLights();
	mSceneMgr->destroyAllManualObjects();
	mSceneMgr->destroyAllMovableObjects();
	mSceneMgr->destroyAllParticleSystems();
	mSceneMgr->destroyAllStaticGeometry();
}
// Remove all listener
void OisFramework::removeAllListeners()
{
	removeAllKeyListeners();
	removeAllMouseListeners();
	removeAllJoyStickListeners();
}