aboutsummaryrefslogtreecommitdiff
path: root/sky
diff options
context:
space:
mode:
authorRobert Göffringmann2003-07-12 15:26:07 +0000
committerRobert Göffringmann2003-07-12 15:26:07 +0000
commit7c92fb40aec2a20c22bf889a46d3c3177b7a9cae (patch)
treed5757f36300e89a5dc5f0d09fc64808786b0cd75 /sky
parent5825d77e3746a9d11b940e9b0345eb53a60ea2bd (diff)
downloadscummvm-rg350-7c92fb40aec2a20c22bf889a46d3c3177b7a9cae.tar.gz
scummvm-rg350-7c92fb40aec2a20c22bf889a46d3c3177b7a9cae.tar.bz2
scummvm-rg350-7c92fb40aec2a20c22bf889a46d3c3177b7a9cae.zip
try all languages, if selected one can't be found.
svn-id: r8946
Diffstat (limited to 'sky')
-rw-r--r--sky/sky.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/sky/sky.cpp b/sky/sky.cpp
index 1fa9c2d063..ba08c1a750 100644
--- a/sky/sky.cpp
+++ b/sky/sky.cpp
@@ -177,7 +177,7 @@ void SkyState::go() {
bool introSkipped = false;
if (!_quickLaunch) {
- if (_systemVars.gameVersion != 267) // don't do intro for floppydemo
+ if (_systemVars.gameVersion <= 267) // don't do intro for floppydemos
introSkipped = !intro();
_skyDisk->flushPrefetched();
@@ -270,8 +270,17 @@ void SkyState::initialise(void) {
_systemVars.language = _languageTable[_detector->_language];
if (!_skyDisk->fileExists(60600 + SkyState::_systemVars.language * 8)) {
- warning("The language you selected does not exist in your BASS version.\nSwitching to english.");
- SkyState::_systemVars.language = SKY_ENGLISH;
+ warning("The language you selected does not exist in your BASS version.");
+ if (_skyDisk->fileExists(60600))
+ SkyState::_systemVars.language = SKY_ENGLISH;
+ else if (_skyDisk->fileExists(60600 + SKY_USA * 8))
+ SkyState::_systemVars.language = SKY_USA;
+ else
+ for (uint8 cnt = SKY_ENGLISH; cnt <= SKY_SPANISH; cnt++)
+ if (_skyDisk->fileExists(60600 + cnt * 8)) {
+ SkyState::_systemVars.language = cnt;
+ break;
+ }
}
uint16 result = 0;