diff options
author | Colin Snover | 2017-02-04 17:30:01 -0600 |
---|---|---|
committer | Colin Snover | 2017-04-22 13:01:36 -0500 |
commit | 2862e510684cc696e7160dc7dc940ffea8cca0f5 (patch) | |
tree | 4bee27401a0bdf2227e0023af0f420e5e389b8d2 /engines | |
parent | a2c48eff4ca281158aa48e34ede29a53e0871807 (diff) | |
download | scummvm-rg350-2862e510684cc696e7160dc7dc940ffea8cca0f5.tar.gz scummvm-rg350-2862e510684cc696e7160dc7dc940ffea8cca0f5.tar.bz2 scummvm-rg350-2862e510684cc696e7160dc7dc940ffea8cca0f5.zip |
SCI32: Fix launcher load for Shivers
Diffstat (limited to 'engines')
-rw-r--r-- | engines/sci/detection.cpp | 1 | ||||
-rw-r--r-- | engines/sci/engine/guest_additions.cpp | 15 |
2 files changed, 11 insertions, 5 deletions
diff --git a/engines/sci/detection.cpp b/engines/sci/detection.cpp index fa89aad404..6799c3521f 100644 --- a/engines/sci/detection.cpp +++ b/engines/sci/detection.cpp @@ -887,7 +887,6 @@ bool SciEngine::canLoadGameStateCurrently() { const Common::String &guiOptions = ConfMan.get("guioptions"); if (getSciVersion() >= SCI_VERSION_2) { if (ConfMan.getBool("originalsaveload") || - !Common::checkGameGUIOption(GAMEOPTION_ORIGINAL_SAVELOAD, guiOptions) || Common::checkGameGUIOption(GUIO_NOLAUNCHLOAD, guiOptions)) { return false; diff --git a/engines/sci/engine/guest_additions.cpp b/engines/sci/engine/guest_additions.cpp index 0ef6d99eaa..be6955fb21 100644 --- a/engines/sci/engine/guest_additions.cpp +++ b/engines/sci/engine/guest_additions.cpp @@ -513,10 +513,17 @@ void GuestAdditions::restoreFromLauncher() const { return; } - // When `Game::restore` is invoked, it will call to `Restore::doit` - // which will automatically return the `_delayedRestoreGameId` instead - // of prompting the user for a save game - invokeSelector(g_sci->getGameObject(), SELECTOR(restore)); + if (g_sci->getGameId() == GID_SHIVERS) { + // Shivers accepts the save game number as a parameter to + // `SHIVERS::restore` + reg_t args[] = { make_reg(0, _state->_delayedRestoreGameId - kSaveIdShift) }; + invokeSelector(g_sci->getGameObject(), SELECTOR(restore), 1, args); + } else { + // When `Game::restore` is invoked, it will call to `Restore::doit` + // which will automatically return the `_delayedRestoreGameId` instead + // of prompting the user for a save game + invokeSelector(g_sci->getGameObject(), SELECTOR(restore)); + } } else { #else { |