[Scummvm-cvs-logs] CVS: scummvm/bs2 resman.cpp,1.24,1.25

Max Horn fingolfin at users.sourceforge.net
Fri Sep 12 14:41:08 CEST 2003


Update of /cvsroot/scummvm/scummvm/bs2
In directory sc8-pr-cvs1:/tmp/cvs-serv26929

Modified Files:
	resman.cpp 
Log Message:
cleanup / fix WALK_GRID_FILE case in convertEndian

Index: resman.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/bs2/resman.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- resman.cpp	12 Sep 2003 20:48:28 -0000	1.24
+++ resman.cpp	12 Sep 2003 21:40:44 -0000	1.25
@@ -257,14 +257,17 @@
 
 #ifdef SCUMM_BIG_ENDIAN
 static void convertEndian(uint8 *file, uint32 len) {
+	int i;
 	_standardHeader *hdr = (_standardHeader *)file;
+	
+	file += sizeof(_standardHeader);
 
 	hdr->compSize = SWAP_BYTES_32(hdr->compSize);
 	hdr->decompSize = SWAP_BYTES_32(hdr->decompSize);
 
 	switch(hdr->fileType) {
 		case ANIMATION_FILE: {
-			_animHeader *animHead = (_animHeader *) (file + sizeof(_standardHeader));
+			_animHeader *animHead = (_animHeader *)file;
 
 			animHead->noAnimFrames = SWAP_BYTES_16(animHead->noAnimFrames);
 			animHead->feetStartX = SWAP_BYTES_16(animHead->feetStartX);
@@ -273,14 +276,13 @@
 			animHead->feetEndY = SWAP_BYTES_16(animHead->feetEndY);
 			animHead->blend = SWAP_BYTES_16(animHead->blend);
 
-			int i;
 			for (i = 0; i < animHead->noAnimFrames; i++) {
 				_cdtEntry *cdtEntry = (_cdtEntry *) ( (uint8 *)animHead + sizeof(_animHeader) + i * sizeof(_cdtEntry) );
 				cdtEntry->x = (int16)SWAP_BYTES_16(cdtEntry->x);
 				cdtEntry->y = (int16)SWAP_BYTES_16(cdtEntry->y);
 				cdtEntry->frameOffset = SWAP_BYTES_32(cdtEntry->frameOffset);
 
-				_frameHeader *frameHeader = (_frameHeader *) (file + sizeof(_standardHeader) + cdtEntry->frameOffset);
+				_frameHeader *frameHeader = (_frameHeader *) (file + cdtEntry->frameOffset);
 				frameHeader->compSize = SWAP_BYTES_32(frameHeader->compSize);
 				frameHeader->width = SWAP_BYTES_16(frameHeader->width);
 				frameHeader->height = SWAP_BYTES_16(frameHeader->height);
@@ -288,7 +290,7 @@
 			break;
 		}
 		case SCREEN_FILE: {
-			_multiScreenHeader *mscreenHeader = (_multiScreenHeader *) (file + sizeof(_standardHeader));
+			_multiScreenHeader *mscreenHeader = (_multiScreenHeader *)file;
 
 			mscreenHeader->palette = SWAP_BYTES_32(mscreenHeader->palette);
 			mscreenHeader->bg_parallax[0] = SWAP_BYTES_32(mscreenHeader->bg_parallax[0]);
@@ -309,7 +311,6 @@
 
 			// layerHeader
 			_layerHeader *layerHeader;
-			int i;
 			for (i = 0; i < screenHeader->noLayers; i++) {
 				layerHeader = (_layerHeader *) ((uint8 *) mscreenHeader + mscreenHeader->layers + (i * sizeof(_layerHeader)));
 
@@ -321,8 +322,6 @@
 				layerHeader->offset = SWAP_BYTES_32(layerHeader->offset);
 			}
 
-			// FIXME: byte swapping should be done here instead of in protocol.cpp
-
 			// backgroundParallaxLayer
 			_parallax *parallax;
 			int offset;
@@ -341,7 +340,7 @@
 			}
 
 			// backgroundLayer
-			offset = mscreenHeader->screen + (int)sizeof(_screenHeader);
+			offset = mscreenHeader->screen + sizeof(_screenHeader);
 			if (offset > 0) {
 				parallax = (_parallax *) ((uint8 *) mscreenHeader + offset);
 				parallax->w = SWAP_BYTES_16(parallax->w);
@@ -365,12 +364,11 @@
 			break;
 		}
 		case GAME_OBJECT: {
-			_object_hub *objectHub = (_object_hub *) ((_standardHeader *)file+1);
+			_object_hub *objectHub = (_object_hub *)file;
 
 			objectHub->type = (int)SWAP_BYTES_32(objectHub->type);
 			objectHub->logic_level = SWAP_BYTES_32(objectHub->logic_level);
 
-			int i;
 			for (i = 0; i < TREE_SIZE; i++) {
 				objectHub->logic[i] = SWAP_BYTES_32(objectHub->logic[i]);
 				objectHub->script_id[i] = SWAP_BYTES_32(objectHub->script_id[i]);
@@ -392,7 +390,7 @@
 		case RUN_LIST:
 			break;
 		case TEXT_FILE: {
-			_textHeader *textHeader = (_textHeader *) (file + sizeof(_standardHeader));
+			_textHeader *textHeader = (_textHeader *)file;
 			textHeader->noOfLines = SWAP_BYTES_32(textHeader->noOfLines);
 			break;
 		}





More information about the Scummvm-git-logs mailing list