X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/d0990f1a928b3d8fa1acf0176057f4c094e5cb07..HEAD:/unfinished/slide.c diff --git a/unfinished/slide.c b/unfinished/slide.c index d149657..38ef4d0 100644 --- a/unfinished/slide.c +++ b/unfinished/slide.c @@ -821,6 +821,9 @@ static void generate_board(int w, int h, int *rtx, int *rty, int *minmoves, } } + sfree(dsf); + sfree(list); + sfree(tried_merge); sfree(board2); *rtx = tx; @@ -892,7 +895,7 @@ static char *validate_desc(game_params *params, char *desc) { int w = params->w, h = params->h, wh = w*h; int *active, *link; - int mains = 0, mpos = -1; + int mains = 0; int i, tx, ty, minmoves; char *ret; @@ -963,7 +966,6 @@ static char *validate_desc(game_params *params, char *desc) link[i] = -1; if (strchr("mM", c) != NULL) { mains++; - mpos = i; } i++; } @@ -1166,6 +1168,11 @@ static char *solve_game(game_state *state, game_state *currstate, return ret; } +static int game_can_format_as_text_now(game_params *params) +{ + return TRUE; +} + static char *game_text_format(game_state *state) { return board_text_format(state->w, state->h, state->board, @@ -1235,8 +1242,8 @@ struct game_drawstate { int started; }; -static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds, - int x, int y, int button) +static char *interpret_move(game_state *state, game_ui *ui, + const game_drawstate *ds, int x, int y, int button) { int w = state->w, h = state->h, wh = w*h; int tx, ty, i, j; @@ -1592,7 +1599,8 @@ static void game_compute_size(game_params *params, int tilesize, int *x, int *y) { /* fool the macros */ - struct dummy { int tilesize; } dummy = { tilesize }, *ds = &dummy; + struct dummy { int tilesize; } dummy, *ds = &dummy; + dummy.tilesize = tilesize; *x = params->w * TILESIZE + 2*BORDER; *y = params->h * TILESIZE + 2*BORDER; @@ -2284,6 +2292,11 @@ static float game_flash_length(game_state *oldstate, game_state *newstate, return 0.0F; } +static int game_status(game_state *state) +{ + return state->completed ? +1 : 0; +} + static int game_timing_state(game_state *state, game_ui *ui) { return TRUE; @@ -2298,7 +2311,7 @@ static void game_print(drawing *dr, game_state *state, int tilesize) } #ifdef COMBINED -#define thegame nullgame +#define thegame slide #endif const struct game thegame = { @@ -2317,7 +2330,7 @@ const struct game thegame = { dup_game, free_game, TRUE, solve_game, - TRUE, game_text_format, + TRUE, game_can_format_as_text_now, game_text_format, new_ui, free_ui, encode_ui, @@ -2332,6 +2345,7 @@ const struct game thegame = { game_redraw, game_anim_length, game_flash_length, + game_status, FALSE, FALSE, game_print_size, game_print, TRUE, /* wants_statusbar */ FALSE, game_timing_state, @@ -2348,14 +2362,17 @@ int main(int argc, char **argv) game_state *s; char *id = NULL, *desc, *err; int count = FALSE; - int ret, really_verbose = FALSE; + int ret; int *moves; while (--argc > 0) { char *p = *++argv; + /* if (!strcmp(p, "-v")) { - really_verbose = TRUE; - } else if (!strcmp(p, "-c")) { + verbose = TRUE; + } else + */ + if (!strcmp(p, "-c")) { count = TRUE; } else if (*p == '-') { fprintf(stderr, "%s: unrecognised option `%s'\n", argv[0], p);