diff options
| -rw-r--r-- | engines/sci/engine/kernel_tables.h | 2 | ||||
| -rw-r--r-- | engines/sci/engine/workarounds.cpp | 9 | ||||
| -rw-r--r-- | engines/sci/engine/workarounds.h | 1 | 
3 files changed, 11 insertions, 1 deletions
| diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h index 1cfcd4981d..2db3c59e64 100644 --- a/engines/sci/engine/kernel_tables.h +++ b/engines/sci/engine/kernel_tables.h @@ -429,7 +429,7 @@ static const SciKernelMapSubEntry kList_subops[] = {  	{ SIG_SINCE_SCI21,    14, MAP_CALL(MoveToEnd),                 "ln",                   NULL },  	{ SIG_SINCE_SCI21,    15, MAP_CALL(FindKey),                   "l.",                   NULL },  	{ SIG_SINCE_SCI21,    16, MAP_CALL(DeleteKey),                 "l.",                   NULL }, -	{ SIG_SINCE_SCI21,    17, MAP_CALL(ListAt),                    "li",                   NULL }, +	{ SIG_SINCE_SCI21,    17, MAP_CALL(ListAt),                    "li",                   kListAt_workarounds },  	{ SIG_SINCE_SCI21,    18, MAP_CALL(ListIndexOf) ,              "l[io]",                NULL },  	{ SIG_SINCE_SCI21,    19, MAP_CALL(ListEachElementDo),         "li(.*)",               NULL },  	{ SIG_SINCE_SCI21,    20, MAP_CALL(ListFirstTrue),             "li(.*)",               NULL }, diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp index 30f82e9eae..c87156b1df 100644 --- a/engines/sci/engine/workarounds.cpp +++ b/engines/sci/engine/workarounds.cpp @@ -280,6 +280,9 @@ const SciWorkaroundEntry uninitializedReadWorkarounds[] = {  	{ GID_HOYLE4,        500,    17,  1,          "Character", "say",                             NULL,   504, { WORKAROUND_FAKE,   0 } }, // sometimes while playing Cribbage (e.g. when the opponent says "Last Card") - bug #5662  	{ GID_HOYLE4,        800,   870,  0,     "EuchreStrategy", "thinkLead",                       NULL,     0, { WORKAROUND_FAKE,   0 } }, // while playing Euchre, happens at least on 2nd or 3rd turn - bug #6602  	{ GID_HOYLE4,         -1,   937,  0,            "IconBar", "dispatchEvent",                   NULL,   408, { WORKAROUND_FAKE,   0 } }, // pressing ENTER on scoreboard while mouse is not on OK button, may not happen all the time - bug #6603 +	{ GID_HOYLE5,         -1,    14, -1,                 NULL, "select",                          NULL,     1, { WORKAROUND_FAKE,   0 } }, // dragging the sliders in game settings +	{ GID_HOYLE5,         -1, 64937, -1,                 NULL, "select",                          NULL,     7, { WORKAROUND_FAKE,   0 } }, // clicking the "control" and "options" buttons in the icon bar +	{ GID_HOYLE5,         -1, 64937, -1,            "IconBar", "handleEvent",                     NULL,     0, { WORKAROUND_FAKE,   0 } }, // clicking on any button in the icon bar  	{ GID_ISLANDBRAIN,   100,   937,  0,            "IconBar", "dispatchEvent",                   NULL,    58, { WORKAROUND_FAKE,   0 } }, // when using ENTER at the startup menu - bug #5241  	{ GID_ISLANDBRAIN,   140,   140,  0,              "piece", "init",                            NULL,     3, { WORKAROUND_FAKE,   1 } }, // first puzzle right at the start, some initialization variable. bnt is done on it, and it should be non-0  	{ GID_ISLANDBRAIN,   200,   268,  0,          "anElement", "select",                          NULL,     0, { WORKAROUND_FAKE,   0 } }, // elements puzzle, gets used before super TextIcon @@ -666,6 +669,12 @@ const SciWorkaroundEntry kIsObject_workarounds[] = {  	SCI_WORKAROUNDENTRY_TERMINATOR  }; +//    gameID,           room,script,lvl,          object-name, method-name,    local-call-signature, index,                workaround +const SciWorkaroundEntry kListAt_workarounds[] = { +	{ GID_HOYLE5,        100, 64999,  0,           "theHands", "at",                           NULL,     0, { WORKAROUND_FAKE, 0 } }, // After the first hand is dealt in Crazy Eights game in demo, an object is passed instead of a number +	SCI_WORKAROUNDENTRY_TERMINATOR +}; +  //    gameID,           room,script,lvl,          object-name, method-name, local-call-signature, index,                workaround  const SciWorkaroundEntry kMemory_workarounds[] = {  	{ GID_LAURABOW2,      -1,   999,  0,                   "", "export 6",                  NULL,     0, { WORKAROUND_FAKE,    0 } }, // during the intro, when exiting the train (room 160), talking to Mr. Augustini, etc. - bug #4944 diff --git a/engines/sci/engine/workarounds.h b/engines/sci/engine/workarounds.h index f93226d9c7..86b4ee2902 100644 --- a/engines/sci/engine/workarounds.h +++ b/engines/sci/engine/workarounds.h @@ -82,6 +82,7 @@ extern const SciWorkaroundEntry kGraphFillBoxForeground_workarounds[];  extern const SciWorkaroundEntry kGraphFillBoxAny_workarounds[];  extern const SciWorkaroundEntry kGraphRedrawBox_workarounds[];  extern const SciWorkaroundEntry kIsObject_workarounds[]; +extern const SciWorkaroundEntry kListAt_workarounds[];  extern const SciWorkaroundEntry kMemory_workarounds[];  extern const SciWorkaroundEntry kMoveCursor_workarounds[];  extern const SciWorkaroundEntry kNewWindow_workarounds[]; | 
