From 056288f87a2e5ad5251c81901320b2b14ca22443 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Sat, 5 Jul 2008 08:20:10 +0000 Subject: Added support for Italian fan translation of Kyrandia 3. (see fr#2003504 "KYRA: add support for Italian version of Kyrandia 2&3") svn-id: r32912 --- engines/kyra/detection.cpp | 46 ++++++++++++++++++++++++++++++++++++++++++++++ engines/kyra/kyra_mr.cpp | 3 +++ engines/kyra/kyra_mr.h | 1 + engines/kyra/kyra_v1.cpp | 10 ++++++++-- engines/kyra/staticres.cpp | 7 +++++++ 5 files changed, 65 insertions(+), 2 deletions(-) diff --git a/engines/kyra/detection.cpp b/engines/kyra/detection.cpp index f55cd1ac5e..0c8acb59b7 100644 --- a/engines/kyra/detection.cpp +++ b/engines/kyra/detection.cpp @@ -654,6 +654,52 @@ const KYRAGameDescription adGameDescs[] = { KYRA3_CD_FAN_FLAGS(Common::ES_ESP, Common::EN_ANY) }, + // Itlian fan translation, see fr#2003504 "KYRA: add support for Italian version of Kyrandia 2&3" + { + { + "kyra3", + 0, + { + { "ONETIME.PAK", 0, "ee2d4d056a5de5333a3c6bda055b3cb4", -1 }, + { "AUD.PAK", 0, 0, -1 }, + { 0, 0, 0, 0 } + }, + Common::EN_ANY, + Common::kPlatformPC, + Common::ADGF_DROPLANGUAGE + }, + KYRA3_CD_FAN_FLAGS(Common::IT_ITA, Common::FR_FRA) + }, + { + { + "kyra3", + 0, + { + { "ONETIME.PAK", 0, "ee2d4d056a5de5333a3c6bda055b3cb4", -1 }, + { "AUD.PAK", 0, 0, -1 }, + { 0, 0, 0, 0 } + }, + Common::DE_DEU, + Common::kPlatformPC, + Common::ADGF_DROPLANGUAGE + }, + KYRA3_CD_FAN_FLAGS(Common::IT_ITA, Common::FR_FRA) + }, + { + { + "kyra3", + 0, + { + { "ONETIME.PAK", 0, "ee2d4d056a5de5333a3c6bda055b3cb4", -1 }, + { "AUD.PAK", 0, 0, -1 }, + { 0, 0, 0, 0 } + }, + Common::IT_ITA, + Common::kPlatformPC, + Common::ADGF_DROPLANGUAGE + }, + KYRA3_CD_FAN_FLAGS(Common::IT_ITA, Common::FR_FRA) + }, { AD_TABLE_END_MARKER, FLAGS(0, 0, 0, 0, 0, 0, 0) } }; diff --git a/engines/kyra/kyra_mr.cpp b/engines/kyra/kyra_mr.cpp index 3d1b09561d..a4e5b58364 100644 --- a/engines/kyra/kyra_mr.cpp +++ b/engines/kyra/kyra_mr.cpp @@ -346,6 +346,9 @@ void KyraEngine_MR::initMainMenu() { if (_flags.lang == Common::ES_ESP) { for (int i = 0; i < 4; ++i) data.strings[i] = _mainMenuSpanishFan[i]; + } else if (_flags.lang == Common::IT_ITA) { + for (int i = 0; i < 4; ++i) + data.strings[i] = _mainMenuItalianFan[i]; } MainMenu::Animation anim; diff --git a/engines/kyra/kyra_mr.h b/engines/kyra/kyra_mr.h index aa103b167b..5f9f6f91a3 100644 --- a/engines/kyra/kyra_mr.h +++ b/engines/kyra/kyra_mr.h @@ -188,6 +188,7 @@ private: int _mainMenuStringsSize; static const char * const _mainMenuSpanishFan[]; + static const char * const _mainMenuItalianFan[]; // animator uint8 *_gamePlayBuffer; diff --git a/engines/kyra/kyra_v1.cpp b/engines/kyra/kyra_v1.cpp index d2e0f37a60..117194aea2 100644 --- a/engines/kyra/kyra_v1.cpp +++ b/engines/kyra/kyra_v1.cpp @@ -247,8 +247,14 @@ void KyraEngine_v1::delayWithTicks(int ticks) { void KyraEngine_v1::registerDefaultSettings() { if (_flags.gameID != GI_KYRA3) ConfMan.registerDefault("cdaudio", (_flags.platform == Common::kPlatformFMTowns || _flags.platform == Common::kPlatformPC98)); - if (_flags.fanLang != Common::UNK_LANG) - ConfMan.registerDefault("subtitles", true); + if (_flags.fanLang != Common::UNK_LANG) { + // HACK/WORKAROUND: Since we can't use registerDefault here to overwrite + // the global subtitles settings, we're using this hack to enable subtitles + // for fan translations + const Common::ConfigManager::Domain *cur = ConfMan.getActiveDomain(); + if (!cur || (cur && cur->get("subtitles").empty())) + ConfMan.setBool("subtitles", true); + } } void KyraEngine_v1::readSettings() { diff --git a/engines/kyra/staticres.cpp b/engines/kyra/staticres.cpp index a25fe4b295..1997039c4a 100644 --- a/engines/kyra/staticres.cpp +++ b/engines/kyra/staticres.cpp @@ -1987,6 +1987,13 @@ const char * const KyraEngine_MR::_mainMenuSpanishFan[] = { "Finalizar" }; +const char * const KyraEngine_MR::_mainMenuItalianFan[] = { + "Nuova Partita", + "Introduzione", + "Carica una partita", + "Esci dal gioco" +}; + const int KyraEngine_MR::_languageExtensionSize = ARRAYSIZE(KyraEngine_MR::_languageExtension); const KyraEngine_MR::ShapeDesc KyraEngine_MR::_shapeDescs[] = { -- cgit v1.2.3