#ifndef __ASSETS_H #define __ASSETS_H #include "sc/map/sc_map.h" #include "EC.h" #include "raylib.h" #include "rres.h" typedef struct Assets { struct sc_map_s64 m_textures; struct sc_map_s64 m_sounds; struct sc_map_s64 m_fonts; struct sc_map_s64 m_sprites; struct sc_map_s64 m_levelpacks; }Assets_t; typedef struct LevelTileInfo { uint8_t tile_type; uint8_t entity_to_spawn; uint8_t water; uint8_t dummy[1]; }LevelTileInfo_t; typedef struct LevelMap { char level_name[32]; uint16_t width; uint16_t height; LevelTileInfo_t* tiles; }LevelMap_t; typedef struct LevelPack { uint32_t n_levels; LevelMap_t* levels; }LevelPack_t; typedef struct RresFileInfo { rresCentralDir dir; const char* fname; }RresFileInfo_t; void init_assets(Assets_t* assets); void free_all_assets(Assets_t* assets); void term_assets(Assets_t* assets); Texture2D* add_texture(Assets_t* assets, const char* name, const char* path); Sound* add_sound(Assets_t * assets, const char* name, const char* path); Font* add_font(Assets_t* assets, const char* name, const char* path); LevelPack_t* add_level_pack(Assets_t* assets, const char* name, const char* path); LevelPack_t* uncompress_level_pack(Assets_t* assets, const char* name, const char* path); // Rres version Texture2D* add_texture_rres(Assets_t* assets, const char* name, const char* filename, const RresFileInfo_t* rres_file); LevelPack_t* add_level_pack_rres(Assets_t* assets, const char* name, const char* filename, const RresFileInfo_t* rres_file); Sprite_t* add_sprite(Assets_t* assets, const char* name, Texture2D* texture); Texture2D* get_texture(Assets_t* assets, const char* name); Sprite_t* get_sprite(Assets_t* assets, const char* name); Sound* get_sound(Assets_t* assets, const char* name); Font* get_font(Assets_t* assets, const char* name); LevelPack_t* get_level_pack(Assets_t* assets, const char* name); void draw_sprite(Sprite_t* spr, Vector2 pos, bool flip_x); #endif // __ASSETS_H