From 34272e2529faf823097280706f699e966290870c Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Thu, 18 Nov 2010 22:46:29 +0000 Subject: SCI: Added a stub for a new subop in kString, and disabled trackOriginAndFindWorkaround() for SCI3 games for now svn-id: r54352 --- engines/sci/engine/kstring.cpp | 3 +++ engines/sci/engine/workarounds.cpp | 9 +++++++++ 2 files changed, 12 insertions(+) (limited to 'engines/sci') diff --git a/engines/sci/engine/kstring.cpp b/engines/sci/engine/kstring.cpp index 5ea3178ae5..276f121edf 100644 --- a/engines/sci/engine/kstring.cpp +++ b/engines/sci/engine/kstring.cpp @@ -780,6 +780,9 @@ reg_t kString(EngineState *s, int argc, reg_t *argv) { Common::String string = s->_segMan->getString(argv[1]); return make_reg(0, (uint16)atoi(string.c_str())); } + case 14: // Unknown (SCI3) + warning("Unknown kString subop %d", argv[0].toUint16()); + return NULL_REG; default: error("Unknown kString subop %d", argv[0].toUint16()); } diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp index ace9f6d9ac..bed057979e 100644 --- a/engines/sci/engine/workarounds.cpp +++ b/engines/sci/engine/workarounds.cpp @@ -437,6 +437,15 @@ const SciWorkaroundEntry kUnLoad_workarounds[] = { }; SciWorkaroundSolution trackOriginAndFindWorkaround(int index, const SciWorkaroundEntry *workaroundList, SciTrackOriginReply *trackOrigin) { + // HACK for SCI3: Temporarily ignore this + if (getSciVersion() == SCI_VERSION_3) { + warning("SCI3 HACK: trackOriginAndFindWorkaround() called, ignoring"); + SciWorkaroundSolution sci3IgnoreForNow; + sci3IgnoreForNow.type = WORKAROUND_FAKE; + sci3IgnoreForNow.value = 0; + return sci3IgnoreForNow; + } + EngineState *state = g_sci->getEngineState(); ExecStack *lastCall = state->xs; Script *local_script = state->_segMan->getScriptIfLoaded(lastCall->local_segment); -- cgit v1.2.3