X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/72c158219fd9dbf19a01f2bf62303627a5e414e4..522cc971b8020d03f598b8413c82658fdd556fd5:/lightup.c diff --git a/lightup.c b/lightup.c index 5d27fde..47b49b2 100644 --- a/lightup.c +++ b/lightup.c @@ -215,6 +215,11 @@ static void decode_params(game_params *params, char const *string) if (*string == 's') { string++; EATNUM(params->symm); + } else { + /* cope with user input such as '18x10' by ensuring symmetry + * is not selected by default to be incompatible with dimensions */ + if (params->symm == SYMM_ROT4 && params->w != params->h) + params->symm = SYMM_ROT2; } params->difficulty = 0; /* cope with old params */ @@ -1672,7 +1677,7 @@ static char *solve_game(game_state *state, game_state *currstate, /* That didn't work; try solving from the clean puzzle. */ solved = dup_game(state); if (dosolve(solved, sflags, NULL) > 0) goto solved; - *error = "Puzzle is not self-consistent."; + *error = "Unable to find a solution to this puzzle."; goto done; solved: @@ -2160,9 +2165,9 @@ static float game_flash_length(game_state *oldstate, game_state *newstate, return 0.0F; } -static int game_is_solved(game_state *state) +static int game_status(game_state *state) { - return state->completed; + return state->completed ? +1 : 0; } static int game_timing_state(game_state *state, game_ui *ui) @@ -2267,7 +2272,7 @@ const struct game thegame = { game_redraw, game_anim_length, game_flash_length, - game_is_solved, + game_status, TRUE, FALSE, game_print_size, game_print, FALSE, /* wants_statusbar */ FALSE, game_timing_state,