void hole_free(void) { game_free(); back_free(); count = 0; }
static void name_leave(struct state *st, struct state *next, int id) { if (draw_back) back_free(); text_input_stop(); gui_delete(id); }
void game_free(void) { if (game_state) { sol_free(&file); sol_free(&back); back_free(); } game_state = 0; }
static void name_leave(struct state *st, struct state *next, int id) { if (draw_back) back_free(); /* FIXME SDL_EnableUNICODE(1); */ gui_delete(id); }
int hole_move(void) { if (hole + 1 < count) { hole++; game_free(); back_free(); if (hole_goto(hole, party)) return 1; } return 0; }
void back_init(const char *name) { if (back_state) back_free(); /* Load the background SOL and modify its material in-place to use the */ /* named gradient texture. */ if (sol_load_full(&back, "geom/back/back.sol", 0)) { struct mtrl *mp = mtrl_get(back.base.mtrls[0]); mp->o = make_image_from_file(name, IF_MIPMAP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); back_state = 1; } }
void game_client_free(const char *next) { if (gd.state) { game_proxy_clr(); game_lerp_free(&gl); sol_free_draw(&gd.draw); sol_free_vary(&gd.vary); game_base_free(next); sol_free_full(&gd.back); back_free(); } gd.state = 0; }
void conf_common_leave(struct state *st, struct state *next, int id) { back_free(); gui_delete(id); }
static void conf_shared_leave(struct state *st, struct state *next, int id) { back_free(); gui_delete(id); }
static void resol_leave(struct state *st, struct state *next, int id) { back_free(); gui_delete(id); }