aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kiewitz2015-06-13 21:47:38 +0200
committerMartin Kiewitz2015-06-13 21:47:38 +0200
commit8e789002b31b1b5e18df5fbdc2801153d9a2f6a2 (patch)
tree35875a70c8c5a66f1ef937eac928465d9aa74518
parent1e5e7243ffffb279841c5c2b34cfc3079144cf52 (diff)
downloadscummvm-rg350-8e789002b31b1b5e18df5fbdc2801153d9a2f6a2.tar.gz
scummvm-rg350-8e789002b31b1b5e18df5fbdc2801153d9a2f6a2.tar.bz2
scummvm-rg350-8e789002b31b1b5e18df5fbdc2801153d9a2f6a2.zip
SHERLOCK: 3DO: talk movie playback changes
only trigger movie playback inside Talk::doScript when scripts switch to new speaker. That way longer text won't trigger movie playback.
-rw-r--r--engines/sherlock/talk.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/engines/sherlock/talk.cpp b/engines/sherlock/talk.cpp
index 2fe9f35650..b3363ab566 100644
--- a/engines/sherlock/talk.cpp
+++ b/engines/sherlock/talk.cpp
@@ -1035,6 +1035,7 @@ void Talk::doScript(const Common::String &script) {
}
}
+ bool trigger3DOMovie = true;
uint16 subIndex = 1;
do {
@@ -1055,6 +1056,9 @@ void Talk::doScript(const Common::String &script) {
return;
case RET_CONTINUE:
continue;
+ case OP_SWITCH_SPEAKER:
+ trigger3DOMovie = true;
+ break;
default:
break;
}
@@ -1077,10 +1081,11 @@ void Talk::doScript(const Common::String &script) {
_openTalkWindow = false;
}
- if (_wait) {
+ if ((_wait) && (trigger3DOMovie)) {
// Trigger to play 3DO movie
talk3DOMovieTrigger(subIndex);
+ trigger3DOMovie = false; // wait for next switch speaker opcode
subIndex++;
}