From 3d9b20bb86dc76ba7efa15bb90fa07fc6f1ea663 Mon Sep 17 00:00:00 2001 From: Robert Göffringmann Date: Tue, 8 Jul 2003 22:08:29 +0000 Subject: fixed file loading bugs for v.0.0331, control panel works now svn-id: r8868 --- sky/control.cpp | 2 +- sky/disk.cpp | 14 +++++++++----- 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; -- cgit v1.2.3