diff options
Diffstat (limited to 'scumm/script.cpp')
-rw-r--r-- | scumm/script.cpp | 8 |
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) |