mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
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]
This commit is contained in:
11
towers.c
11
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 x, int y, long tile)
|
||||||
{
|
{
|
||||||
int w = clues->w /* , a = w*w */;
|
int w = clues->w /* , a = w*w */;
|
||||||
int tx, ty;
|
int tx, ty, bg;
|
||||||
char str[64];
|
char str[64];
|
||||||
|
|
||||||
tx = COORD(x);
|
tx = COORD(x);
|
||||||
ty = COORD(y);
|
ty = COORD(y);
|
||||||
|
|
||||||
|
bg = (tile & DF_HIGHLIGHT) ? COL_HIGHLIGHT : COL_BACKGROUND;
|
||||||
|
|
||||||
/* draw tower */
|
/* draw tower */
|
||||||
if (ds->three_d && (tile & DF_PLAYAREA) && (tile & DF_DIGIT_MASK)) {
|
if (ds->three_d && (tile & DF_PLAYAREA) && (tile & DF_DIGIT_MASK)) {
|
||||||
int coords[8];
|
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[5] = coords[3] - yoff;
|
||||||
coords[6] = coords[0] + xoff;
|
coords[6] = coords[0] + xoff;
|
||||||
coords[7] = coords[1] - yoff;
|
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 */
|
/* bottom face of tower */
|
||||||
coords[0] = tx + TILESIZE;
|
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[5] = coords[3] - yoff;
|
||||||
coords[6] = coords[0] + xoff;
|
coords[6] = coords[0] + xoff;
|
||||||
coords[7] = coords[1] - yoff;
|
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 */
|
/* now offset all subsequent drawing to the top of the tower */
|
||||||
tx += xoff;
|
tx += xoff;
|
||||||
@ -1565,8 +1567,7 @@ static void draw_tile(drawing *dr, game_drawstate *ds, struct clues *clues,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* erase background */
|
/* erase background */
|
||||||
draw_rect(dr, tx, ty, TILESIZE, TILESIZE,
|
draw_rect(dr, tx, ty, TILESIZE, TILESIZE, bg);
|
||||||
(tile & DF_HIGHLIGHT) ? COL_HIGHLIGHT : COL_BACKGROUND);
|
|
||||||
|
|
||||||
/* pencil-mode highlight */
|
/* pencil-mode highlight */
|
||||||
if (tile & DF_HIGHLIGHT_PENCIL) {
|
if (tile & DF_HIGHLIGHT_PENCIL) {
|
||||||
|
Reference in New Issue
Block a user