(svn r1855) Handle endianness of sprite headers when loading a sprite, not everytime when accessing it
authortron
Thu, 10 Feb 2005 12:26:41 +0000
changeset 1351 3e7aa0d35f8f
parent 1350 067b22970f19
child 1352 5880ab4de192
(svn r1855) Handle endianness of sprite headers when loading a sprite, not everytime when accessing it
gfx.c
spritecache.c
--- a/gfx.c	Thu Feb 10 12:14:38 2005 +0000
+++ b/gfx.c	Thu Feb 10 12:26:41 2005 +0000
@@ -1335,9 +1335,9 @@
 	};
 
 	/* decode sprite header */
-	x += (int16)TO_LE16(sprite->x_offs);
-	y += (int16)TO_LE16(sprite->y_offs);
-	bp.width_org = bp.width = TO_LE16(sprite->width);
+	x += sprite->x_offs;
+	y += sprite->y_offs;
+	bp.width_org = bp.width = sprite->width;
 	bp.height_org = bp.height = sprite->height;
 	info = sprite->info;
 	bp.info = info;
@@ -1628,15 +1628,15 @@
 
 	// 2 equals space.
 	for(i=2; i != 0xE2; i++) {
-		*b++ = (byte)((i < 93 || i >= 129 || i == 98) ? TO_LE16(GetSprite(i)->width) : 0);
+		*b++ = (byte)((i < 93 || i >= 129 || i == 98) ? GetSprite(i)->width : 0);
 	}
 
 	for(i=0xE2; i != 0x1C2; i++) {
-		*b++ = (byte)((i < 317 || i >= 353) ? TO_LE16(GetSprite(i)->width) + 1 : 0);
+		*b++ = (byte)((i < 317 || i >= 353) ? GetSprite(i)->width + 1 : 0);
 	}
 
 	for(i=0x1C2; i != 0x2A2; i++) {
-		*b++ = (byte)((i < 541 || i >= 577) ? TO_LE16(GetSprite(i)->width) + 1 : 0);
+		*b++ = (byte)((i < 541 || i >= 577) ? GetSprite(i)->width + 1 : 0);
 	}
 }
 
@@ -1914,9 +1914,9 @@
 	p =	GetSprite(cursor & 0x3FFF);
 	cv->sprite = cursor;
 	cv->size.y = p->height;
-	cv->size.x = TO_LE16(p->width);
-	cv->offs.x = (int16)TO_LE16(p->x_offs);
-	cv->offs.y = (int16)TO_LE16(p->y_offs);
+	cv->size.x = p->width;
+	cv->offs.x = p->x_offs;
+	cv->offs.y = p->y_offs;
 
 	cv->dirty = true;
 }
--- a/spritecache.c	Thu Feb 10 12:14:38 2005 +0000
+++ b/spritecache.c	Thu Feb 10 12:26:41 2005 +0000
@@ -149,15 +149,19 @@
 	byte type;
 	byte *rel;
 	int8 i;
-	int j, dist;
+	int dist;
 
 	type = FioReadByte();
 	/* We've decoded special sprites when reading headers. */
 	if (type != 0xFF) {
 		/* read sprite hdr */
-		*dest++ = type;
-		for(j=0; j!=7; j++)
-			*dest++ = FioReadByte();
+		Sprite* sprite = dest;
+		sprite->info = type;
+		sprite->height = FioReadByte();
+		sprite->width = FioReadWord();
+		sprite->x_offs = FioReadWord();
+		sprite->y_offs = FioReadWord();
+		dest = sprite->data;
 		num -= 8;
 	}
 
@@ -996,9 +1000,9 @@
 
 	/* decode sprite header */
 	sd = &sd_static;
-	sd->xoffs = (int16)TO_LE16(p->x_offs);
-	sd->yoffs = (int16)TO_LE16(p->y_offs);
-	sd->xsize = TO_LE16(p->width);
+	sd->xoffs = p->x_offs;
+	sd->yoffs = p->y_offs;
+	sd->xsize = p->width;
 	sd->ysize = p->height;
 #else
 	sd = &sd_static;