aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/message.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2013-02-17 20:45:16 +0200
committerFilippos Karapetis2013-02-17 20:45:16 +0200
commit61ec6c998ff839900ce3157c324a133dfbaae4c0 (patch)
tree70b74842842aef3cd99ba637f421358f7121d90c /engines/sci/engine/message.cpp
parentd830b27404b41850be99b49b33da1654a5ba614c (diff)
downloadscummvm-rg350-61ec6c998ff839900ce3157c324a133dfbaae4c0.tar.gz
scummvm-rg350-61ec6c998ff839900ce3157c324a133dfbaae4c0.tar.bz2
scummvm-rg350-61ec6c998ff839900ce3157c324a133dfbaae4c0.zip
SCI: Fix bug #3538416 - "SCI: SQ4 CD text glitches in introduction"
Diffstat (limited to 'engines/sci/engine/message.cpp')
-rw-r--r--engines/sci/engine/message.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/engines/sci/engine/message.cpp b/engines/sci/engine/message.cpp
index b333d15a8e..10f8094423 100644
--- a/engines/sci/engine/message.cpp
+++ b/engines/sci/engine/message.cpp
@@ -210,6 +210,25 @@ bool MessageState::getRecord(CursorStack &stack, bool recurse, MessageRecord &re
t.verb = 2;
}
+ // Fill in known missing message tuples
+ if (g_sci->getGameId() == GID_SQ4 && stack.getModule() == 16 &&
+ t.noun == 7 && t.verb == 0 && t.cond == 3 && t.seq == 1) {
+ // This fixes the error message shown when speech and subtitles are
+ // enabled simultaneously in SQ4 - the (very) long dialog when Roger
+ // is talking with the aliens is missing - bug #3538416.
+ record.tuple = t;
+ record.refTuple = MessageTuple();
+ record.talker = 7; // Roger
+ // The missing text is just too big to fit in one speech bubble, and
+ // if it's added here manually and drawn on screen, it's painted over
+ // the entrance in the back where the Sequel Police enters, so it
+ // looks very ugly. Perhaps this is why this particular text is missing,
+ // as the text shown in this screen is very short (one-liners).
+ // Just output an empty string here instead of showing an error.
+ record.string = "";
+ return true;
+ }
+
if (!reader->findRecord(t, record)) {
// Tuple not found
if (recurse && (stack.size() > 1)) {