diff options
-rw-r--r-- | engines/agi/agi.cpp | 22 | ||||
-rw-r--r-- | engines/agi/agi.h | 1 | ||||
-rw-r--r-- | engines/agi/menu.cpp | 5 |
3 files changed, 19 insertions, 9 deletions
diff --git a/engines/agi/agi.cpp b/engines/agi/agi.cpp index d78a2dc587..a8d521ff69 100644 --- a/engines/agi/agi.cpp +++ b/engines/agi/agi.cpp @@ -247,6 +247,19 @@ void AgiEngine::processEvents() { } } +void AgiEngine::checkQuickLoad() { + if (ConfMan.hasKey("save_slot")) { + char saveNameBuffer[256]; + + snprintf (saveNameBuffer, 256, "%s.%03d", _targetName.c_str(), ConfMan.getInt("save_slot")); + + if (loadGame(saveNameBuffer, false) == errOK) { // Do not check game id + _game.exitAllLogics = 1; + _menu->enableAll(); + } + } +} + int AgiEngine::agiIsKeypressLow() { processEvents(); return _keyQueueStart != _keyQueueEnd; @@ -437,15 +450,6 @@ int AgiEngine::agiInit() { if (ec == errOK) ec = _loader->loadResource(rLOGIC, 0); - - if (ConfMan.hasKey("save_slot")) { - char saveNameBuffer[256]; - - snprintf (saveNameBuffer, 256, "%s.%03d", _targetName.c_str(), ConfMan.getInt("save_slot")); - - loadGame(saveNameBuffer, false); // Do not check game id - } - #ifdef __DS__ // Normally, the engine loads the predictive text dictionary when the predictive dialog // is shown. On the DS version, the word completion feature needs the dictionary too. diff --git a/engines/agi/agi.h b/engines/agi/agi.h index 03965681f1..358660619b 100644 --- a/engines/agi/agi.h +++ b/engines/agi/agi.h @@ -811,6 +811,7 @@ public: void allowSynthetic(bool); void processEvents(); + void checkQuickLoad(); // Objects int showObjects(); diff --git a/engines/agi/menu.cpp b/engines/agi/menu.cpp index 916c4c184f..cad3da5721 100644 --- a/engines/agi/menu.cpp +++ b/engines/agi/menu.cpp @@ -260,6 +260,11 @@ void Menu::submit() { --iter; } } + + // We need to wait till the main menu is submitted by the game scripts + // before checking if we can start loading a save game from the command line. + // Menu initialization and submital takes place when the game starts only + _vm->checkQuickLoad(); } bool Menu::keyhandler(int key) { |