From 0b6bd84aba372076c450dfefa89752a3c7778bae Mon Sep 17 00:00:00 2001 From: Martin Kiewitz Date: Sun, 27 Jun 2010 11:19:23 +0000 Subject: SCI: adding uninit workaround for lsl6 (Narrator::startText) svn-id: r50373 --- engines/sci/engine/vm.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'engines/sci/engine') diff --git a/engines/sci/engine/vm.cpp b/engines/sci/engine/vm.cpp index c4c77e16de..a6caa1e251 100644 --- a/engines/sci/engine/vm.cpp +++ b/engines/sci/engine/vm.cpp @@ -199,6 +199,7 @@ static const UninitializedReadWorkaround uninitializedReadWorkarounds[] = { { GID_FREDDYPHARKAS, 24, "gcWin", "open", -1, 5, 0xf }, // is used as priority for game menu { GID_FREDDYPHARKAS, 31, "quitWin", "open", -1, 5, 0xf }, // is used as priority for game menu { GID_LSL1, 720, "rm720", "init", -1, 0, 0 }, // age check room + { GID_LSL6, 928, "*", "startText", -1, 0, 0 }, // used by various objects that are even translated in foreign versions (actually Narrator::startText) { GID_ISLANDBRAIN, 140, "piece", "init", -1, 3, 1 }, // first puzzle right at the start, some initialization variable. bnt is done on it, and it should be non-0 { GID_ISLANDBRAIN, 268, "anElement", "select", -1, 0, 0 }, // elements puzzle, gets used before super TextIcon { GID_KQ5, 0, "", "export 29", -1, 3, 0 }, // called when playing harp for the harpies, is used for kDoAudio @@ -249,7 +250,7 @@ static reg_t validate_read_var(reg_t *r, reg_t *stack_base, int type, int max, i // Search if this is a known uninitialized read const UninitializedReadWorkaround *workaround = uninitializedReadWorkarounds; while (workaround->objectName) { - if (workaround->gameId == gameId && workaround->scriptNr == curScriptNr && workaround->objectName == curObjectName + if (workaround->gameId == gameId && workaround->scriptNr == curScriptNr && ((workaround->objectName == curObjectName) || (*workaround->objectName == '*')) && workaround->methodName == curMethodName && workaround->localCallOffset == lastCall->localCallOffset && workaround->index == index) { // Workaround found r[index] = make_reg(0, workaround->newValue); -- cgit v1.2.3