diff options
| -rw-r--r-- | engines/sci/engine/kernel_tables.h | 2 | ||||
| -rw-r--r-- | engines/sci/engine/workarounds.cpp | 7 | ||||
| -rw-r--r-- | engines/sci/engine/workarounds.h | 1 | 
3 files changed, 9 insertions, 1 deletions
diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h index d7858180f1..39244bd760 100644 --- a/engines/sci/engine/kernel_tables.h +++ b/engines/sci/engine/kernel_tables.h @@ -421,7 +421,7 @@ static SciKernelMapEntry s_kernelMap[] = {  	{ MAP_CALL(PrevNode),          SIG_EVERYWHERE,           "n",                     NULL,            NULL },  	{ MAP_CALL(PriCoord),          SIG_EVERYWHERE,           "i",                     NULL,            NULL },  	{ MAP_CALL(Random),            SIG_EVERYWHERE,           "i(i)(i)",               NULL,            NULL }, -	{ MAP_CALL(ReadNumber),        SIG_EVERYWHERE,           "r",                     NULL,            NULL }, +	{ MAP_CALL(ReadNumber),        SIG_EVERYWHERE,           "r",                     NULL,            kReadNumber_workarounds },  	{ MAP_CALL(RemapColors),       SIG_SCI11, SIGFOR_ALL,    "i(i)(i)(i)(i)",         NULL,            NULL },  #ifdef ENABLE_SCI32  	{ "RemapColors", kRemapColors32, SIG_SCI32, SIGFOR_ALL,  "i(i)(i)(i)(i)(i)",      NULL,            NULL }, diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp index 950e518b58..44aa75a9b3 100644 --- a/engines/sci/engine/workarounds.cpp +++ b/engines/sci/engine/workarounds.cpp @@ -365,6 +365,13 @@ const SciWorkaroundEntry kNewWindow_workarounds[] = {  };  //    gameID,           room,script,lvl,          object-name, method-name,    call,index,                workaround +const SciWorkaroundEntry kReadNumber_workarounds[] = { +	{ GID_CNICK_LAURABOW,100,   101,  0,          "dominoes.opt", "doit",        -1,    0, { WORKAROUND_STILLCALL, 0 } }, // When dominoes.opt is present, the game scripts call kReadNumber with an extra integer parameter - bug #3615120 +	{ GID_HOYLE3,        100,   101,  0,          "dominoes.opt", "doit",        -1,    0, { WORKAROUND_STILLCALL, 0 } }, // When dominoes.opt is present, the game scripts call kReadNumber with an extra integer parameter - bug #3615120 +	SCI_WORKAROUNDENTRY_TERMINATOR +}; + +//    gameID,           room,script,lvl,          object-name, method-name,    call,index,                workaround  const SciWorkaroundEntry kPaletteUnsetFlag_workarounds[] = {  	{ GID_QFG4,          100,   100,  0,            "doMovie", "changeState",    -1,    0, { WORKAROUND_IGNORE,    0 } }, // after the Sierra logo, no flags are passed, thus the call is meaningless - bug #3034506  	SCI_WORKAROUNDENTRY_TERMINATOR diff --git a/engines/sci/engine/workarounds.h b/engines/sci/engine/workarounds.h index 59054ae552..d5e91b70ec 100644 --- a/engines/sci/engine/workarounds.h +++ b/engines/sci/engine/workarounds.h @@ -88,6 +88,7 @@ extern const SciWorkaroundEntry kIsObject_workarounds[];  extern const SciWorkaroundEntry kMemory_workarounds[];  extern const SciWorkaroundEntry kMoveCursor_workarounds[];  extern const SciWorkaroundEntry kNewWindow_workarounds[]; +extern const SciWorkaroundEntry kReadNumber_workarounds[];  extern const SciWorkaroundEntry kPaletteUnsetFlag_workarounds[];  extern const SciWorkaroundEntry kSetCursor_workarounds[];  extern const SciWorkaroundEntry kSetPort_workarounds[];  | 
