aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorWalter van Niftrik2009-05-16 12:46:59 +0000
committerWalter van Niftrik2009-05-16 12:46:59 +0000
commit7f5bd2447ec9a87e483fcf7311bf373b1995a7a6 (patch)
treea66f11f439c7c300ef815a699c24a35e54b21237 /engines/sci
parentbef36104e3eb68801d70c0325f9c0dc4f283fe78 (diff)
downloadscummvm-rg350-7f5bd2447ec9a87e483fcf7311bf373b1995a7a6.tar.gz
scummvm-rg350-7f5bd2447ec9a87e483fcf7311bf373b1995a7a6.tar.bz2
scummvm-rg350-7f5bd2447ec9a87e483fcf7311bf373b1995a7a6.zip
SCI: Allow the VM to continue when the invalid selector access occurs at the start of LSL6.
svn-id: r40627
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/engine/vm.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/engines/sci/engine/vm.cpp b/engines/sci/engine/vm.cpp
index 73e4499d20..75e31261b1 100644
--- a/engines/sci/engine/vm.cpp
+++ b/engines/sci/engine/vm.cpp
@@ -368,6 +368,14 @@ ExecStack *send_selector(EngineState *s, reg_t send_obj, reg_t work_obj, StackPt
switch (lookup_selector(s, send_obj, selector, &varp, &funcp)) {
case kSelectorNone:
sciprintf("Send to invalid selector 0x%x of object at "PREG"\n", 0xffff & selector, PRINT_REG(send_obj));
+
+ // WORKAROUND: LSL6 tries to access the invalid 'keep' selector of the game object.
+ // FIXME: Find out if this is a game bug.
+ if ((s->_gameName == "LSL6") && (s->currentRoomNumber() == 100)) {
+ debug("LSL6 room 100 detected, continuing...");
+ break;
+ }
+
script_error_flag = script_debug_flag = 1;
break;