aboutsummaryrefslogtreecommitdiff
path: root/scumm/script.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scumm/script.cpp')
-rw-r--r--scumm/script.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/scumm/script.cpp b/scumm/script.cpp
index 534d34074e..f74571f6db 100644
--- a/scumm/script.cpp
+++ b/scumm/script.cpp
@@ -1083,6 +1083,14 @@ void ScummEngine::checkAndRunSentenceScript() {
localParamList[0] = _sentence[_sentenceNum].verb;
localParamList[1] = _sentence[_sentenceNum].objectA;
localParamList[2] = _sentence[_sentenceNum].objectB;
+
+ // WORKAROUND for bug #1407789. The script clearly assumes that
+ // one of the two objects is an actor. If that's not the case,
+ // fall back on what appears to be the usual sentence script.
+
+ if (_gameId == GID_FT && sentenceScript == 103 && !isValidActor(localParamList[1]) && !isValidActor(localParamList[2])) {
+ sentenceScript = 28;
+ }
}
_currentScript = 0xFF;
if (sentenceScript)