Highlight the sides as well as the top of a tower when it's
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sat, 16 Jan 2010 12:38:15 +0000 (12:38 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sat, 16 Jan 2010 12:38:15 +0000 (12:38 +0000)
selected. I think this is a more or less aesthetically neutral
change for the actual selection, but the selection code is reused to
draw the victory flash and that's greatly improved by not having the
tower sides remain unflashed.

git-svn-id: svn://svn.tartarus.org/sgt/puzzles@8843 cda61777-01e9-0310-a592-d414129be87e

towers.c

index c3372a3..e29da01 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) {