tron@2186: /* $Id$ */ tron@2186: rubidium@10429: /** @file spritecache.h Functions to cache sprites in memory. */ belugas@6916: tron@1349: #ifndef SPRITECACHE_H tron@1349: #define SPRITECACHE_H tron@1349: rubidium@8619: #include "gfx_type.h" rubidium@8619: 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: peter1138@7299: extern uint _sprite_cache_size; peter1138@7299: rubidium@7365: 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: { rubidium@7365: return (Sprite*)GetRawSprite(sprite, true); tron@1361: } tron@1361: tron@1361: static inline const byte *GetNonSprite(SpriteID sprite) tron@1361: { rubidium@7365: return (byte*)GetRawSprite(sprite, false); tron@1361: } tron@1349: rubidium@6573: void GfxInitSpriteMem(); rubidium@6573: void IncreaseSpriteLRU(); tron@1349: truelight@7404: bool LoadNextSprite(int load_index, byte file_index, uint file_sprite_id); rubidium@5838: void DupSprite(SpriteID old_spr, SpriteID new_spr); tron@2340: Darkvater@2436: #endif /* SPRITECACHE_H */