midend *midend_new(frontend *fe, const game *ourgame,
const drawing_api *drapi, void *drhandle);
void midend_free(midend *me);
+const game *midend_which_game(midend *me);
void midend_set_params(midend *me, game_params *params);
game_params *midend_get_params(midend *me);
void midend_size(midend *me, int *x, int *y, int user_size);
char *midend_deserialise(midend *me,
int (*read)(void *ctx, void *buf, int len),
void *rctx);
+char *identify_game(char **name, int (*read)(void *ctx, void *buf, int len),
+ void *rctx);
/* Printing functions supplied by the mid-end */
char *midend_print_puzzle(midend *me, document *doc, int with_soln);
int midend_tilesize(midend *me);
void (*decode_ui)(game_ui *ui, char *encoding);
void (*changed_state)(game_ui *ui, game_state *oldstate,
game_state *newstate);
- char *(*interpret_move)(game_state *state, game_ui *ui, game_drawstate *ds,
- int x, int y, int button);
+ char *(*interpret_move)(game_state *state, game_ui *ui,
+ const game_drawstate *ds, int x, int y, int button);
game_state *(*execute_move)(game_state *state, char *move);
int preferred_tilesize;
void (*compute_size)(game_params *params, int tilesize, int *x, int *y);