X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/f43cb41166abd4e2cb3688d0c486a2c074cc6fa5..18eb897ff68aef4a40e0c966dbcfb7148a12759e:/signpost.c diff --git a/signpost.c b/signpost.c index d4812a2..a9c38f5 100644 --- a/signpost.c +++ b/signpost.c @@ -513,7 +513,7 @@ static void unpick_desc(game_params *params, char *desc, } c = *desc; - if (isdigit(c)) { + if (isdigit((unsigned char)c)) { num = (num*10) + (int)(c-'0'); if (num > state->n) { msg = "Number too large"; @@ -752,6 +752,7 @@ static int new_game_strip(game_state *state, random_state *rs) copy->flags[j] |= FLAG_IMMUTABLE; state->flags[j] |= FLAG_IMMUTABLE; debug_state("Copy of state: ", copy); + strip_nums(copy); if (solve_state(copy) > 0) goto solved; assert(check_nums(state, copy, 1)); } @@ -2121,6 +2122,11 @@ static float game_flash_length(game_state *oldstate, game_state *newstate, return 0.0F; } +static int game_is_solved(game_state *state) +{ + return state->completed; +} + static int game_timing_state(game_state *state, game_ui *ui) { return TRUE; @@ -2202,10 +2208,11 @@ const struct game thegame = { game_redraw, game_anim_length, game_flash_length, + game_is_solved, TRUE, FALSE, game_print_size, game_print, FALSE, /* wants_statusbar */ FALSE, game_timing_state, - REQUIRE_RBUTTON | REQUIRE_NUMPAD, /* flags */ + REQUIRE_RBUTTON, /* flags */ }; #ifdef STANDALONE_SOLVER