shithub: puzzles

Download patch

ref: 988b16a3191282a5407f6cee88d62aaae853be3d
parent: bf81e9c1fac2dc891d15d107a56db0c9b7482c20
author: Jonas Kölker <jonaskoelker@yahoo.com>
date: Thu Oct 8 07:00:29 EDT 2015

End victory flash on new game and restart game.

Net provides the best demonstration of why. Complete a game of net,
then press N while the victory flash is playing: then the victory
flash keeps playing on the new game board. (Tip: save a game which
but for a redo is completed, then you can reproduce this repeatedly
without having to complete a new game each time.)

The flash timer reset code is placed together with the animation
timer reset code, because the two are conceptually related. Note
that midend_restart_game resets animations via midend_finish_move.

--- a/midend.c
+++ b/midend.c
@@ -454,6 +454,7 @@
 					       me->states[0].state);
     midend_size_new_drawstate(me);
     me->elapsed = 0.0F;
+    me->flash_pos = me->flash_time = 0.0F;
     me->anim_pos = me->anim_time = 0.0F;
     if (me->ui)
         me->ourgame->free_ui(me->ui);
@@ -575,6 +576,7 @@
         me->ourgame->changed_state(me->ui,
                                    me->states[me->statepos-2].state,
                                    me->states[me->statepos-1].state);
+    me->flash_pos = me->flash_time = 0.0F;
     midend_finish_move(me);
     midend_redraw(me);
     midend_set_timer(me);