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);