aboutsummaryrefslogtreecommitdiff
path: root/scumm/script.cpp
diff options
context:
space:
mode:
authorTorbjörn Andersson2006-01-18 11:53:07 +0000
committerTorbjörn Andersson2006-01-18 11:53:07 +0000
commit34d835e4a263f6cc0be68da94cca40c803dd9532 (patch)
treeacda69073f4c5467392209f98036c46e60ef3022 /scumm/script.cpp
parent791b5bdc6175fb3f15dbc4f10d643ac3596228e9 (diff)
downloadscummvm-rg350-34d835e4a263f6cc0be68da94cca40c803dd9532.tar.gz
scummvm-rg350-34d835e4a263f6cc0be68da94cca40c803dd9532.tar.bz2
scummvm-rg350-34d835e4a263f6cc0be68da94cca40c803dd9532.zip
Work around a script bug in Full Throttle. See bug #1407789.
svn-id: r20080
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)