chiark / gitweb /
Highlight the sides as well as the top of a tower when it's
[sgt-puzzles.git] / towers.c
index c3372a3e47524d6c29dfd4882ef38488d5e7216a..e29da015431417d9db8c46eb11f5b2a7066418b2 100644 (file)
--- a/towers.c
+++ b/towers.c
@@ -1525,12 +1525,14 @@ static void draw_tile(drawing *dr, game_drawstate *ds, struct clues *clues,
                      int x, int y, long tile)
 {
     int w = clues->w /* , a = w*w */;
-    int tx, ty;
+    int tx, ty, bg;
     char str[64];
 
     tx = COORD(x);
     ty = COORD(y);
 
+    bg = (tile & DF_HIGHLIGHT) ? COL_HIGHLIGHT : COL_BACKGROUND;
+
     /* draw tower */
     if (ds->three_d && (tile & DF_PLAYAREA) && (tile & DF_DIGIT_MASK)) {
        int coords[8];
@@ -1546,7 +1548,7 @@ static void draw_tile(drawing *dr, game_drawstate *ds, struct clues *clues,
        coords[5] = coords[3] - yoff;
        coords[6] = coords[0] + xoff;
        coords[7] = coords[1] - yoff;
-       draw_polygon(dr, coords, 4, COL_BACKGROUND, COL_GRID);
+       draw_polygon(dr, coords, 4, bg, COL_GRID);
 
        /* bottom face of tower */
        coords[0] = tx + TILESIZE;
@@ -1557,7 +1559,7 @@ static void draw_tile(drawing *dr, game_drawstate *ds, struct clues *clues,
        coords[5] = coords[3] - yoff;
        coords[6] = coords[0] + xoff;
        coords[7] = coords[1] - yoff;
-       draw_polygon(dr, coords, 4, COL_BACKGROUND, COL_GRID);
+       draw_polygon(dr, coords, 4, bg, COL_GRID);
 
        /* now offset all subsequent drawing to the top of the tower */
        tx += xoff;
@@ -1565,8 +1567,7 @@ static void draw_tile(drawing *dr, game_drawstate *ds, struct clues *clues,
     }
 
     /* erase background */
-    draw_rect(dr, tx, ty, TILESIZE, TILESIZE,
-             (tile & DF_HIGHLIGHT) ? COL_HIGHLIGHT : COL_BACKGROUND);
+    draw_rect(dr, tx, ty, TILESIZE, TILESIZE, bg);
 
     /* pencil-mode highlight */
     if (tile & DF_HIGHLIGHT_PENCIL) {