void Game::Shutdown()
{
	m_webManager->FreeInstance();

	GameState::ReleaseStatesStack();

	m_postProcessing->Remove();
	m_postProcessing->FreeInstance();

	m_shaderManager->Remove();
	m_shaderManager->FreeInstance();

	m_scriptManager->Remove();
	m_scriptManager->FreeInstance();

	m_soundManager->Remove();
	m_soundManager->FreeInstance();

	m_config->Remove();
	m_config->FreeInstance();

	m_accelerometerManager->Stop();
	m_accelerometerManager->FreeInstance();

	m_touchManager->Remove();
	m_touchManager->FreeInstance();

	m_menuManager->Remove();
	m_menuManager->FreeInstance();

	m_font->Remove();
	m_font->FreeInstance();

	LocaliseTerminate();

	WorldLoader::ClearAndFree();

	IwResManagerTerminate();

	IwGraphicsTerminate();
	IwGxTerminate();
}
Example #2
0
int main() {

	IwGxInit();
	IwGraphicsInit();
	IwAnimInit();
	Iw2DInit();

	IwTrace(GHOST_HUNTER, ("Ghost Realm booting..."));
	IwTrace(GHOST_HUNTER, ("Audio channels: %d", s3eAudioGetInt(S3E_AUDIO_NUM_CHANNELS)));

	// Set screen clear colour
    IwGxSetColClear(0x0, 0x0, 0x0, 0xff);

	Splash* splash = new Splash();
	s3eDeviceYield(20);
	{ // Init game
		CameraViewPreInit();

		MapControllerInit();
		MapModelInit();
		MapViewInit();

		CameraControllerInit();
		CameraModelInit();
		CameraViewInit();
	}
	delete splash;

	getGameState()->setGameMode(MAP_MODE);

    while (1) {
        s3eDeviceYield(0);

        int start = clock();

		Audio::GetInstance().Update();

		if (getGameState()->getGameMode() == CAMERA_MODE) {
			CameraControllerUpdate();
			CameraModelUpdate();
			CameraViewUpdate();
		} else if (getGameState()->getGameMode() == MAP_MODE) {
			MapControllerUpdate();
			MapModelUpdate();
			MapViewUpdate();
		}
		
		// Cap FPS
		int yield;
        do {
            yield = FRAME_DURATION - (clock() - start);
            if (yield > 0) {
				s3eDeviceYield(yield);
			}
        } while (yield > 0);
    }

	CameraControllerTerm();
	CameraModelTerm();
    CameraViewTerm();

	MapControllerTerm();
	MapModelTerm();
	MapViewTerm();

	delete getGameState();

	Iw2DTerminate();
	IwAnimTerminate();
	IwGraphicsTerminate();
    IwGxTerminate();

    return 0;
}
Example #3
0
FrameworkApplication::~FrameworkApplication (void) {
	//delete pModel;
	IwGraphicsTerminate();
	IwGxTerminate();
	IwTrace(FUNCTIONS, ("~FrameworkApplication()"));
}