diff options
Diffstat (limited to 'engines/sci')
-rw-r--r-- | engines/sci/engine/kstring.cpp | 3 | ||||
-rw-r--r-- | engines/sci/engine/workarounds.cpp | 9 |
2 files changed, 12 insertions, 0 deletions
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); |