40 lines
861 B
C
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
|