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.
This commit is contained in:
Jonas Kölker
2015-10-08 11:00:29 +02:00
committed by Simon Tatham
parent bf81e9c1fa
commit 988b16a319

View File

@ -454,6 +454,7 @@ void midend_new_game(midend *me)
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 @@ void midend_restart_game(midend *me)
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);