aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorMartin Kiewitz2010-07-10 17:08:42 +0000
committerMartin Kiewitz2010-07-10 17:08:42 +0000
commitb7906e7feb33cf1b31433f9962bb02b393e1943e (patch)
treee2e0629edc875cb954c76c4365c406142665b642 /engines/sci
parent28d07c7e0a8e2e84aa5bba45105dc4091476f4ee (diff)
downloadscummvm-rg350-b7906e7feb33cf1b31433f9962bb02b393e1943e.tar.gz
scummvm-rg350-b7906e7feb33cf1b31433f9962bb02b393e1943e.tar.bz2
scummvm-rg350-b7906e7feb33cf1b31433f9962bb02b393e1943e.zip
SCI: allow invalid handles in kDisplay calls, fixes pq3 intro signature mismatch
svn-id: r50785
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/engine/kernel.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/engines/sci/engine/kernel.cpp b/engines/sci/engine/kernel.cpp
index 2069b8ee80..2fb1452fa2 100644
--- a/engines/sci/engine/kernel.cpp
+++ b/engines/sci/engine/kernel.cpp
@@ -370,7 +370,8 @@ static SciKernelMapEntry s_kernelMap[] = {
{ MAP_CALL(CosDiv), SIG_EVERYWHERE, "ii", NULL, NULL },
{ MAP_CALL(DeleteKey), SIG_EVERYWHERE, "l.", NULL, NULL },
{ MAP_CALL(DeviceInfo), SIG_EVERYWHERE, "i(r)(r)(i)", NULL, NULL }, // subop
- { MAP_CALL(Display), SIG_EVERYWHERE, "[ir]([ir]*)", NULL, NULL }, // subop
+ { MAP_CALL(Display), SIG_EVERYWHERE, "[ir]([ir!]*)", NULL, NULL },
+ // ^ we allow invalid references here, because kDisplay gets called with those in e.g. pq3 during intro
{ MAP_CALL(DirLoop), SIG_EVERYWHERE, "oi", NULL, NULL },
{ MAP_CALL(DisposeClone), SIG_EVERYWHERE, "o", NULL, NULL },
{ MAP_CALL(DisposeList), SIG_EVERYWHERE, "l", NULL, NULL },