Stop the analysis pass in Loopy's redraw routine from being
[sgt/puzzles] / netslide.c
index 99eb6e1..8d18652 100644 (file)
@@ -1056,10 +1056,10 @@ struct game_drawstate {
 };
 
 static char *interpret_move(game_state *state, game_ui *ui,
-                           game_drawstate *ds, int x, int y, int button)
+                           const game_drawstate *ds, int x, int y, int button)
 {
     int cx, cy;
-    int n, dx, dy;
+    int dx, dy;
     char buf[80];
 
     button &= ~MOD_MASK;
@@ -1101,7 +1101,6 @@ static char *interpret_move(game_state *state, game_ui *ui,
         if (cx == -1) dx = +1;
         else if (cx == state->width) dx = -1;
         else return NULL;
-        n = state->width;
         dy = 0;
     }
     else if (cx >= 0 && cx < state->width && cx != state->cx)
@@ -1109,7 +1108,6 @@ static char *interpret_move(game_state *state, game_ui *ui,
         if (cy == -1) dy = +1;
         else if (cy == state->height) dy = -1;
         else return NULL;
-        n = state->height;
         dx = 0;
     }
     else
@@ -1307,8 +1305,8 @@ static float *game_colours(frontend *fe, int *ncolours)
     return ret;
 }
 
-static void draw_thick_line(drawing *dr, int x1, int y1, int x2, int y2,
-                            int colour)
+static void draw_filled_line(drawing *dr, int x1, int y1, int x2, int y2,
+                            int colour)
 {
     draw_line(dr, x1-1, y1, x2-1, y2, COL_WIRE);
     draw_line(dr, x1+1, y1, x2+1, y2, COL_WIRE);
@@ -1420,9 +1418,9 @@ static void draw_tile(drawing *dr, game_drawstate *ds, game_state *state,
         if (tile & dir) {
             ex = (TILE_SIZE - TILE_BORDER - 1.0F) / 2.0F * X(dir);
             ey = (TILE_SIZE - TILE_BORDER - 1.0F) / 2.0F * Y(dir);
-            draw_thick_line(dr, bx+(int)cx, by+(int)cy,
-                           bx+(int)(cx+ex), by+(int)(cy+ey),
-                            COL_WIRE);
+            draw_filled_line(dr, bx+(int)cx, by+(int)cy,
+                            bx+(int)(cx+ex), by+(int)(cy+ey),
+                            COL_WIRE);
         }
     }
     for (dir = 1; dir < 0x10; dir <<= 1) {
@@ -1585,7 +1583,7 @@ static void draw_arrow_for_cursor(drawing *dr, game_drawstate *ds,
 static void game_redraw(drawing *dr, game_drawstate *ds, game_state *oldstate,
                  game_state *state, int dir, game_ui *ui, float t, float ft)
 {
-    int x, y, tx, ty, frame;
+    int x, y, frame;
     unsigned char *active;
     float xshift = 0.0;
     float yshift = 0.0;
@@ -1677,7 +1675,6 @@ static void game_redraw(drawing *dr, game_drawstate *ds, game_state *oldstate,
         t = ANIM_TIME - t;
     }
 
-    tx = ty = -1;
     if (oldstate && (t < ANIM_TIME)) {
         /*
          * We're animating a slide, of row/column number
@@ -1829,6 +1826,11 @@ static float game_flash_length(game_state *oldstate,
     return 0.0F;
 }
 
+static int game_status(game_state *state)
+{
+    return state->completed ? +1 : 0;
+}
+
 static int game_timing_state(game_state *state, game_ui *ui)
 {
     return FALSE;
@@ -1877,6 +1879,7 @@ const struct game thegame = {
     game_redraw,
     game_anim_length,
     game_flash_length,
+    game_status,
     FALSE, FALSE, game_print_size, game_print,
     TRUE,                             /* wants_statusbar */
     FALSE, game_timing_state,