#include "isogfx-demo.h" #include #include #include #include #include #include typedef struct State { int xpick; int ypick; } State; static void shutdown(IsoGfx* iso, void* app_state) { assert(iso); if (app_state) { free(app_state); } } static void update(IsoGfx* iso, void* app_state, double t, double dt) { assert(iso); assert(app_state); State* state = (State*)(app_state); double mouse_x, mouse_y; gfx_app_get_mouse_position(&mouse_x, &mouse_y); isogfx_pick_tile(iso, mouse_x, mouse_y, &state->xpick, &state->ypick); // printf("Picked tile: (%d, %d)\n", state->xpick, state->ypick); } static void render(IsoGfx* iso, void* app_state) { assert(iso); assert(app_state); State* state = (State*)(app_state); isogfx_render(iso); } bool make_demo_app(IsoGfx* iso, IsoGfxApp* app) { assert(iso); assert(app); State* state = calloc(1, sizeof(State)); if (!state) { return false; } if (!isogfx_load_world(iso, "/home/jeanne/assets/tilemaps/demo1.tm")) { goto cleanup; } app->state = state; app->shutdown = shutdown; app->update = update; app->render = render; return true; cleanup: free(state); return false; }