[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