aboutsummaryrefslogtreecommitdiff
path: root/engines/queen
diff options
context:
space:
mode:
Diffstat (limited to 'engines/queen')
-rw-r--r--engines/queen/queen.cpp55
-rw-r--r--engines/queen/queen.h10
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();