summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--spritecache.c9
-rw-r--r--spritecache.h1
2 files changed, 9 insertions, 1 deletions
diff --git a/spritecache.c b/spritecache.c
index d7357f7f2..555304f77 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 93df8c106..3a5676a63 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)
{