[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