From 4db1144b6d71aaf511a78b45c1536ca90d629f4f Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 16 Apr 2006 11:26:23 +0000 Subject: [PATCH] (svn r4446) - Add function to determine if a Sprite ID exists. --- spritecache.c | 9 ++++++++- spritecache.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/spritecache.c b/spritecache.c index d7357f7f27..555304f774 100644 --- a/spritecache.c +++ b/spritecache.c @@ -71,6 +71,13 @@ static bool ReadSpriteHeaderSkipData(void) return true; } +/* Check if the given Sprite ID exists */ +bool SpriteExists(SpriteID id) +{ + /* Special case for Sprite ID zero -- its position is also 0... */ + return _sprite_file_pos[id] != 0 || id == 0; +} + static void* AllocSprite(size_t); static void* ReadSprite(SpriteID id) @@ -80,7 +87,7 @@ static void* ReadSprite(SpriteID id) DEBUG(spritecache, 9) ("load sprite %d", id); - if (_sprite_file_pos[id] == 0 && id != 0) { + if (!SpriteExists(id)) { error( "Tried to load non-existing sprite #%d.\n" "Probable cause: Wrong/missing NewGRFs", diff --git a/spritecache.h b/spritecache.h index 93df8c106d..3a5676a636 100644 --- a/spritecache.h +++ b/spritecache.h @@ -13,6 +13,7 @@ typedef struct Sprite { } Sprite; const void *GetRawSprite(SpriteID sprite); +bool SpriteExists(SpriteID sprite); static inline const Sprite *GetSprite(SpriteID sprite) {