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
This commit is contained in:
Filippos Karapetis 2014-10-29 11:19:15 +02:00
parent 5c91173337
commit 40b224fc74

View File

@ -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.