aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorsluicebox2019-10-31 04:31:06 -0700
committersluicebox2019-10-31 04:31:06 -0700
commit6444d279fe72f649050e92aaf6fafc423a413b83 (patch)
tree3c8d4c147cc4a8a5885c3ce78d6b4af8b4c4aa14 /engines
parentcdf9954eb569060184c937a48217f7cd2a6f03f9 (diff)
downloadscummvm-rg350-6444d279fe72f649050e92aaf6fafc423a413b83.tar.gz
scummvm-rg350-6444d279fe72f649050e92aaf6fafc423a413b83.tar.bz2
scummvm-rg350-6444d279fe72f649050e92aaf6fafc423a413b83.zip
SCI32: Fix LSL6 Hires Mac restore from launcher
Diffstat (limited to 'engines')
-rw-r--r--engines/sci/engine/guest_additions.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/engines/sci/engine/guest_additions.cpp b/engines/sci/engine/guest_additions.cpp
index cf70608acc..5ed3776415 100644
--- a/engines/sci/engine/guest_additions.cpp
+++ b/engines/sci/engine/guest_additions.cpp
@@ -756,6 +756,14 @@ bool GuestAdditions::restoreFromLauncher() const {
return false;
}
+ // Delayed restore should not happen in LSL6 hires until the room number is set.
+ // LSL6:restore tests room numbers to determine if restoring is allowed, but the
+ // Mac version adds a call to kGetEvent in LSL6:init before the initial call to
+ // LSL6:newRoom. If the room number isn't set yet then restoring isn't allowed.
+ if (g_sci->getGameId() == GID_LSL6HIRES && _state->variables[VAR_GLOBAL][kGlobalVarCurrentRoomNo] == NULL_REG) {
+ return false;
+ }
+
_restoring = true;
// Any events queued up before the game restore can cause accidental