#include "townengine/game_api.h" #include "state.h" #include void game_tick(t_ctx *ctx) { /* do state initialization when engine asks for it */ /* it could happen multiple times per application run, as game code is reloadable */ if (ctx.initialization_needed) { /* application data could be stored in ctx.udata and retrieved anywhere */ if (!ctx.udata) ctx.udata = ccalloc(1, sizeof (struct state)); } /* a lot of data is accessible from `ctx`, look into `townengine/context.h` for more */ struct state *state = ctx.udata; ++state->counter; } void game_end(void) { /* do your deinitialization here */ struct state *state = ctx.udata; free(state); }