From 4d85ddbc28263ab140f82af1ee9dfd8326c7cfac Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Sat, 15 Oct 2005 11:03:32 +0000 Subject: Several later HE games use sprites for subtitles. svn-id: r19098 --- scumm/scumm.cpp | 16 ++++++++-------- scumm/scumm.h | 9 ++++++--- scumm/string.cpp | 7 +++++-- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index 716c1c3360..f7d2f6184b 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -315,7 +315,7 @@ static const ScummGameSettings scumm_settings[] = { // Humongous Entertainment Scumm Version ? {"freddicove", "Freddi Fish 5: The Case of the Creature of Coral Cave", GID_FREDDICOVE, 6, 99, MDT_NONE, - GF_USE_KEY | GF_NEW_COSTUMES | GF_HE_LOCALIZED | GF_16BIT_COLOR | GF_MULTIPLE_VERSIONS, Common::kPlatformWindows}, + GF_USE_KEY | GF_NEW_COSTUMES | GF_HE_LOCALIZED | GF_HE_NOSUBTITLES | GF_16BIT_COLOR | GF_MULTIPLE_VERSIONS, Common::kPlatformWindows}, {"pajama3", "Pajama Sam 3: You Are What You Eat From Your Head to Your Feet", GID_HEGAME, 6, 99, MDT_NONE, GF_USE_KEY | GF_NEW_COSTUMES | GF_HE_LOCALIZED, Common::kPlatformWindows}, {"FreddisFunShop", "Freddi Fish's One-Stop Fun Shop", GID_FUNSHOP, 6, 99, MDT_NONE, @@ -327,7 +327,7 @@ static const ScummGameSettings scumm_settings[] = { {"putttime", "Putt-Putt Travels Through Time", GID_HEGAME, 6, 99, MDT_NONE, GF_USE_KEY | GF_NEW_COSTUMES | GF_MULTIPLE_VERSIONS, Common::kPlatformWindows}, {"spyozon", "Spyfox 3: Operation Ozone", GID_HEGAME, 6, 99, MDT_NONE, - GF_USE_KEY | GF_NEW_COSTUMES | GF_HE_LOCALIZED | GF_16BIT_COLOR, Common::kPlatformWindows}, + GF_USE_KEY | GF_NEW_COSTUMES | GF_HE_NOSUBTITLES | GF_HE_LOCALIZED | GF_16BIT_COLOR, Common::kPlatformWindows}, {"baseball2001", "Backyard Baseball 2001", GID_HEGAME, 6, 99, MDT_NONE, GF_USE_KEY | GF_NEW_COSTUMES | GF_16BIT_COLOR, Common::kPlatformWindows}, @@ -338,7 +338,7 @@ static const ScummGameSettings scumm_settings[] = { {"basketball", "Backyard Basketball", GID_HEGAME, 6, 100, MDT_NONE, GF_USE_KEY | GF_NEW_COSTUMES, Common::kPlatformWindows}, {"pjgames", "Pajama Sam: Games to Play On Any Day", GID_HEGAME, 6, 100, MDT_NONE, - GF_USE_KEY | GF_NEW_COSTUMES | GF_HE_LOCALIZED | GF_16BIT_COLOR, Common::kPlatformWindows}, + GF_USE_KEY | GF_NEW_COSTUMES | GF_HE_NOSUBTITLES | GF_HE_LOCALIZED | GF_16BIT_COLOR, Common::kPlatformWindows}, // Uses smacker in external files {"BluesBirthdayDemo", "Blue's Birthday Adventure (Demo)", GID_HEGAME, 6, 98, MDT_NONE, @@ -424,15 +424,15 @@ static const ScummGameSettings multiple_versions_md5_settings[] = { GF_USE_KEY | GF_NEW_COSTUMES, Common::kPlatformWindows}, {"b8955d7d23b4972229060d1592489fef", "Freddi Fish 5: The Case of the Creature of Coral Cave (Updated)", GID_HEGAME, 6, 100, MDT_NONE, - GF_USE_KEY | GF_NEW_COSTUMES | GF_HE_LOCALIZED | GF_16BIT_COLOR, Common::kPlatformWindows}, // FreddiDZZ + GF_USE_KEY | GF_NEW_COSTUMES | GF_HE_NOSUBTITLES | GF_HE_LOCALIZED | GF_16BIT_COLOR, Common::kPlatformWindows}, // FreddiDZZ {"4ce2d5b355964bbcb5e5ce73236ef868", "Freddi Fish 5: The Case of the Creature of Coral Cave (Updated Ru)", GID_HEGAME, 6, 100, MDT_NONE, - GF_USE_KEY | GF_NEW_COSTUMES | GF_HE_LOCALIZED | GF_16BIT_COLOR, Common::kPlatformWindows}, + GF_USE_KEY | GF_NEW_COSTUMES | GF_HE_NOSUBTITLES | GF_HE_LOCALIZED | GF_16BIT_COLOR, Common::kPlatformWindows}, {"21abe302e1b1e2b66d6f5c12e241ebfd", "Freddi Fish 5: The Case of the Creature of Coral Cave (Unencrypted)", GID_HEGAME, 6, 99, MDT_NONE, - GF_NEW_COSTUMES | GF_HE_LOCALIZED | GF_16BIT_COLOR, Common::kPlatformWindows}, + GF_NEW_COSTUMES | GF_HE_NOSUBTITLES | GF_HE_LOCALIZED | GF_16BIT_COLOR, Common::kPlatformWindows}, {"45082a5c9f42ba14dacfe1fdeeba819d", "Freddi Fish 5: The Case of the Creature of Coral Cave (Demo)", GID_FREDDICOVE, 6, 100, MDT_NONE, - GF_USE_KEY | GF_NEW_COSTUMES | GF_HE_LOCALIZED | GF_16BIT_COLOR, Common::kPlatformWindows}, + GF_USE_KEY | GF_NEW_COSTUMES | GF_HE_NOSUBTITLES | GF_HE_LOCALIZED | GF_16BIT_COLOR, Common::kPlatformWindows}, {"6b257bb2827dd894b8109a50a1a18b5a", "Freddi Fish 5: The Case of the Creature of Coral Cave (Demo)", GID_FREDDICOVE, 6, 100, MDT_NONE, - GF_USE_KEY | GF_NEW_COSTUMES | GF_HE_LOCALIZED | GF_16BIT_COLOR, Common::kPlatformWindows}, + GF_USE_KEY | GF_NEW_COSTUMES | GF_HE_NOSUBTITLES | GF_HE_LOCALIZED | GF_16BIT_COLOR, Common::kPlatformWindows}, {"4dbff3787aedcd96b0b325f2d92d7ad9", "Freddi Fish and Luther's Maze Madness (Updated)", GID_HEGAME, 6, 100, MDT_NONE, GF_USE_KEY | GF_NEW_COSTUMES, Common::kPlatformWindows}, diff --git a/scumm/scumm.h b/scumm/scumm.h index 6a8ca85ab8..b2e9177cab 100644 --- a/scumm/scumm.h +++ b/scumm/scumm.h @@ -124,16 +124,19 @@ enum GameFeatures { * HE Games with more global scripts and different sprite handling * i.e. read it as HE version 9.85. Used for HE98 only. */ - GF_HE_985 = 1 << 14, + GF_HE_985 = 1 << 14, /** HE games with 16 bit color */ GF_16BIT_COLOR = 1 << 15, + /** HE games which use sprites for subtitles */ + GF_HE_NOSUBTITLES = 1 << 16, + /** Games with multiple versions */ - GF_MULTIPLE_VERSIONS = 1 << 16, + GF_MULTIPLE_VERSIONS = 1 << 17, /** A demo, not a full blown game. */ - GF_DEMO = 1 << 17 + GF_DEMO = 1 << 18 }; /* SCUMM Debug Channels */ diff --git a/scumm/string.cpp b/scumm/string.cpp index 773d19782b..3cd7777adf 100644 --- a/scumm/string.cpp +++ b/scumm/string.cpp @@ -404,7 +404,9 @@ loc_avoid_ks_fe: if (_version <= 3) { _charset->printChar(c); } else { - if ((_imuseDigital && _sound->isSoundRunning(kTalkSoundID)) && (!ConfMan.getBool("subtitles") || VAR(VAR_VOICE_MODE) == 0)) { + if (_features & GF_HE_NOSUBTITLES) { + // HE games which use sprites for subtitles + } else if ((_imuseDigital && _sound->isSoundRunning(kTalkSoundID)) && (!ConfMan.getBool("subtitles") || VAR(VAR_VOICE_MODE) == 0)) { // Special case for games using imuse digital.for sound } else if (_heversion >= 60 && !ConfMan.getBool("subtitles") && _sound->isSoundRunning(1)) { // Special case for HE games @@ -413,8 +415,9 @@ loc_avoid_ks_fe: } else if (!ConfMan.getBool("subtitles") && (_haveMsg == 0xFE || _mixer->isSoundHandleActive(_sound->_talkChannelHandle))) { // Subtitles are turned off, and there is a voice version // of this message -> don't print it. - } else + } else { _charset->printChar(c); + } } if (cmi_pos_hack) { cmi_pos_hack = false; -- cgit v1.2.3