diff options
| -rw-r--r-- | engines/sci/engine/kernel_tables.h | 2 | ||||
| -rw-r--r-- | engines/sci/engine/workarounds.cpp | 6 | ||||
| -rw-r--r-- | engines/sci/engine/workarounds.h | 1 | 
3 files changed, 8 insertions, 1 deletions
| diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h index 400bbfc5d2..e8e691a0ff 100644 --- a/engines/sci/engine/kernel_tables.h +++ b/engines/sci/engine/kernel_tables.h @@ -393,7 +393,7 @@ static SciKernelMapEntry s_kernelMap[] = {      { MAP_CALL(NewWindow),         SIG_SCIALL, SIGFOR_MAC,   ".*",                    NULL,            NULL },      { MAP_CALL(NewWindow),         SIG_SCI0, SIGFOR_ALL,     "iiii[r0]i(i)(i)(i)",    NULL,            NULL },      { MAP_CALL(NewWindow),         SIG_SCI1, SIGFOR_ALL,     "iiii[ir]i(i)(i)([ir])(i)(i)(i)(i)", NULL, NULL }, -    { MAP_CALL(NewWindow),         SIG_SCI11, SIGFOR_ALL,    "iiiiiiii[r0]i(i)(i)(i)", NULL,          NULL }, +    { MAP_CALL(NewWindow),         SIG_SCI11, SIGFOR_ALL,    "iiiiiiii[r0]i(i)(i)(i)", NULL,           kNewWindow_workarounds },      { MAP_CALL(NextNode),          SIG_EVERYWHERE,           "n",                     NULL,            NULL },      { MAP_CALL(NodeValue),         SIG_EVERYWHERE,           "[n0]",                  NULL,            NULL },      { MAP_CALL(NumCels),           SIG_EVERYWHERE,           "o",                     NULL,            NULL }, diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp index 174a337c42..b13a458402 100644 --- a/engines/sci/engine/workarounds.cpp +++ b/engines/sci/engine/workarounds.cpp @@ -202,6 +202,12 @@ const SciWorkaroundEntry kMemory_workarounds[] = {  };  //    gameID,           room,script,lvl,          object-name, method-name,    call,index,                workaround +const SciWorkaroundEntry kNewWindow_workarounds[] = { +    { GID_ECOQUEST,      -1,    981,  0,           "SysWindow", "<noname 178>",   -1,    0, { WORKAROUND_STILLCALL, 0 } }, // EcoQuest 1 demo uses an in-between interpreter from SCI1 to SCI1.1. It's SCI1.1, but uses the SCI1 semantics for this call. +    SCI_WORKAROUNDENTRY_TERMINATOR +}; + +//    gameID,           room,script,lvl,          object-name, method-name,    call,index,                workaround  const SciWorkaroundEntry kPaletteUnsetFlag_workarounds[] = {      { GID_QFG4,     100,   100,  0,                 "doMovie", "<noname 144>",   -1,    0, { WORKAROUND_IGNORE,    0 } }, // after the Sierra logo, no flags are passed, thus the call is meaningless      SCI_WORKAROUNDENTRY_TERMINATOR diff --git a/engines/sci/engine/workarounds.h b/engines/sci/engine/workarounds.h index 8496be36f6..22358bf4bb 100644 --- a/engines/sci/engine/workarounds.h +++ b/engines/sci/engine/workarounds.h @@ -84,6 +84,7 @@ extern const SciWorkaroundEntry kGraphFillBoxAny_workarounds[];  extern const SciWorkaroundEntry kGraphRedrawBox_workarounds[];  extern const SciWorkaroundEntry kIsObject_workarounds[];  extern const SciWorkaroundEntry kMemory_workarounds[]; +extern const SciWorkaroundEntry kNewWindow_workarounds[];  extern const SciWorkaroundEntry kPaletteUnsetFlag_workarounds[];  extern const SciWorkaroundEntry kSetPort_workarounds[];  extern const SciWorkaroundEntry kUnLoad_workarounds[]; | 
