Common::String BuriedEngine::getFilePath(uint32 stringID) { Common::String path = getString(stringID); Common::String output; if (path.empty()) return output; uint i = 0; // The non-demo paths have CD info followed by a backslash. // We ignore this. // In the demo, we remove the "BITDATA" prefix because the // binaries are in the same directory. if (isDemo()) i += 8; else i += 2; for (; i < path.size(); i++) { if (path[i] == '\\') output += '/'; else output += path[i]; } return output; }
Common::SeekableReadStream *BuriedEngine::getBitmapStream(uint32 bitmapID) { // The demo's bitmaps are in the main EXE if (isDemo()) return _mainEXE->getBitmapStream(bitmapID); // The rest in the database library return _library->getBitmapStream(bitmapID); }
// TODO: which error should we return when some game files are missing/corrupted? Common::Error LastExpressEngine::run() { // Initialize the graphics const Graphics::PixelFormat dataPixelFormat(2, 5, 5, 5, 0, 10, 5, 0, 0); initGraphics(640, 480, true, &dataPixelFormat); // We do not support color conversion if (_system->getScreenFormat() != dataPixelFormat) return Common::kUnsupportedColorMode; // Create debugger. It requires GFX to be initialized _debugger = new Debugger(this); // Start the resource and graphics managers _resMan = new ResourceManager(isDemo()); if (!_resMan->loadArchive(kArchiveCd1)) return Common::kNoGameDataFoundError; _graphicsMan = new GraphicsManager(); // Load the cursor data _cursor = _resMan->loadCursor(); if (!_cursor) return Common::kNoGameDataFoundError; // Load the font data _font = _resMan->loadFont(); if (!_font) return Common::kNoGameDataFoundError; // Start scene manager _sceneMan = new SceneManager(this); _sceneMan->loadSceneDataFile(kArchiveCd1); // Game logic _logic = new Logic(this); // Start sound manager and setup timer _soundMan = new SoundManager(this); _timer->installTimerProc(&soundTimer, 17000, this); // Menu _menu = new Menu(this); _menu->show(false, kSavegameTypeIndex, 0); while (!shouldQuit()) { _soundMan->updateQueue(); _soundMan->updateSubtitles(); if (handleEvents()) continue; } return Common::kNoError; }
void Resource::checkJASVersion() { ResourceEntry *re = resourceEntry("QUEEN.JAS"); assert(re != NULL); uint32 offset = re->offset; if (isDemo()) offset += JAS_VERSION_OFFSET_DEMO; else if (isInterview()) offset += JAS_VERSION_OFFSET_INTV; else offset += JAS_VERSION_OFFSET_PC; _resourceFile->seek(offset); char versionStr[6]; _resourceFile->read(versionStr, 6); if (strcmp(_versionString, versionStr)) error("Verifying game version failed! (expected: '%s', found: '%s')", _versionString, versionStr); }
void SherlockEngine::initialize() { DebugMan.addDebugChannel(kDebugLevelScript, "scripts", "Script debug level"); DebugMan.addDebugChannel(kDebugLevelAdLibDriver, "AdLib", "AdLib driver debugging"); DebugMan.addDebugChannel(kDebugLevelMT32Driver, "MT32", "MT32 driver debugging"); DebugMan.addDebugChannel(kDebugLevelMusic, "Music", "Music debugging"); Fonts::setVm(this); ImageFile::setVm(this); ImageFile3DO::setVm(this); BaseObject::setVm(this); if (isDemo()) { Common::File f; // The interactive demo doesn't have an intro thus doesn't include TITLE.SND // At the opposite, the non-interactive demo is only the intro. if (f.exists("TITLE.SND")) _interactiveFl = false; } _res = new Resources(this); _animation = new Animation(this); _debugger = Debugger::init(this); _events = new Events(this); _fixedText = FixedText::init(this); _inventory = Inventory::init(this); _map = Map::init(this); _music = new Music(this, _mixer); _journal = Journal::init(this); _people = People::init(this); _saves = SaveManager::init(this, _targetName); _scene = Scene::init(this); _screen = Screen::init(this); _sound = new Sound(this, _mixer); _talk = Talk::init(this); _ui = UserInterface::init(this); // Load game settings loadConfig(); if (getPlatform() == Common::kPlatform3DO) { // Disable portraits on 3DO // 3DO does not include portrait data _people->_portraitsOn = false; } }
void SkyEngine::loadFixedItems() { _itemList[49] = _skyDisk->loadFile(49); _itemList[50] = _skyDisk->loadFile(50); _itemList[73] = _skyDisk->loadFile(73); _itemList[262] = _skyDisk->loadFile(262); if (!isDemo()) { _itemList[36] = _skyDisk->loadFile(36); _itemList[263] = _skyDisk->loadFile(263); _itemList[264] = _skyDisk->loadFile(264); _itemList[265] = _skyDisk->loadFile(265); _itemList[266] = _skyDisk->loadFile(266); _itemList[267] = _skyDisk->loadFile(267); _itemList[269] = _skyDisk->loadFile(269); _itemList[271] = _skyDisk->loadFile(271); _itemList[272] = _skyDisk->loadFile(272); } }
Common::Error NeverhoodEngine::run() { initGraphics(640, 480, true); const Common::FSNode gameDataDir(ConfMan.get("path")); SearchMan.addSubDirectoryMatching(gameDataDir, "data"); _isSaveAllowed = false; _mouseX = 0; _mouseY = 0; _gameState.sceneNum = 0; _gameState.which = 0; _staticData = new StaticData(); _staticData->load("neverhood.dat"); _gameVars = new GameVars(); _screen = new Screen(this); _res = new ResourceMan(); _console = new Console(this); if (isDemo()) { _res->addArchive("a.blb"); _res->addArchive("nevdemo.blb"); } else { _res->addArchive("a.blb"); _res->addArchive("c.blb"); _res->addArchive("hd.blb"); _res->addArchive("i.blb"); _res->addArchive("m.blb"); _res->addArchive("s.blb"); _res->addArchive("t.blb"); } CursorMan.showMouse(false); _soundMan = new SoundMan(this); _audioResourceMan = new AudioResourceMan(this); _gameModule = new GameModule(this); _isSaveAllowed = true; _updateSound = true; _enableMusic = !_mixer->isSoundTypeMuted(Audio::Mixer::kMusicSoundType); if (isDemo()) { // Adjust this navigation list for the demo version NavigationList *navigationList = _staticData->getNavigationList(0x004B67E8); (*navigationList)[0].middleSmackerFileHash = 0; (*navigationList)[0].middleFlag = 1; (*navigationList)[2].middleSmackerFileHash = 0; (*navigationList)[2].middleFlag = 1; (*navigationList)[4].middleSmackerFileHash = 0; (*navigationList)[4].middleFlag = 1; (*navigationList)[5].middleSmackerFileHash = 0; (*navigationList)[5].middleFlag = 1; } if (ConfMan.hasKey("save_slot")) { if (loadGameState(ConfMan.getInt("save_slot")).getCode() != Common::kNoError) _gameModule->startup(); } else _gameModule->startup(); mainLoop(); delete _gameModule; delete _soundMan; delete _audioResourceMan; delete _console; delete _res; delete _screen; delete _gameVars; delete _staticData; return Common::kNoError; }
void FullpipeEngine::initObjectStates() { setLevelStates(); setObjectState(sO_Dude, getObjectEnumState(sO_Dude, sO_NotCarryingEgg)); setObjectState(sO_EggCracker, getObjectEnumState(sO_EggCracker, sO_DidNotCrackEgg)); setObjectState(sO_GuvTheDrawer, getObjectEnumState(sO_GuvTheDrawer, sO_Awaken)); setObjectState(sO_EggGulper, getObjectEnumState(sO_EggGulper, sO_First)); setObjectState(sO_EggGulperGaveCoin, getObjectEnumState(sO_EggGulperGaveCoin, sO_No)); setObjectState(sO_Jar_4, getObjectEnumState(sO_Jar_4, sO_OnTheSpring)); setObjectState(sO_GulpedEggs, getObjectEnumState(sO_GulpedEgg, sO_NotPresent)); setSwallowedEggsState(); setObjectState(sO_WeirdWacko, getObjectEnumState(sO_WeirdWacko, sO_InGlasses)); setObjectState(sO_TummyTrampie, getObjectEnumState(sO_TummyTrampie, sO_IsDrinking)); setObjectState(sO_StairsUp_8, getObjectEnumState(sO_StairsUp_8, sO_NotBroken)); setObjectState(sO_HareTheNooksiter, getObjectEnumState(sO_HareTheNooksiter, sO_WithHandle)); setObjectState(sO_Elephantine, getObjectEnumState(sO_Elephantine, sO_WithBoot)); setObjectState(sO_Fly_12, 0); setObjectState(sO_ClockAxis, getObjectEnumState(sO_ClockAxis, sO_IsNotAvailable)); setObjectState(sO_ClockHandle, getObjectEnumState(sO_ClockHandle, sO_In_7)); setObjectState(sO_BigMumsy, getObjectEnumState(sO_BigMumsy, sO_IsSleeping)); setObjectState(sO_CoinSlot_1, getObjectEnumState(sO_CoinSlot_1, sO_Empty)); setObjectState(sO_FriesPit, getObjectEnumState(sO_FriesPit, sO_WithApple)); setObjectState(sO_Jug, getObjectEnumState(sO_Jug, sO_Blocked)); setObjectState(sO_RightStairs_9, getObjectEnumState(sO_RightStairs_9, sO_IsClosed)); if (isDemo() && getLanguage() == Common::RU_RUS) setObjectState(sO_Pipe_9, getObjectEnumState(sO_Pipe_9, sO_WithoutJug)); else setObjectState(sO_Pipe_9, getObjectEnumState(sO_Pipe_9, sO_WithJug)); setObjectState(sO_Inflater, getObjectEnumState(sO_Inflater, sO_WithGum)); setObjectState(sO_Swingie, getObjectEnumState(sO_Swingie, sO_IsSwinging)); setObjectState(sO_DudeHasJumped, getObjectEnumState(sO_DudeHasJumped, sO_No)); setObjectState(sO_Bridge, getObjectEnumState(sO_Bridge, sO_Convoluted)); setObjectState(sO_Guardian, getObjectEnumState(sO_Guardian, sO_OnRight)); setObjectState(sO_Grandma, getObjectEnumState(sO_Grandma, sO_In_14)); setObjectState(sO_Boot_15, getObjectEnumState(sO_Boot_15, sO_NotPresent)); setObjectState(sO_LeftPipe_15, getObjectEnumState(sO_LeftPipe_15, sO_IsOpened)); setObjectState(sO_Pedestal_16, getObjectEnumState(sO_Pedestal_16, sO_IsFree)); setObjectState(sO_Cup, getObjectEnumState(sO_Cup, sO_InSmokeRoom)); setObjectState(sO_Pedestal_17, getObjectEnumState(sO_Pedestal_17, sO_IsFree)); setObjectState(sO_UsherHand, getObjectEnumState(sO_UsherHand, sO_WithoutCoin)); setObjectState(sO_RightPipe_17, getObjectEnumState(sO_RightPipe_17, sO_IsClosed)); setObjectState(sO_Fly_17, 1); setObjectState(sO_DudeSwinged, 0); setObjectState(sO_Girl, getObjectEnumState(sO_Girl, sO_IsSwinging)); setObjectState(sO_Sugar, getObjectEnumState(sO_Sugar, sO_Present)); setObjectState(sO_Janitors, getObjectEnumState(sO_Janitors, sO_Together)); setObjectState(sO_Bag_22, getObjectEnumState(sO_Bag_22, sO_NotFallen)); setObjectState(sO_Grandpa, getObjectEnumState(sO_Grandpa, sO_InSock)); setObjectState(sO_CoinSlot_22, getObjectEnumState(sO_CoinSlot_22, sO_Empty)); setObjectState(sO_UpperHatch_23, getObjectEnumState(sO_UpperHatch_23, sO_Closed)); setObjectState(sO_LowerHatch_23, getObjectEnumState(sO_LowerHatch_23, sO_Closed)); setObjectState(sO_Lever_23, getObjectEnumState(sO_Lever_23, sO_NotTaken)); setObjectState(sO_LeverHandle_23, getObjectEnumState(sO_LeverHandle_23, sO_WithoutStool)); setObjectState(sO_LowerPipe_21, getObjectEnumState(sO_LowerPipe_21, sO_IsClosed)); setObjectState(sO_StairsDown_24, getObjectEnumState(sO_StairsDown_24, sO_IsOpened)); setObjectState(sO_Hatch_26, getObjectEnumState(sO_Hatch_26, sO_Closed)); setObjectState(sO_Sock_26, getObjectEnumState(sO_Sock_26, sO_NotHanging)); setObjectState(sO_LeftPipe_26, getObjectEnumState(sO_LeftPipe_26, sO_IsClosed)); setObjectState(sO_Valve1_26, getObjectEnumState(sO_Valve1_26, sO_Opened)); setObjectState(sO_Valve2_26, getObjectEnumState(sO_Valve2_26, sO_Closed)); setObjectState(sO_Valve3_26, getObjectEnumState(sO_Valve3_26, sO_Closed)); setObjectState(sO_Valve4_26, getObjectEnumState(sO_Valve4_26, sO_Closed)); setObjectState(sO_Valve5_26, getObjectEnumState(sO_Valve5_26, sO_Opened)); setObjectState(sO_Pool, getObjectEnumState(sO_Pool, sO_Overfull)); setObjectState(sO_Board_25, getObjectEnumState(sO_Board_25, sO_NearDudesStairs)); setObjectState(sO_Driver, getObjectEnumState(sO_Driver, sO_WithSteering)); setObjectState(sO_Maid, getObjectEnumState(sO_Maid, sO_WithSwab)); setObjectState(sO_LeftPipe_29, getObjectEnumState(sO_LeftPipe_29, sO_IsClosed)); setObjectState(sO_LeftPipe_30, getObjectEnumState(sO_LeftPipe_30, sO_IsClosed)); setObjectState(sO_Leg, getObjectEnumState(sO_Leg, sO_ShowingHeel)); setObjectState(sO_Tub, getObjectEnumState(sO_Tub, sO_EmptyShe)); setObjectState(sO_Cactus, getObjectEnumState(sO_Cactus, sO_NotGrown)); setObjectState(sO_Fireman, getObjectEnumState(sO_Fireman, sO_WithHose)); setObjectState(sO_Cube, getObjectEnumState(sO_Cube, sO_In_33)); setObjectState(sO_MommyOfHandle_32, getObjectEnumState(sO_MommyOfHandle_32, sO_WithoutHandle)); setObjectState(sO_Pedestal_33, getObjectEnumState(sO_Pedestal_33, sO_IsFree)); setObjectState(sO_Valve_34, getObjectEnumState(sO_Valve_34, sO_WithNothing)); setObjectState(sO_Stool_34, getObjectEnumState(sO_Stool_34, sO_WithoutDrawer)); setObjectState(sO_Plank_34, getObjectEnumState(sO_Plank_34, sO_Passive)); setObjectState(sO_Hatch_34, getObjectEnumState(sO_Hatch_34, sO_Closed)); setObjectState(sO_Valve_35, getObjectEnumState(sO_Valve_35, sO_TurnedOff)); setObjectState(sO_Carpet_35, getObjectEnumState(sO_Carpet_35, sO_CannotTake)); setObjectState(sO_CoinSlot_35, getObjectEnumState(sO_CoinSlot_35, sO_WithCoin)); setObjectState(sO_BellyInflater, getObjectEnumState(sO_BellyInflater, sO_WithCork)); setObjectState(sO_Jawcrucnher, getObjectEnumState(sO_Jawcrucnher, sO_WithoutCarpet)); setObjectState(sO_Guard_1, getObjectEnumState(sO_Guard_1, sO_On)); setObjectState(sO_Guard_2, getObjectEnumState(sO_Guard_2, sO_On)); setObjectState(sO_Guard_3, getObjectEnumState(sO_Guard_3, sO_On)); setObjectState(sO_Bottle_38, getObjectEnumState(sO_Bottle_38, sO_OnTheTable)); setObjectState(sO_Boss, getObjectEnumState(sO_Boss, sO_WithHammer)); }
bool PegasusEngine::isOldDemo() const { return isDemo() && !isDVD(); }
bool PegasusEngine::isDVDDemo() const { return isDemo() && isDVD(); }
bool BuriedEngine::canSaveGameStateCurrently() { return !isDemo() && _mainWindow && !_yielding && ((FrameWindow *)_mainWindow)->isGameInProgress(); }
bool BuriedEngine::canLoadGameStateCurrently() { return !isDemo() && _mainWindow && !_yielding; }
bool FullpipeEngine::loadGam(const char *fname, int scene) { _gameLoader.reset(new GameLoader()); if (!_gameLoader->loadFile(fname)) return false; _currSoundListCount = 0; initObjectStates(); // set_g_messageQueueCallback1(messageQueueCallback1); // substituted with direct call addMessageHandlerByIndex(global_messageHandler1, 0, 4); _inventory = getGameLoaderInventory(); if (isDemo() && getLanguage() == Common::RU_RUS) { _inventory->addItem(ANI_INV_HAMMER, 1); } else { _inventory->setItemFlags(ANI_INV_MAP, 0x10003); _inventory->addItem(ANI_INV_MAP, 1); } _inventory->rebuildItemRects(); for (uint i = 0; i < _inventory->getScene()->_picObjList.size(); i++) _inventory->getScene()->_picObjList[i]->_picture->MemoryObject::load(); // _sceneSwitcher = sceneSwitcher; // substituted with direct call _gameLoader->_preloadCallback = preloadCallback; _gameLoader->_savegameCallback = gameLoaderSavegameCallback; _aniMan = accessScene(SC_COMMON)->getAniMan(); _scene2 = 0; _movTable.reset(_aniMan->countMovements()); _aniMan->setSpeed(1); PictureObject *pic = accessScene(SC_INV)->getPictureObjectById(PIC_INV_MENU, 0); pic->setFlags(pic->_flags & 0xFFFB); // Not used in full game //_evalVersionPic = accessScene(SC_COMMON)->getPictureObjectById(PIC_CMN_EVAL, 0); initMap(); initCursors(); setMusicAllowed(_gameLoader->_gameVar->getSubVarAsInt("MUSIC_ALLOWED")); if (scene == -1) return true; if (scene) { _gameLoader->loadScene(726); _gameLoader->gotoScene(726, TrubaLeft); if (scene != 726) _gameLoader->preloadScene(726, getSceneEntrance(scene)); } else { if (_flgPlayIntro) { _gameLoader->loadScene(SC_INTRO1); _gameLoader->gotoScene(SC_INTRO1, TrubaUp); } else { if (g_fp->isDemo() && g_fp->getLanguage() == Common::RU_RUS) { _gameLoader->loadScene(SC_9); _gameLoader->gotoScene(SC_9, TrubaDown); } else { _gameLoader->loadScene(SC_1); _gameLoader->gotoScene(SC_1, TrubaLeft); } } } if (!_currentScene) return false; return true; }
GameScene::GameScene(GameView *parent) : QGraphicsScene(parent), m_level(1), m_highestLevel(1), m_gameState(GameRunning), m_dt(0), firstStep(true), m_selectedType(ParticlePositive), m_isSlowMotionEnabled(false), currentTime(0), lastFrameTime(0), frameNumber(0), dtSum(0) { qRegisterMetaType<GameScene::GameMode>("GameMode"); qRegisterMetaType<GameScene::GameState>("GameState"); #ifdef OS_IS_ANDROID qDebug() << "Force syncing settings"; settings.sync(); #endif if(isDemo()) { qDebug() << "This is the demo version"; } else { qDebug() << "This is the full version"; } setSelectedType(ParticlePositive); // load images selectionImage = QImage(":/images/selection-overlay.png"); positiveImage = QImage(":/images/particle-positive.png"); negativeImage = QImage(":/images/particle-negative.png"); neutralImage = QImage(":/images/particle-neutral.png"); playerImage = QImage(":/images/particle-player.png"); playerOverchargedImage = QImage(":/images/particle-player-overcharged.png"); glowingImage = QImage(":/images/particle-glowing.png"); enemyImage = QImage(":/images/particle-enemy.png"); slowMotionImage = QImage(":/images/particle-slow-motion.png"); repellentImage = QImage(":/images/particle-repellent.png"); transferImage = QImage(":/images/particle-transfer.png"); setSceneRect(0, 0, 854, 480); // TODO: just for init, should be chosen by the platform setItemIndexMethod(QGraphicsScene::NoIndex); // Background image QPixmap backgroundPixmap(":/images/background.png"); backgroundImage = this->addPixmap(backgroundPixmap); // Main menu QDeclarativeEngine *engine = new QDeclarativeEngine; //#ifdef OS_IS_ANDROID // QDeclarativeComponent mainMenuComponent(engine, QUrl(adjustPath("assets:/qml/MainMenu.qml"))); //#else QDeclarativeComponent mainMenuComponent(engine, QUrl("qrc:/qml/MainMenu.qml")); //#endif engine->rootContext()->setContextProperty("contextGameScene", this); mainMenu = qobject_cast<QGraphicsObject *>(mainMenuComponent.create()); qDebug() << "Component errors:\n" << mainMenuComponent.errors(); qDebug() << "End component errors"; // Connect the QML back to this class addItem(mainMenu); mainMenu->setZValue(1000); m_specialParticles = new QList<int>; #ifdef OS_IS_HARMATTAN mainMenu->setProperty("exit.visible", false); #endif #ifdef OS_IS_SYMBIAN qreal screenWidth = QApplication::desktop()->screenGeometry().width(); qreal screenHeight = QApplication::desktop()->screenGeometry().height(); if(screenWidth > screenHeight) { // Symbian hack mainMenu->setProperty("width", screenWidth); mainMenu->setProperty("height", screenHeight); } else { mainMenu->setProperty("width", screenHeight); mainMenu->setProperty("height", screenWidth); } #endif // set up timer levelTimer = new QTimer(this); levelTimer->setInterval(1000); connect(levelTimer, SIGNAL(timeout()), SLOT(updateLevelTime())); // Set up animations timeFactorAnimation = new QPropertyAnimation(this, "timeFactor"); qDebug() << "Highest level is" << m_level; setGameState(GameStarted); // just init all in the resize() function resized(); // Start level and start timers // startLevel(level()); connect(&advanceTimer, SIGNAL(timeout()), SLOT(advance())); advanceTimer.start(10); time.start(); qDebug() << "Timers started!"; // dashboard button #if (defined(OS_IS_DESKTOP_LINUX) || defined(Q_OS_WIN32) || defined(Q_OS_MAC) || defined(Q_WS_MAEMO_5)) qDebug() << "Show dashboard button"; mainMenu->setProperty("dashboardButtonVisible", true); #else qDebug() << "Don't show dashboard button"; mainMenu->setProperty("dashboardButtonVisible", false); #endif // load settings setGameMode((GameMode)settings.value("gameMode", ModeClassic).toInt()); }
Common::Error BuriedEngine::run() { _console = new BuriedConsole(this); #ifndef USE_ICONV // The Japanese version needs iconv support if (getLanguage() == Common::JA_JPN) return Common::Error(Common::kUnknownError, "No iconv support available"); #endif if (isTrueColor()) { initGraphics(640, 480, true, 0); if (_system->getScreenFormat().bytesPerPixel == 1) return Common::kUnsupportedColorMode; } else { initGraphics(640, 480, true); } if (isWin95()) { _mainEXE = new DatabasePE(); _library = new DatabasePE(); } else if (isCompressed()) { _mainEXE = new DatabaseNECompressed(); _library = new DatabaseNECompressed(); } else { _mainEXE = new DatabaseNE(); // Demo only uses the main EXE if (!isDemo()) _library = new DatabaseNE(); } if (!_mainEXE->load(getEXEName())) error("Failed to load main EXE '%s'", getEXEName().c_str()); if (_library && !_library->load(getLibraryName())) error("Failed to load library DLL '%s'", getLibraryName().c_str()); syncSoundSettings(); _gfx = new GraphicsManager(this); _sound = new SoundManager(this); _mainWindow = new FrameWindow(this); _mainWindow->showWindow(Window::kWindowShow); if (isDemo()) { ((FrameWindow *)_mainWindow)->showTitleSequence(); ((FrameWindow *)_mainWindow)->showMainMenu(); } else { bool doIntro = true; if (ConfMan.hasKey("save_slot")) { uint32 gameToLoad = ConfMan.getInt("save_slot"); doIntro = (loadGameState(gameToLoad).getCode() != Common::kNoError); // If the trial version tries to load a game without a time // zone that's part of the trial version, force the intro. if (isTrial() && !((FrameWindow *)_mainWindow)->getMainChildWindow()) doIntro = true; } // Play the intro only if we're starting from scratch if (doIntro) ((FrameWindow *)_mainWindow)->showClosingScreen(); } while (!shouldQuit()) { updateVideos(); pollForEvents(); sendAllMessages(); _gfx->updateScreen(); _system->delayMillis(10); } return Common::kNoError; }