diff options
author | Robert Göffringmann | 2003-07-11 18:56:57 +0000 |
---|---|---|
committer | Robert Göffringmann | 2003-07-11 18:56:57 +0000 |
commit | 226543582e5237d1fd45fa38ba38df8f827387bf (patch) | |
tree | 18bd7bd62ad1b239da37c711759f2f65bde09db9 /sky | |
parent | 333ea0e300a6885636e46da64c54eb125c040446 (diff) | |
download | scummvm-rg350-226543582e5237d1fd45fa38ba38df8f827387bf.tar.gz scummvm-rg350-226543582e5237d1fd45fa38ba38df8f827387bf.tar.bz2 scummvm-rg350-226543582e5237d1fd45fa38ba38df8f827387bf.zip |
big endian fix
svn-id: r8912
Diffstat (limited to 'sky')
-rw-r--r-- | sky/disk.cpp | 13 |
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; } |