summaryrefslogtreecommitdiff
path: root/spritecache.c
diff options
context:
space:
mode:
authortron <tron@openttd.org>2005-02-11 13:46:25 +0000
committertron <tron@openttd.org>2005-02-11 13:46:25 +0000
commitd37f2cdc70b6d0de9ac4817ef97e3f75c63662a4 (patch)
treee4a73529ba96127e4d818ecd674650007cb75114 /spritecache.c
parent51dd166de0f0a172a1852122a3ed28151d0d7402 (diff)
downloadopenttd-d37f2cdc70b6d0de9ac4817ef97e3f75c63662a4.tar.xz
(svn r1858) Let ReadSprite() handle the subtleties of loading a sprite, not its caller
Diffstat (limited to 'spritecache.c')
-rw-r--r--spritecache.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/spritecache.c b/spritecache.c
index fa308ba7f..a651e28a8 100644
--- a/spritecache.c
+++ b/spritecache.c
@@ -149,13 +149,16 @@ static void ReadSpriteHeaderSkipData(int num, int load_index)
}
}
-static void ReadSprite(int num, byte *dest)
+static void ReadSprite(SpriteID id, byte *dest)
{
+ uint num = _sprite_size[id];
byte type;
byte *rel;
int8 i;
int dist;
+ FioSeekToFile(_sprite_file_pos[id]);
+
type = FioReadByte();
/* We've decoded special sprites when reading headers. */
if (type != 0xFF) {
@@ -163,6 +166,7 @@ static void ReadSprite(int num, byte *dest)
Sprite* sprite = dest;
sprite->info = type;
sprite->height = FioReadByte();
+ if (id == 142) sprite->height = 10; // Compensate for a TTD bug
sprite->width = FioReadWord();
sprite->x_offs = FioReadWord();
sprite->y_offs = FioReadWord();
@@ -625,11 +629,7 @@ static byte *LoadSpriteToMem(int sprite)
_sprite_ptr[sprite] = s->data;
- FioSeekToFile(_sprite_file_pos[sprite]);
- ReadSprite(_sprite_size[sprite], s->data);
-
- // Patch the height to compensate for a TTD bug?
- if (sprite == 142) s->data[1] = 10;
+ ReadSprite(sprite, s->data);
// Return sprite ptr
return s->data;