chiark / gitweb /
Fix completion checking in Killer Solo.
[sgt-puzzles.git] / midend.c
index 3107027963db09fdc2a89d41966311fedf62288d..190840af62531cdc08de4f8c642c474327aff7c6 100644 (file)
--- a/midend.c
+++ b/midend.c
@@ -355,6 +355,7 @@ void midend_force_redraw(midend *me)
 
 void midend_new_game(midend *me)
 {
+    midend_stop_anim(me);
     midend_free_game(me);
 
     assert(me->nstates == 0);
@@ -453,6 +454,8 @@ 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);
     me->ui = me->ourgame->new_ui(me->states[0].state);
@@ -546,8 +549,6 @@ void midend_restart_game(midend *me)
 {
     game_state *s;
 
-    midend_stop_anim(me);
-
     assert(me->statepos >= 1);
     if (me->statepos == 1)
         return;                        /* no point doing anything at all! */
@@ -575,7 +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->anim_time = 0.0;
+    me->flash_pos = me->flash_time = 0.0F;
     midend_finish_move(me);
     midend_redraw(me);
     midend_set_timer(me);
@@ -596,7 +597,6 @@ static int midend_really_process_key(midend *me, int x, int y, int button)
 
     if (!movestr) {
        if (button == 'n' || button == 'N' || button == '\x0E') {
-           midend_stop_anim(me);
            midend_new_game(me);
            midend_redraw(me);
            goto done;                 /* never animate */