mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
Fix a display glitch in Keen's pencil-mode cursor.
Draw pencil-mode cursor before corners of thick lines in order to make the thick lines appear on top of the north-west corner of the pencil cursor, just like they do with the non-pencil cursor.
This commit is contained in:

committed by
Simon Tatham

parent
b9dfef7a12
commit
6482ed0e3c
24
keen.c
24
keen.c
@ -1790,6 +1790,18 @@ static void draw_tile(drawing *dr, game_drawstate *ds, struct clues *clues,
|
|||||||
draw_rect(dr, cx, cy, cw, ch,
|
draw_rect(dr, cx, cy, cw, ch,
|
||||||
(tile & DF_HIGHLIGHT) ? COL_HIGHLIGHT : COL_BACKGROUND);
|
(tile & DF_HIGHLIGHT) ? COL_HIGHLIGHT : COL_BACKGROUND);
|
||||||
|
|
||||||
|
/* pencil-mode highlight */
|
||||||
|
if (tile & DF_HIGHLIGHT_PENCIL) {
|
||||||
|
int coords[6];
|
||||||
|
coords[0] = cx;
|
||||||
|
coords[1] = cy;
|
||||||
|
coords[2] = cx+cw/2;
|
||||||
|
coords[3] = cy;
|
||||||
|
coords[4] = cx;
|
||||||
|
coords[5] = cy+ch/2;
|
||||||
|
draw_polygon(dr, coords, 3, COL_HIGHLIGHT, COL_HIGHLIGHT);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Draw the corners of thick lines in corner-adjacent squares,
|
* Draw the corners of thick lines in corner-adjacent squares,
|
||||||
* which jut into this square by one pixel.
|
* which jut into this square by one pixel.
|
||||||
@ -1803,18 +1815,6 @@ static void draw_tile(drawing *dr, game_drawstate *ds, struct clues *clues,
|
|||||||
if (x+1 < w && y+1 < w && dsf_canonify(clues->dsf, y*w+x) != dsf_canonify(clues->dsf, (y+1)*w+x+1))
|
if (x+1 < w && y+1 < w && dsf_canonify(clues->dsf, y*w+x) != dsf_canonify(clues->dsf, (y+1)*w+x+1))
|
||||||
draw_rect(dr, tx+TILESIZE-1-2*GRIDEXTRA, ty+TILESIZE-1-2*GRIDEXTRA, GRIDEXTRA, GRIDEXTRA, COL_GRID);
|
draw_rect(dr, tx+TILESIZE-1-2*GRIDEXTRA, ty+TILESIZE-1-2*GRIDEXTRA, GRIDEXTRA, GRIDEXTRA, COL_GRID);
|
||||||
|
|
||||||
/* pencil-mode highlight */
|
|
||||||
if (tile & DF_HIGHLIGHT_PENCIL) {
|
|
||||||
int coords[6];
|
|
||||||
coords[0] = cx;
|
|
||||||
coords[1] = cy;
|
|
||||||
coords[2] = cx+cw/2;
|
|
||||||
coords[3] = cy;
|
|
||||||
coords[4] = cx;
|
|
||||||
coords[5] = cy+ch/2;
|
|
||||||
draw_polygon(dr, coords, 3, COL_HIGHLIGHT, COL_HIGHLIGHT);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Draw the box clue. */
|
/* Draw the box clue. */
|
||||||
if (dsf_canonify(clues->dsf, y*w+x) == y*w+x) {
|
if (dsf_canonify(clues->dsf, y*w+x) == y*w+x) {
|
||||||
long clue = clues->clues[y*w+x];
|
long clue = clues->clues[y*w+x];
|
||||||
|
Reference in New Issue
Block a user