diff options
author | Filippos Karapetis | 2014-10-29 11:19:15 +0200 |
---|---|---|
committer | Filippos Karapetis | 2014-10-29 11:23:59 +0200 |
commit | 40b224fc74337315dd485a7e8cdbf19bd37dc941 (patch) | |
tree | 14f326b0da54e509075d4e81c8995e1cf3dc2d9f /engines | |
parent | 5c91173337278d1d23d03efbeb4e6b6debba0d6d (diff) | |
download | scummvm-rg350-40b224fc74337315dd485a7e8cdbf19bd37dc941.tar.gz scummvm-rg350-40b224fc74337315dd485a7e8cdbf19bd37dc941.tar.bz2 scummvm-rg350-40b224fc74337315dd485a7e8cdbf19bd37dc941.zip |
SCUMM: Disallow saving while a room 'prequel' is shown in v0-v3 games
These are cases where the screen is completely blank, showing text.
In such cases, no room is set, thus no room resources are available.
An example is the screen shown after the credits in the Zak FM-TOWNS
intro ("The next day..."). Thanks to segrax for finding this case.
This commit is based off pull request 522, but completely disallows
saving in such scenes, instead of adding explicit checks for them
Diffstat (limited to 'engines')
-rw-r--r-- | engines/scumm/saveload.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/engines/scumm/saveload.cpp b/engines/scumm/saveload.cpp index 7eadb042fb..0c0f6be73b 100644 --- a/engines/scumm/saveload.cpp +++ b/engines/scumm/saveload.cpp @@ -109,7 +109,12 @@ Common::Error ScummEngine::saveGameState(int slot, const Common::String &desc) { } bool ScummEngine::canSaveGameStateCurrently() { - // FIXME: For now always allow loading in V0-V3 games + // Disallow saving in v0-v3 games when a 'prequel' to a cutscene is shown. + // This is a blank screen with text, and while this is shown, saving should + // be disabled, as no room is set. + if (_game.version <= 3 && _currentScript == 0xFF && _roomResource == 0 && _currentRoom == 0) + return false; + // TODO: Should we disallow saving in some more places, // e.g. when a SAN movie is playing? Not sure whether the // original EXE allowed this. |