diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/sci/engine/guest_additions.cpp | 8 |
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 |