aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Göffringmann2003-07-08 22:08:29 +0000
committerRobert Göffringmann2003-07-08 22:08:29 +0000
commit3d9b20bb86dc76ba7efa15bb90fa07fc6f1ea663 (patch)
tree995a38bb3553c5c1b682392129558e60c0ded051
parentfe944219eb449234c207ee3987973695d3d9a0aa (diff)
downloadscummvm-rg350-3d9b20bb86dc76ba7efa15bb90fa07fc6f1ea663.tar.gz
scummvm-rg350-3d9b20bb86dc76ba7efa15bb90fa07fc6f1ea663.tar.bz2
scummvm-rg350-3d9b20bb86dc76ba7efa15bb90fa07fc6f1ea663.zip
fixed file loading bugs for v.0.0331, control panel works now
svn-id: r8868
-rw-r--r--sky/control.cpp2
-rw-r--r--sky/disk.cpp14
2 files changed, 10 insertions, 6 deletions
diff --git a/sky/control.cpp b/sky/control.cpp
index cafe1e210d..e0a7a96de8 100644
--- a/sky/control.cpp
+++ b/sky/control.cpp
@@ -438,7 +438,7 @@ void SkyControl::doControlPanel(void) {
initPanel();
_skyScreen->clearScreen();
- if ((!SkyState::isCDVersion()) && (SkyState::_systemVars.gameVersion != 348))
+ if (SkyState::_systemVars.gameVersion < 331)
_skyScreen->setPalette(60509);
else
_skyScreen->setPalette(60510);
diff --git a/sky/disk.cpp b/sky/disk.cpp
index 390e973289..eee2fb02ad 100644
--- a/sky/disk.cpp
+++ b/sky/disk.cpp
@@ -127,11 +127,15 @@ uint8 *SkyDisk::loadFile(uint16 fileNr, uint8 *dest) {
_fileOffset = READ_LE_UINT32((filePtr + 2)) & 0x0ffffff;
- cflag = (uint8)((_fileOffset >> (23)) & 0x1);
- _fileOffset = (((1 << (23)) ^ 0xFFFFFFFF) & _fileOffset);
-
- if (cflag)
- _fileOffset <<= 4;
+ cflag = (uint8)((_fileOffset >> 23) & 0x1);
+ _fileOffset &= 0x7FFFFF;
+
+ if (cflag) {
+ if (SkyState::_systemVars.gameVersion == 331)
+ _fileOffset <<= 3;
+ else
+ _fileOffset <<= 4;
+ }
_fixedDest = dest;
_fileDest = dest;