tron@2186: /* $Id$ */ tron@2186: glx@9574: /** @file spritecache.h */ glx@9574: tron@1349: #ifndef SPRITECACHE_H tron@1349: #define SPRITECACHE_H tron@1349: rubidium@6574: struct Sprite { tron@1350: byte height; tron@1356: uint16 width; tron@1356: int16 x_offs; tron@1356: int16 y_offs; tron@1350: byte data[VARARRAY_SIZE]; rubidium@6574: }; tron@1350: glx@9626: extern uint _sprite_cache_size; glx@9626: glx@9627: const void *GetRawSprite(SpriteID sprite, bool real_sprite); peter1138@3565: bool SpriteExists(SpriteID sprite); tron@1361: tron@1361: static inline const Sprite *GetSprite(SpriteID sprite) tron@1361: { glx@9627: return (Sprite*)GetRawSprite(sprite, true); tron@1361: } tron@1361: tron@1361: static inline const byte *GetNonSprite(SpriteID sprite) tron@1361: { glx@9627: return (byte*)GetRawSprite(sprite, false); tron@1361: } tron@1349: rubidium@6573: void GfxInitSpriteMem(); rubidium@6573: void IncreaseSpriteLRU(); tron@1349: rubidium@9628: bool LoadNextSprite(int load_index, byte file_index, uint file_sprite_id); rubidium@5838: void DupSprite(SpriteID old_spr, SpriteID new_spr); tron@2340: void SkipSprites(uint count); tron@2340: Darkvater@2436: #endif /* SPRITECACHE_H */