diff options
| -rw-r--r-- | engines/kyra/detection.cpp | 51 | ||||
| -rw-r--r-- | engines/kyra/kyra.h | 2 | ||||
| -rw-r--r-- | engines/kyra/kyra_v2.cpp | 22 |
3 files changed, 29 insertions, 46 deletions
diff --git a/engines/kyra/detection.cpp b/engines/kyra/detection.cpp index 3818990ecc..b814d75924 100644 --- a/engines/kyra/detection.cpp +++ b/engines/kyra/detection.cpp @@ -301,29 +301,7 @@ const KYRAGameDescription adGameDescs[] = { "kyra2", "CD", AD_ENTRY1("FATE.PAK", "28cbad1c5bf06b2d3825ae57d760d032"), - Common::EN_ANY, - Common::kPlatformPC, - Common::ADGF_NO_FLAGS - }, - KYRA2_CD_FLAGS - }, - { - { - "kyra2", - "CD", - AD_ENTRY1("FATE.PAK", "28cbad1c5bf06b2d3825ae57d760d032"), - Common::DE_DEU, - Common::kPlatformPC, - Common::ADGF_NO_FLAGS - }, - KYRA2_CD_FLAGS - }, - { - { - "kyra2", - "CD", - AD_ENTRY1("FATE.PAK", "28cbad1c5bf06b2d3825ae57d760d032"), - Common::FR_FRA, + Common::UNK_LANG, Common::kPlatformPC, Common::ADGF_NO_FLAGS }, @@ -382,29 +360,7 @@ const KYRAGameDescription adGameDescs[] = { "kyra3", 0, AD_ENTRY1("ONETIME.PAK", "3833ff312757b8e6147f464cca0a6587"), - Common::EN_ANY, - Common::kPlatformPC, - Common::ADGF_NO_FLAGS - }, - KYRA3_CD_FLAGS - }, - { - { - "kyra3", - 0, - AD_ENTRY1("ONETIME.PAK", "3833ff312757b8e6147f464cca0a6587"), - Common::DE_DEU, - Common::kPlatformPC, - Common::ADGF_NO_FLAGS - }, - KYRA3_CD_FLAGS - }, - { - { - "kyra3", - 0, - AD_ENTRY1("ONETIME.PAK", "3833ff312757b8e6147f464cca0a6587"), - Common::FR_FRA, + Common::UNK_LANG, Common::kPlatformPC, Common::ADGF_NO_FLAGS }, @@ -480,6 +436,9 @@ bool KyraMetaEngine::createInstance(OSystem *syst, Engine **engine, const Common flags.lang = Common::EN_ANY; } + if (flags.lang == Common::EN_USA || flags.lang == Common::EN_GRB) + flags.lang = Common::EN_ANY; + switch (flags.gameID) { case Kyra::GI_KYRA1: *engine = new Kyra::KyraEngine_v1(syst, flags); diff --git a/engines/kyra/kyra.h b/engines/kyra/kyra.h index 03aaf2915c..1122919502 100644 --- a/engines/kyra/kyra.h +++ b/engines/kyra/kyra.h @@ -205,6 +205,8 @@ protected: GameFlags _flags; int _lang; + void updateLanguage(); + // opcode virtual void setupOpcodeTable() = 0; Common::Array<const Opcode*> _opcodes; diff --git a/engines/kyra/kyra_v2.cpp b/engines/kyra/kyra_v2.cpp index 2a73366124..a4adf26798 100644 --- a/engines/kyra/kyra_v2.cpp +++ b/engines/kyra/kyra_v2.cpp @@ -2261,6 +2261,28 @@ void KyraEngine_v2::registerDefaultSettings() { void KyraEngine_v2::writeSettings() { ConfMan.setInt("talkspeed", ((_configTextspeed-2) * 255) / 95); + + switch (_lang) { + case 1: + _flags.lang = Common::FR_FRA; + break; + + case 2: + _flags.lang = Common::DE_DEU; + break; + + case 3: + _flags.lang = Common::JA_JPN; + break; + + case 0: + default: + _flags.lang = Common::EN_ANY; + break; + } + + ConfMan.set("language", Common::getLanguageCode(_flags.lang)); + KyraEngine::writeSettings(); } |
