[Scummvm-cvs-logs] CVS: scummvm/sky disk.cpp,1.33,1.34
Max Horn
fingolfin at users.sourceforge.net
Sun Jul 6 15:53:07 CEST 2003
Update of /cvsroot/scummvm/scummvm/sky
In directory sc8-pr-cvs1:/tmp/cvs-serv15734
Modified Files:
disk.cpp
Log Message:
endian fix, cleanup
Index: disk.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/disk.cpp,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- disk.cpp 4 Jul 2003 23:26:46 -0000 1.33
+++ disk.cpp 6 Jul 2003 22:52:15 -0000 1.34
@@ -172,9 +172,18 @@
if ( (uint8)(_fileFlags >> (22) & 0x1) ) //do we include the header?
inputPtr += sizeof(struct dataFileHeader);
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
memcpy(outputPtr, inputPtr, sizeof(struct dataFileHeader));
inputPtr += sizeof(struct dataFileHeader);
outputPtr += sizeof(struct dataFileHeader);
+#endif
}
RncDecoder rncDecoder;
@@ -253,14 +262,15 @@
uint16 *dnrTbl16Ptr = (uint16 *)_dinnerTableArea;
for (i = 0; i < _dinnerTableEntries; i++) {
- if (READ_LE_UINT16(dnrTbl16Ptr + (i * 4)) == fileNr) {
+ if (READ_LE_UINT16(dnrTbl16Ptr) == fileNr) {
debug(2, "file %d found!", fileNr);
- return (uint8 *)(dnrTbl16Ptr + (i * 4));
+ return (uint8 *)dnrTbl16Ptr;
}
+ dnrTbl16Ptr += 4;
}
- // if file not found return NULL
- return (uint8 *)NULL;
+ // if file not found return 0
+ return 0;
}
void SkyDisk::fnCacheChip(uint32 list) {
More information about the Scummvm-git-logs
mailing list