spritecache.h
Go to the documentation of this file.00001
00002
00005 #ifndef SPRITECACHE_H
00006 #define SPRITECACHE_H
00007
00008 #include "gfx_type.h"
00009
00010 struct Sprite {
00011 byte height;
00012 uint16 width;
00013 int16 x_offs;
00014 int16 y_offs;
00015 byte data[VARARRAY_SIZE];
00016 };
00017
00018 extern uint _sprite_cache_size;
00019
00020 const void *GetRawSprite(SpriteID sprite, SpriteType type);
00021 bool SpriteExists(SpriteID sprite);
00022
00023 static inline const Sprite *GetSprite(SpriteID sprite, SpriteType type)
00024 {
00025 assert(type != ST_RECOLOUR);
00026 return (Sprite*)GetRawSprite(sprite, type);
00027 }
00028
00029 static inline const byte *GetNonSprite(SpriteID sprite, SpriteType type)
00030 {
00031 assert(type == ST_RECOLOUR);
00032 return (byte*)GetRawSprite(sprite, type);
00033 }
00034
00035 void GfxInitSpriteMem();
00036 void IncreaseSpriteLRU();
00037
00038 bool LoadNextSprite(int load_index, byte file_index, uint file_sprite_id);
00039 void DupSprite(SpriteID old_spr, SpriteID new_spr);
00040
00041 #endif