From e73ca44d31d69b43224260ce04d06a745793800e Mon Sep 17 00:00:00 2001 From: simon Date: Sat, 7 May 2005 16:07:26 +0000 Subject: [PATCH] solve_game() is passed the _initial_ game state, not the most recent one; so we can't just set `ret->completed = ret->movecount' and hope it's been set to something other than zero. Instead, we set both move counts to 1, which is entirely arbitrary but works. This fixes a subtle bug with the Solve feature: if you pressed Solve, then disturbed the grid, then brought it back to the solved state by making more forward moves (rather than using Undo), then the first time you did this the `Moves since auto-solve' status line would reset to zero. git-svn-id: svn://svn.tartarus.org/sgt/puzzles@5759 cda61777-01e9-0310-a592-d414129be87e --- fifteen.c | 2 +- netslide.c | 2 +- sixteen.c | 2 +- twiddle.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/fifteen.c b/fifteen.c index 0ed5067..3aba7fa 100644 --- a/fifteen.c +++ b/fifteen.c @@ -398,7 +398,7 @@ static game_state *solve_game(game_state *state, game_aux_info *aux, ret->tiles[i] = (i+1) % ret->n; ret->gap_pos = ret->n-1; ret->used_solve = ret->just_used_solve = TRUE; - ret->completed = ret->movecount; + ret->completed = ret->movecount = 1; return ret; } diff --git a/netslide.c b/netslide.c index f367621..02fa438 100644 --- a/netslide.c +++ b/netslide.c @@ -805,7 +805,7 @@ static game_state *solve_game(game_state *state, game_aux_info *aux, ret = dup_game(state); memcpy(ret->tiles, state->solution->tiles, ret->width * ret->height); ret->used_solve = ret->just_used_solve = TRUE; - ret->completed = ret->move_count; + ret->completed = ret->move_count = 1; return ret; } diff --git a/sixteen.c b/sixteen.c index 950f724..3a5ce8a 100644 --- a/sixteen.c +++ b/sixteen.c @@ -406,7 +406,7 @@ static game_state *solve_game(game_state *state, game_aux_info *aux, for (i = 0; i < ret->n; i++) ret->tiles[i] = i+1; ret->used_solve = ret->just_used_solve = TRUE; - ret->completed = ret->movecount; + ret->completed = ret->movecount = 1; return ret; } diff --git a/twiddle.c b/twiddle.c index 8fd0b21..6c51cb7 100644 --- a/twiddle.c +++ b/twiddle.c @@ -492,7 +492,7 @@ static game_state *solve_game(game_state *state, game_aux_info *aux, for (i = 0; i < ret->w*ret->h; i++) ret->grid[i] &= ~3; ret->used_solve = ret->just_used_solve = TRUE; - ret->completed = ret->movecount; + ret->completed = ret->movecount = 1; return ret; } -- 2.11.0