aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorMartin Kiewitz2010-07-18 04:56:16 +0000
committerMartin Kiewitz2010-07-18 04:56:16 +0000
commit59bb9f8fe82432b35de103f7e705d91fde3f3f2a (patch)
treeca0999e5f4805956a8d1c041151b073c94903d50 /engines/sci/engine
parent525794927ed57fd18d3e713a5869f8fcde5ae2a9 (diff)
downloadscummvm-rg350-59bb9f8fe82432b35de103f7e705d91fde3f3f2a.tar.gz
scummvm-rg350-59bb9f8fe82432b35de103f7e705d91fde3f3f2a.tar.bz2
scummvm-rg350-59bb9f8fe82432b35de103f7e705d91fde3f3f2a.zip
SCI: added uninitialized workarounds for hoyle 3
svn-id: r50978
Diffstat (limited to 'engines/sci/engine')
-rw-r--r--engines/sci/engine/vm.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/engines/sci/engine/vm.cpp b/engines/sci/engine/vm.cpp
index e066170715..9fcf95f4d0 100644
--- a/engines/sci/engine/vm.cpp
+++ b/engines/sci/engine/vm.cpp
@@ -314,7 +314,8 @@ static reg_t trackOriginAndFindWorkaround(int index, const SciWorkaroundEntry *w
if (workaround->gameId == gameId && workaround->scriptNr == curScriptNr
&& ((workaround->inheritanceLevel == -1) || (workaround->inheritanceLevel == inheritanceLevel))
&& (workaround->objectName == searchObjectName)
- && workaround->methodName == curMethodName && workaround->localCallOffset == lastCall->debugLocalCallOffset && workaround->index == index) {
+ && workaround->methodName == curMethodName && workaround->localCallOffset == lastCall->debugLocalCallOffset
+ && ((workaround->index == -1) || (workaround->index == index))) {
// Workaround found
return workaround->newValue;
}
@@ -366,6 +367,9 @@ static const SciWorkaroundEntry uninitializedReadWorkarounds[] = {
{ GID_FREDDYPHARKAS, 31, 0, "quitWin", "open", -1, 5, { 0, 0xf } }, // is used as priority for game menu
{ GID_GK1, 64950, 1, "Feature", "handleEvent", -1, 0, { 0, 0 } }, // sometimes when walk-clicking
{ GID_GK2, 11, 0, "", "export 10", -1, 3, { 0, 0 } }, // called when the game starts
+ { GID_HOYLE3, 0, 1, "Character", "say", -1, 504, { 0, 0 } }, // when starting checkers, first time a character says something
+ { GID_HOYLE3, 0, 1, "Character", "say", -1, 505, { 0, 0 } }, // when starting checkers, first time a character says something
+ { GID_HOYLE3, 700, 0, "gcWindow", "open", -1, -1, { 0, 0 } }, // when entering control menu
{ GID_ISLANDBRAIN, 140, 0, "piece", "init", -1, 3, { 0, 1 } }, // first puzzle right at the start, some initialization variable. bnt is done on it, and it should be non-0
{ GID_ISLANDBRAIN, 268, 0, "anElement", "select", -1, 0, { 0, 0 } }, // elements puzzle, gets used before super TextIcon
{ GID_JONES, 232, 0, "weekendText", "draw", 0x3d3, 0, { 0, 0 } }, // jones/cd only - gets called during the game