aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorJohannes Schickel2008-04-08 18:52:27 +0000
committerJohannes Schickel2008-04-08 18:52:27 +0000
commit50c373247843370e622fde6b2b869f050465d0d4 (patch)
tree84f0212dbed2d492a969b32f8f9a8a476959ab44 /engines
parente4ddd5d5f1bc52a7fb3d82a6858ad3578f312663 (diff)
downloadscummvm-rg350-50c373247843370e622fde6b2b869f050465d0d4.tar.gz
scummvm-rg350-50c373247843370e622fde6b2b869f050465d0d4.tar.bz2
scummvm-rg350-50c373247843370e622fde6b2b869f050465d0d4.zip
- Set language to Common::UNK_LANG for multilanguage games (kyra2cd and kyra3) in detection code
- Save language changes done in menu in HoF to the config file svn-id: r31454
Diffstat (limited to 'engines')
-rw-r--r--engines/kyra/detection.cpp51
-rw-r--r--engines/kyra/kyra.h2
-rw-r--r--engines/kyra/kyra_v2.cpp22
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();
}