From 980880be1f2801b2a69fcc67abc0f5827fd106f2 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Sat, 2 Apr 2011 16:19:12 +0000 Subject: Add a function to every game backend which indicates whether a game state is in a solved position, and a midend function wrapping it. (Or, at least, a situation in which further play is pointless. The point is, given that game state, would it be a good idea for a front end that does that sort of thing to proactively provide the option to start a fresh game?) [originally from svn r9140] --- guess.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'guess.c') diff --git a/guess.c b/guess.c index 38cdf25..a1d9841 100644 --- a/guess.c +++ b/guess.c @@ -1314,6 +1314,18 @@ static float game_flash_length(game_state *oldstate, game_state *newstate, return 0.0F; } +static int game_is_solved(game_state *state) +{ + /* + * We return true whenever the solution has been revealed, even + * (on spoiler grounds) if it wasn't guessed correctly. + * + * However, in that situation, 'solved' is still true, so we don't + * have to make any effort to arrange this. + */ + return state->solved; +} + static int game_timing_state(game_state *state, game_ui *ui) { return TRUE; @@ -1362,6 +1374,7 @@ const struct game thegame = { game_redraw, game_anim_length, game_flash_length, + game_is_solved, FALSE, FALSE, game_print_size, game_print, FALSE, /* wants_statusbar */ FALSE, game_timing_state, -- cgit v1.1