aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/engine/workarounds.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp
index 865640878a..04030b001e 100644
--- a/engines/sci/engine/workarounds.cpp
+++ b/engines/sci/engine/workarounds.cpp
@@ -58,14 +58,11 @@ const SciWorkaroundEntry uninitializedReadWorkarounds[] = {
{ GID_CNICK_KQ, 200, 0, 1, "Character", "<noname 446>", -1, 505, { WORKAROUND_FAKE, 0 } }, // checkers, like in hoyle 3
{ GID_CNICK_KQ, -1, 700, 0, "gcWindow", "<noname 183>", -1, -1, { WORKAROUND_FAKE, 0 } }, // when entering control menu, like in hoyle 3
{ GID_CNICK_LONGBOW, 0, 0, 0, "RH Budget", "<noname 110>", -1, 1, { WORKAROUND_FAKE, 0 } }, // when starting the game
- { GID_ECOQUEST, 140, 140, 0, "rm140", "doVerb", -1, 0, { WORKAROUND_FAKE, 0 } }, // when solving the mosaic puzzle
- { GID_ECOQUEST, 140, 140, 0, "mosaicPuzzle", "doVerb", -1, 0, { WORKAROUND_FAKE, 0 } }, // when solving the mosaic puzzle
+ { GID_ECOQUEST, 140, 140, 0, NULL, "doVerb", -1, 0, { WORKAROUND_FAKE, 0 } }, // when solving the mosaic puzzle
{ GID_ECOQUEST, 160, 160, 0, "seatedSenator", "doVerb", -1, 0, { WORKAROUND_FAKE, 0 } }, // when clicking on the senator
- { GID_ECOQUEST, 400, 400, 0, "cabinet", "doVerb", -1, 0, { WORKAROUND_FAKE, 0 } }, // when looking at the cabinet
- { GID_ECOQUEST, 400, 400, 0, "certUpper", "doVerb", -1, 0, { WORKAROUND_FAKE, 0 } }, // when looking at the certificate
- { GID_ECOQUEST, 400, 400, 0, "computer", "doVerb", -1, 0, { WORKAROUND_FAKE, 0 } }, // when looking at the computer
- { GID_ECOQUEST, 400, 400, 0, "photo", "doVerb", -1, 0, { WORKAROUND_FAKE, 0 } }, // when looking at the photo
- { GID_ECOQUEST, 400, 400, 0, "rug", "doVerb", -1, 0, { WORKAROUND_FAKE, 0 } }, // when looking at the rug
+ { GID_ECOQUEST, 180, 180, 0, NULL, "doVerb", -1, 0, { WORKAROUND_FAKE, 0 } }, // when clicking on the plant/coral
+ { GID_ECOQUEST, 200, 200, 0, NULL, "doVerb", -1, 0, { WORKAROUND_FAKE, 0 } }, // when clicking on moss or other things :P
+ { GID_ECOQUEST, 400, 400, 0, NULL, "doVerb", -1, 0, { WORKAROUND_FAKE, 0 } }, // when looking at the cabinet/certificate/computer/photo/rug
{ GID_FREDDYPHARKAS, -1, 24, 0, "gcWin", "open", -1, 5, { WORKAROUND_FAKE, 0xf } }, // is used as priority for game menu
{ GID_FREDDYPHARKAS, -1, 31, 0, "quitWin", "open", -1, 5, { WORKAROUND_FAKE, 0xf } }, // is used as priority for game menu
{ GID_GK1, -1, 64950, 1, "Feature", "handleEvent", -1, 0, { WORKAROUND_FAKE, 0 } }, // sometimes when walk-clicking
@@ -319,11 +316,11 @@ SciWorkaroundSolution trackOriginAndFindWorkaround(int index, const SciWorkaroun
reg_t searchObject = lastCall->sendp;
do {
workaround = workaroundList;
- while (workaround->objectName) {
+ while (workaround->methodName) {
if (workaround->gameId == gameId && workaround->scriptNr == curScriptNr
&& ((workaround->roomNr == -1) || (workaround->roomNr == curRoomNumber))
&& ((workaround->inheritanceLevel == -1) || (workaround->inheritanceLevel == inheritanceLevel))
- && (workaround->objectName == searchObjectName)
+ && ((workaround->objectName == NULL) || (workaround->objectName == searchObjectName))
&& workaround->methodName == curMethodName && workaround->localCallOffset == lastCall->debugLocalCallOffset
&& ((workaround->index == -1) || (workaround->index == index))) {
// Workaround found