diff options
author | Martin Kiewitz | 2010-07-28 16:18:03 +0000 |
---|---|---|
committer | Martin Kiewitz | 2010-07-28 16:18:03 +0000 |
commit | 163f0cf7b5e1f6c21d75e31483bc1b23f7a74bfb (patch) | |
tree | 34b7d3a0d4333b91b64f1aec71599983345db6f4 | |
parent | 3f5958af78797e1b99ebefafbce38fecfbb27d39 (diff) | |
download | scummvm-rg350-163f0cf7b5e1f6c21d75e31483bc1b23f7a74bfb.tar.gz scummvm-rg350-163f0cf7b5e1f6c21d75e31483bc1b23f7a74bfb.tar.bz2 scummvm-rg350-163f0cf7b5e1f6c21d75e31483bc1b23f7a74bfb.zip |
SCI: eq1 workaround compression and new ones
svn-id: r51426
-rw-r--r-- | engines/sci/engine/workarounds.cpp | 15 |
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 |