shithub: puzzles

Download patch

ref: 4a9961a572e334b2e8df8ca22dd43e8079cb172e
parent: 854f4b238612b814be162933f2ea21f1e43abbf3
author: Simon Tatham <anakin@pobox.com>
date: Sat Jan 16 07:38:15 EST 2010

Highlight the sides as well as the top of a tower when it's
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.

[originally from svn r8843]

--- a/towers.c
+++ b/towers.c
@@ -1525,12 +1525,14 @@
 		      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 @@
 	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 @@
 	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 @@
     }
 
     /* 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) {