From: Simon Tatham Date: Sat, 19 Jan 2013 18:56:06 +0000 (+0000) Subject: Bring Pearl's game-completion handling in line with my usual practice: X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=8a7dad6d2d3bca56b2473bed6b70e184cf7dced5;p=sgt-puzzles.git Bring Pearl's game-completion handling in line with my usual practice: the 'completed' flag is not reset if you make a new move transforming a solved game into an unsolved state, so the game won't flash again if you manually erase and redraw a line segment (though it still will if you undo and redo past the first solved state in the undo history). [originally from svn r9750] --- diff --git a/pearl.c b/pearl.c index 9670592..ed1ee16 100644 --- a/pearl.c +++ b/pearl.c @@ -1640,8 +1640,6 @@ static void check_completion(game_state *state, int mark) if (!had_error && loopclass != -1) { state->completed = TRUE; state->loop_length = dsfsize[loopclass]; - } else { - state->completed = FALSE; } sfree(dsf); @@ -2450,8 +2448,8 @@ static float game_anim_length(game_state *oldstate, game_state *newstate, static float game_flash_length(game_state *oldstate, game_state *newstate, int dir, game_ui *ui) { - if (!oldstate->completed && - newstate->completed && !newstate->used_solve) + if (!oldstate->completed && newstate->completed && + !oldstate->used_solve && !newstate->used_solve) return FLASH_TIME; else return 0.0F;