aboutsummaryrefslogtreecommitdiff
path: root/sky/sky.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sky/sky.cpp')
-rw-r--r--sky/sky.cpp43
1 files changed, 25 insertions, 18 deletions
diff --git a/sky/sky.cpp b/sky/sky.cpp
index 730553828f..8337556db5 100644
--- a/sky/sky.cpp
+++ b/sky/sky.cpp
@@ -137,20 +137,6 @@ void SkyEngine::initVirgin() {
_skyScreen->showScreen(60110);
}
-uint8 SkyEngine::_languageTable[11] = {
- SKY_USA, // EN_USA
- SKY_GERMAN, // DE_DEU
- SKY_FRENCH, // FR_FRA
- SKY_ITALIAN, // IT_ITA
- SKY_PORTUGUESE, // PT_BRA
- SKY_SPANISH, // ES_ESP
- SKY_USA, // JA_JPN
- SKY_USA, // ZH_TWN
- SKY_USA, // KO_KOR
- SKY_SWEDISH, // SE_SWE
- SKY_ENGLISH // EN_GRB
-};
-
void SkyEngine::doCheat(uint8 num) {
switch(num) {
@@ -297,11 +283,32 @@ void SkyEngine::initialise(void) {
if (_systemVars.gameVersion == 288)
SkyCompact::patchFor288();
- int language = GameDetector::parseLanguage(ConfMan.get("language"));
- if (language < 0 || language > 10)
+ switch (Common::parseLanguage(ConfMan.get("language"))) {
+ case Common::DE_DEU:
+ _systemVars.language = SKY_GERMAN;
+ break;
+ case Common::FR_FRA:
+ _systemVars.language = SKY_FRENCH;
+ break;
+ case Common::IT_ITA:
+ _systemVars.language = SKY_ITALIAN;
+ break;
+ case Common::PT_BRA:
+ _systemVars.language = SKY_PORTUGUESE;
+ break;
+ case Common::ES_ESP:
+ _systemVars.language = SKY_SPANISH;
+ break;
+ case Common::SE_SWE:
+ _systemVars.language = SKY_SWEDISH;
+ break;
+ case Common::EN_GRB:
+ _systemVars.language = SKY_ENGLISH;
+ break;
+ default:
_systemVars.language = SKY_USA;
- else
- _systemVars.language = _languageTable[language];
+ break;
+ }
if (!_skyDisk->fileExists(60600 + SkyEngine::_systemVars.language * 8)) {
warning("The language you selected does not exist in your BASS version.");