aboutsummaryrefslogtreecommitdiff
path: root/scumm/scumm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scumm/scumm.cpp')
-rw-r--r--scumm/scumm.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp
index 704266e45f..6783f4062b 100644
--- a/scumm/scumm.cpp
+++ b/scumm/scumm.cpp
@@ -962,6 +962,32 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS
if (!elem)
printf("Unknown MD5 (%s)! Please report the details (language, platform, etc.) of this game to the ScummVM team\n", md5str);
+ if (_gameId == GID_FT) {
+ // WORKAROUND for bug #1407789. See checkAndRunSentenceScript()
+ // for the actual workaround.
+
+ // FIXME: We do not yet have all necessary information, but the
+ // following is known:
+ //
+ // * The US PC version uses scripts 28 and 103.
+ // * The French PC version uses scripts 29 and 104.
+ // * The German, Italian, Portuguese and Spanish PC versions
+ // use script 29. The other script is not currently known.
+ // * The US Mac demo uses script 28.
+ //
+ // For now, assume that the PC and Mac versions are the same,
+ // that all localized versions use scripts 29 and 104, and that
+ // any completely unknown version is localized.
+
+ if (elem && elem->language == Common::EN_USA) {
+ _defaultFTSentenceScript = 28;
+ _buggyFTSentenceScript = 103;
+ } else {
+ _defaultFTSentenceScript = 29;
+ _buggyFTSentenceScript = 104;
+ }
+ }
+
// Add default file directories.
if (((_platform == Common::kPlatformAmiga) || (_platform == Common::kPlatformAtariST)) && (_version <= 4)) {
// This is for the Amiga version of Indy3/Loom/Maniac/Zak