ref: 8a7dad6d2d3bca56b2473bed6b70e184cf7dced5
parent: 6b6442b16c5de9f5f9479b736bf865a4236047cb
author: Simon Tatham <anakin@pobox.com>
date: Sat Jan 19 13:56:06 EST 2013
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]
--- a/pearl.c
+++ b/pearl.c
@@ -1640,8 +1640,6 @@
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_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;