X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/6ec3ee6705865572a35e33556abfce6870a04de6..f875ca4d15049feb61af3073bc14e626ed5bf671:/mines.c diff --git a/mines.c b/mines.c index f6f6a85..13cdc0c 100644 --- a/mines.c +++ b/mines.c @@ -2170,7 +2170,7 @@ static int open_square(game_state *state, int x, int y) static game_state *new_game(midend *me, game_params *params, char *desc) { game_state *state = snew(game_state); - int i, wh, x, y, ret, masked; + int i, wh, x, y, masked; unsigned char *bmp; state->w = params->w; @@ -2265,7 +2265,7 @@ static game_state *new_game(midend *me, game_params *params, char *desc) } if (x >= 0 && y >= 0) - ret = open_square(state, x, y); + open_square(state, x, y); sfree(bmp); } @@ -3084,6 +3084,16 @@ static float game_flash_length(game_state *oldstate, game_state *newstate, return 0.0F; } +static int game_status(game_state *state) +{ + /* + * We report the game as lost only if the player has used the + * Solve function to reveal all the mines. Otherwise, we assume + * they'll undo and continue play. + */ + return state->won ? (state->used_solve ? -1 : +1) : 0; +} + static int game_timing_state(game_state *state, game_ui *ui) { if (state->dead || state->won || ui->completed || !state->layout->mines) @@ -3134,6 +3144,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 */ TRUE, game_timing_state,