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