aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
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