fencer/src/level.h
2023-11-06 21:16:21 +01:00

40 lines
861 B
C

#ifndef _fencer_level_h
#define _fencer_level_h
#include "asset.h"
#include "sprite.h"
#include <SDL2/SDL_render.h>
#include <cjson/cJSON.h>
typedef struct Tilemap Tilemap;
typedef struct Level Level;
extern void world_init();
extern void world_close();
extern Level* level_from_json(cJSON* json);
extern Level* level_load(const char* level_id);
extern void level_destroy(Level* self);
extern void level_draw(Level* self);
extern Tilemap* level_get_tilemap_layer(Level* self, size_t layer);
extern size_t level_get_tilemap_count(Level* self);
extern asset_id level_get_asset_id(Level* self);
extern void level_set_asset_id(Level* self, asset_id id);
extern void _internal_level_destroy(Level* self);
impl_Drop_for(Level,
_internal_level_destroy
)
impl_Asset_for(Level,
level_get_asset_id,
level_set_asset_id
)
#endif // !_fencer_level_h