diff --git a/engines/vcruise/detection.cpp b/engines/vcruise/detection.cpp index 0ca7e4d5ff2..ff29fedfc4f 100644 --- a/engines/vcruise/detection.cpp +++ b/engines/vcruise/detection.cpp @@ -70,34 +70,36 @@ public: VCruise::VCruiseGameID gameID = reinterpret_cast(adGame.desc)->gameID; - if (gameID == VCruise::GID_REAH) { - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::EN_ANY)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::NL_NLD)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::FR_FRA)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::IT_ITA)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::DE_DEU)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::PL_POL)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::ES_ESP)); - } else if (gameID == VCruise::GID_SCHIZM) { - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::EN_USA)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::EN_GRB)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::NL_NLD)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::FR_FRA)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::IT_ITA)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::DE_DEU)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::PL_POL)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::ES_ESP)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::EL_GRC)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::RU_RUS)); + if ((adGame.desc->flags & VCruise::VCRUISE_GF_FORCE_LANGUAGE) == 0) { + if (gameID == VCruise::GID_REAH) { + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::EN_ANY)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::NL_NLD)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::FR_FRA)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::IT_ITA)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::DE_DEU)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::PL_POL)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::ES_ESP)); + } else if (gameID == VCruise::GID_SCHIZM) { + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::EN_USA)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::EN_GRB)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::NL_NLD)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::FR_FRA)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::IT_ITA)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::DE_DEU)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::PL_POL)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::ES_ESP)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::EL_GRC)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::RU_RUS)); - // Steam version languages - if (adGame.desc->flags & VCruise::VCRUISE_GF_STEAM_LANGUAGES) { - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::BG_BUL)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::ZH_TWN)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::JA_JPN)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::HU_HUN)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::ZH_CHN)); - game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::CS_CZE)); + // Steam version languages + if (adGame.desc->flags & VCruise::VCRUISE_GF_STEAM_LANGUAGES) { + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::BG_BUL)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::ZH_TWN)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::JA_JPN)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::HU_HUN)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::ZH_CHN)); + game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(Common::CS_CZE)); + } } } diff --git a/engines/vcruise/detection.h b/engines/vcruise/detection.h index 3f905bb8001..00df2271d39 100644 --- a/engines/vcruise/detection.h +++ b/engines/vcruise/detection.h @@ -40,6 +40,7 @@ enum VCruiseGameFlag { VCRUISE_GF_GENTEE_PACKAGE = (1 << 3), VCRUISE_GF_STEAM_LANGUAGES = (1 << 4), + VCRUISE_GF_FORCE_LANGUAGE = (1 << 5), }; struct VCruiseGameDescription { diff --git a/engines/vcruise/detection_tables.h b/engines/vcruise/detection_tables.h index b17808d2a35..24f764ad405 100644 --- a/engines/vcruise/detection_tables.h +++ b/engines/vcruise/detection_tables.h @@ -113,6 +113,21 @@ static const VCruiseGameDescription gameDescriptions[] = { GID_REAH, Common::EN_ANY, }, + { // Reah: Face the Unknown, English digital (GOG) version + Russian VO/subtitles community patch + { + "reah", + "English Digital + Russian Community Patch", + AD_ENTRY3s("Reah.exe", "60ec19c53f1323cc7f0314f98d396283", 304128, + "0170_b.wav", "4632023ed0bab3fc800abfa5ef65ceaf", 121220, + "Speech01.txt", "a4eaace1299de1d70805532fc0643a77", 72689), + Common::RU_RUS, + Common::kPlatformWindows, + ADGF_TESTING | VCRUISE_GF_WANT_MP3 | VCRUISE_GF_FORCE_LANGUAGE, + GUIO0() + }, + GID_REAH, + Common::RU_RUS, + }, { // Schizm: Mysterious Journey, English CD Version {