aboutsummaryrefslogtreecommitdiff
path: root/sky/disk.cpp
diff options
context:
space:
mode:
authorRobert Göffringmann2003-06-05 19:45:27 +0000
committerRobert Göffringmann2003-06-05 19:45:27 +0000
commit98b37121630df40210cac231867c6b0799692930 (patch)
tree4364889c1e4f39eaea7e115e9dd9bc96b7904cde /sky/disk.cpp
parent5e18dc19ff186634e37e824d9006de394827398b (diff)
downloadscummvm-rg350-98b37121630df40210cac231867c6b0799692930.tar.gz
scummvm-rg350-98b37121630df40210cac231867c6b0799692930.tar.bz2
scummvm-rg350-98b37121630df40210cac231867c6b0799692930.zip
fixed caching routines
svn-id: r8334
Diffstat (limited to 'sky/disk.cpp')
-rw-r--r--sky/disk.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/sky/disk.cpp b/sky/disk.cpp
index d4539168c2..de82040b42 100644
--- a/sky/disk.cpp
+++ b/sky/disk.cpp
@@ -277,7 +277,7 @@ void SkyDisk::fnCacheChip(uint32 list) {
uint16 *fList = (uint16*)SkyState::fetchCompact(list);
uint16 fCnt = 0;
do {
- _buildList[cnt + fCnt] = fList[fCnt];
+ _buildList[cnt + fCnt] = fList[fCnt] & 0x7FFFU;
fCnt++;
} while (fList[fCnt-1]);
fnCacheFiles();
@@ -311,8 +311,8 @@ void SkyDisk::fnCacheFiles(void) {
_loadedFilesList[targCnt] = _loadedFilesList[lCnt];
targCnt++;
} else {
- free(SkyState::_itemList[_loadedFilesList[lCnt]]);
- SkyState::_itemList[_loadedFilesList[lCnt]] = NULL;
+ free(SkyState::_itemList[_loadedFilesList[lCnt] & 2047]);
+ SkyState::_itemList[_loadedFilesList[lCnt] & 2047] = NULL;
}
lCnt++;
}
@@ -335,7 +335,7 @@ void SkyDisk::fnCacheFiles(void) {
continue;
}
// ok, we really have to load the file.
- _loadedFilesList[targCnt] = _buildList[bCnt];
+ _loadedFilesList[targCnt] = _buildList[bCnt] & 0x7FFFU;
targCnt++;
_loadedFilesList[targCnt] = 0;
SkyState::_itemList[_buildList[bCnt] & 2047] = (void**)loadFile(_buildList[bCnt] & 0x7FFF, NULL);