aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Göffringmann2003-07-11 18:56:57 +0000
committerRobert Göffringmann2003-07-11 18:56:57 +0000
commit226543582e5237d1fd45fa38ba38df8f827387bf (patch)
tree18bd7bd62ad1b239da37c711759f2f65bde09db9
parent333ea0e300a6885636e46da64c54eb125c040446 (diff)
downloadscummvm-rg350-226543582e5237d1fd45fa38ba38df8f827387bf.tar.gz
scummvm-rg350-226543582e5237d1fd45fa38ba38df8f827387bf.tar.bz2
scummvm-rg350-226543582e5237d1fd45fa38ba38df8f827387bf.zip
big endian fix
svn-id: r8912
-rw-r--r--sky/disk.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/sky/disk.cpp b/sky/disk.cpp
index eee2fb02ad..97d3e98c17 100644
--- a/sky/disk.cpp
+++ b/sky/disk.cpp
@@ -178,16 +178,13 @@ uint8 *SkyDisk::loadFile(uint16 fileNr, uint8 *dest) {
else {
#ifdef SCUMM_BIG_ENDIAN
// Convert dataFileHeader to BE (it only consists of 16 bit words)
- for (uint i = 0; i < sizeof(struct dataFileHeader); i+=2) {
- *(uint16 *)outputPtr = READ_LE_UINT16(inputPtr);
- inputPtr += 2;
- outputPtr += 2;
- }
-#else
+ uint16 *headPtr = (uint16 *)_fileDest;
+ for (uint i = 0; i < sizeof(struct dataFileHeader) / 2; i++)
+ *(headPtr + i) = READ_LE_UINT16(headPtr + i);
+#endif
memcpy(outputPtr, inputPtr, sizeof(struct dataFileHeader));
inputPtr += sizeof(struct dataFileHeader);
outputPtr += sizeof(struct dataFileHeader);
-#endif
}
RncDecoder rncDecoder;
@@ -198,7 +195,7 @@ uint8 *SkyDisk::loadFile(uint16 fileNr, uint8 *dest) {
if (unPackLen == 0) { //Unpack returned 0: file was probably not packed.
if (_fixedDest == NULL)
free(_compDest);
-
+
return _fileDest;
}