while(device->run()) { switch (gameState) { case 0: screenIntro->run(); break; //Intro movie. case 10: screenTitle->run(); break; //Title menu. case 20: /*setUpPause();*/ break; //Pause menu. case 30: /*setUpMovie();*/ break; //Skippable movie. case 40: screenSonic->run(); break; //Normal stage. 40 case 50: /*setUpSpec1();*/ break; //Special stage 1. case 60: /*setUpSpec2();*/ break; //Special stage 2. case 70: /*setUpBossS();*/ break; //Boss stage. case 80: /*setUpFBoss();*/ break; //Final Boss stage. case 90: screenEndng->run(); break; //Ending movies. case 99: screenCrdts->run(); break; //Credits. } if (driver->getReferenceCount()) { driver->beginScene(true, true, SColor(255,128,0,0)); smgr->drawAll(); driver->endScene(); } else { return 0; } } device->drop(); return 0; }