maug
Quick and dirty C mini-augmentation library.
Loading...
Searching...
No Matches
retrotil.h File Reference
#include <mjson.h>
#include <mfile.h>
Include dependency graph for retrotil.h:

Go to the source code of this file.

Data Structures

struct  RETROTILE_TILE_DEF
 
struct  RETROTILE_LAYER
 
struct  RETROTILE_COORDS
 This is not currently used for anything, but is provided as a a convenience for game logic. More...
 
struct  RETROTILE
 A struct representing a tilemap. More...
 
struct  RETROTILE_DATA_DS
 Internal data structure used by retrotile_gen_diamond_square_iter(). More...
 
struct  RETROTILE_DATA_BORDER
 
struct  RETROTILE_PARSER
 

Macros

#define RETROTILE_PRESENT
 
#define RETROTILE_NAME_SZ_MAX   10
 Maximum number of chars in a RETROTILE::name.
 
#define RETROTILE_PROP_NAME_SZ_MAX   10
 Maximum number of chars in a parsed property name.
 
#define RETROTILE_TILE_SCALE_DEFAULT   1.0f
 Default value for RETROTILE::tile_scale.
 
#define RETROTILE_TRACE_LVL   0
 If defined, bring debug printf statements up to this level.
 
#define RETROTILE_VORONOI_DEFAULT_SPB   8
 
#define RETROTILE_VORONOI_DEFAULT_DRIFT   4
 
#define retrotile_mstate_name(state)
 
#define RETROTILE_CLASS_TILE   0
 
#define RETROTILE_CLASS_MOBILE   1
 
#define RETROTILE_CLASS_WARP   2
 
#define RETROTILE_CLASS_ITEM   3
 
#define RETROTILE_DS_FLAG_INIT_DATA   0x02
 Flag for retrotile_gen_diamond_square_iter() indicating that passed RETROTILE_DATA_DS object should be initialized (first pass).
 
#define RETROTILE_IDX_FMT   "%u"
 Conversion specifier to use with retroflat_tile_t.
 
#define retrotile_get_tile(tilemap, layer, x, y)
 
#define retrotile_set_tile(tilemap, layer, x, y, new_val)
 
#define retrotile_get_tiles_p(layer)
 
#define retrotile_clear_tiles(t, layer)
 
#define RETROTILE_PARSER_MSTATE_TABLE(f)
 
#define RETROTILE_PARSER_MSTATE_TABLE_CONST(name, idx, tokn, parent, m)
 

Typedefs

typedef int16_t retrotile_coord_t
 
typedef MERROR_RETVAL(* retrotile_tj_parse_cb) (const char *dirname, const char *filename, MAUG_MHANDLE *p_tm_h, struct MDATA_VECTOR *p_td, mparser_wait_cb_t wait_cb, void *wait_data, mparser_parse_token_cb token_cb, void *token_cb_data, uint8_t passes)
 
typedef MERROR_RETVAL(* retrotile_ani_cb) (void *animation_cb_data, int16_t iter)
 
typedef MERROR_RETVAL(* retrotile_gen_cb) (struct RETROTILE *t, retroflat_tile_t min_z, retroflat_tile_t max_z, uint32_t tuning, size_t layer_idx, uint8_t flags, void *data, retrotile_ani_cb animation_cb, void *animation_cb_data)
 

Functions

MERROR_RETVAL retrotile_parse_json_c (struct RETROTILE_PARSER *parser, char c)
 
mfix_t retrotile_static_rotation_from_dir (const char *dir)
 Convert a less-or-equal-to-two-character string to a direction in degrees.
 
MERROR_RETVAL retrotile_parse_json_file (const char *dirname, const char *filename, MAUG_MHANDLE *p_tilemap_h, struct MDATA_VECTOR *p_tile_defs, mparser_wait_cb_t wait_cb, void *wait_data, mparser_parse_token_cb token_cb, void *token_cb_data, uint8_t passes)
 Parse the JSON file at the given path into a heap-allocated tilemap with a RETROTILE struct header.
 
MERROR_RETVAL retrotile_gen_diamond_square_iter (struct RETROTILE *t, retroflat_tile_t min_z, retroflat_tile_t max_z, uint32_t tuning, size_t layer_idx, uint8_t flags, void *data, retrotile_ani_cb animation_cb, void *animation_cb_data)
 Generate tilemap terrain using diamond square algorithm.
 
MERROR_RETVAL retrotile_gen_voronoi_iter (struct RETROTILE *t, retroflat_tile_t min_z, retroflat_tile_t max_z, uint32_t tuning, size_t layer_idx, uint8_t flags, void *data, retrotile_ani_cb animation_cb, void *animation_cb_data)
 Generate tilemap terrain using voronoi graph.
 
MERROR_RETVAL retrotile_gen_smooth_iter (struct RETROTILE *t, retroflat_tile_t min_z, retroflat_tile_t max_z, uint32_t tuning, size_t layer_idx, uint8_t flags, void *data, retrotile_ani_cb animation_cb, void *animation_cb_data)
 Average the values in adjacent tiles over an already-generated tilemap.
 
MERROR_RETVAL retrotile_gen_borders_iter (struct RETROTILE *t, retroflat_tile_t min_z, retroflat_tile_t max_z, uint32_t tuning, size_t layer_idx, uint8_t flags, void *data, retrotile_ani_cb animation_cb, void *animation_cb_data)
 Given a list of RETROTILE_DATA_BORDER structs, this will search for occurrences of RETROTILE_DATA_BORDER::center next to RETROTILE_DATA_BORDER::outside and replace with the appropriate border between the two!
 
struct RETROTILE_LAYERretrotile_get_layer_p (struct RETROTILE *tilemap, uint32_t layer_idx)
 
MERROR_RETVAL retrotile_alloc (MAUG_MHANDLE *p_tilemap_h, size_t w, size_t h, size_t layers_count, const char *tilemap_name)
 
MERROR_RETVAL retrotile_clear_refresh (retroflat_pxxy_t y_max)
 
MERROR_RETVAL retrotile_topdown_draw (struct RETROFLAT_BITMAP *target, struct RETROTILE *t, struct MDATA_VECTOR *t_defs)