shithub: puzzles

Download patch

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;