diff options
Diffstat (limited to 'engines/queen')
-rw-r--r-- | engines/queen/queen.cpp | 55 | ||||
-rw-r--r-- | engines/queen/queen.h | 10 |
2 files changed, 27 insertions, 38 deletions
diff --git a/engines/queen/queen.cpp b/engines/queen/queen.cpp index b8523a9a53..802a432546 100644 --- a/engines/queen/queen.cpp +++ b/engines/queen/queen.cpp @@ -444,35 +444,7 @@ GUI::Debugger *QueenEngine::getDebugger() { return _debugger; } -Common::Error QueenEngine::go() { - _logic->start(); - if (ConfMan.hasKey("save_slot") && canLoadOrSave()) { - loadGameState(ConfMan.getInt("save_slot")); - } - _lastSaveTime = _lastUpdateTime = _system->getMillis(); - - while (!shouldQuit()) { - if (_logic->newRoom() > 0) { - _logic->update(); - _logic->oldRoom(_logic->currentRoom()); - _logic->currentRoom(_logic->newRoom()); - _logic->changeRoom(); - _display->fullscreen(false); - if (_logic->currentRoom() == _logic->newRoom()) { - _logic->newRoom(0); - } - } else if (_logic->joeWalk() == JWM_EXECUTE) { - _logic->joeWalk(JWM_NORMAL); - _command->executeCurrentAction(); - } else { - _logic->joeWalk(JWM_NORMAL); - update(true); - } - } - return Common::kNoError; -} - -Common::Error QueenEngine::init() { +Common::Error QueenEngine::run() { initGraphics(GAME_SCREEN_WIDTH, GAME_SCREEN_HEIGHT, false); _resource = new Resource(); @@ -501,6 +473,31 @@ Common::Error QueenEngine::init() { registerDefaultSettings(); readOptionSettings(); + _logic->start(); + if (ConfMan.hasKey("save_slot") && canLoadOrSave()) { + loadGameState(ConfMan.getInt("save_slot")); + } + _lastSaveTime = _lastUpdateTime = _system->getMillis(); + + while (!shouldQuit()) { + if (_logic->newRoom() > 0) { + _logic->update(); + _logic->oldRoom(_logic->currentRoom()); + _logic->currentRoom(_logic->newRoom()); + _logic->changeRoom(); + _display->fullscreen(false); + if (_logic->currentRoom() == _logic->newRoom()) { + _logic->newRoom(0); + } + } else if (_logic->joeWalk() == JWM_EXECUTE) { + _logic->joeWalk(JWM_NORMAL); + _command->executeCurrentAction(); + } else { + _logic->joeWalk(JWM_NORMAL); + update(true); + } + } + return Common::kNoError; } diff --git a/engines/queen/queen.h b/engines/queen/queen.h index 4bde519ea8..a3457b2e2f 100644 --- a/engines/queen/queen.h +++ b/engines/queen/queen.h @@ -129,15 +129,7 @@ public: protected: // Engine APIs - Common::Error init(); - Common::Error go(); - virtual Common::Error run() { - Common::Error err; - err = init(); - if (err != Common::kNoError) - return err; - return go(); - } + virtual Common::Error run(); virtual GUI::Debugger *getDebugger(); virtual bool hasFeature(EngineFeature f) const; virtual void syncSoundSettings(); |