diff options
author | tron <tron@openttd.org> | 2005-02-10 12:26:41 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2005-02-10 12:26:41 +0000 |
commit | 9031e0369eeb2c11c5a4a671fb812645b2ea69a2 (patch) | |
tree | 766da7d41bc990ffcc65918aba7c705d6e3c0571 /spritecache.c | |
parent | 94c75f33bb896b32866fd062242067d773b0f7b1 (diff) | |
download | openttd-9031e0369eeb2c11c5a4a671fb812645b2ea69a2.tar.xz |
(svn r1855) Handle endianness of sprite headers when loading a sprite, not everytime when accessing it
Diffstat (limited to 'spritecache.c')
-rw-r--r-- | spritecache.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/spritecache.c b/spritecache.c index 9c6f4702d..bc00feebf 100644 --- a/spritecache.c +++ b/spritecache.c @@ -149,15 +149,19 @@ static void ReadSprite(int num, byte *dest) 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 @@ const SpriteDimension *GetSpriteDimension(SpriteID sprite) /* 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; |