aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2005-10-15 11:03:32 +0000
committerTravis Howell2005-10-15 11:03:32 +0000
commit4d85ddbc28263ab140f82af1ee9dfd8326c7cfac (patch)
treeb0ee82b8077a9951fd0e0fc57e97fcf97dc01b1d
parentdca6f248eea71c2674a8475860c6c2129cf58a4d (diff)
downloadscummvm-rg350-4d85ddbc28263ab140f82af1ee9dfd8326c7cfac.tar.gz
scummvm-rg350-4d85ddbc28263ab140f82af1ee9dfd8326c7cfac.tar.bz2
scummvm-rg350-4d85ddbc28263ab140f82af1ee9dfd8326c7cfac.zip
Several later HE games use sprites for subtitles.
svn-id: r19098
-rw-r--r--scumm/scumm.cpp16
-rw-r--r--scumm/scumm.h9
-rw-r--r--scumm/string.cpp7
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;