mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 16:05:44 -07:00
Net: highlight more errors in locked tiles.
If a locked tile has an edge pointing at a barrier, or at another locked tile without a matching edge, colour that edge red.
This commit is contained in:
20
net.c
20
net.c
@ -2915,7 +2915,25 @@ static void game_redraw(drawing *dr, game_drawstate *ds,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (t & d) {
|
if (t & d) {
|
||||||
int edgeval = (t & ERR(d) ? 3 : t & ACTIVE ? 2 : 1);
|
int edgeval;
|
||||||
|
|
||||||
|
/* Highlight as an error any edge in a locked tile that
|
||||||
|
* is adjacent to a lack-of-edge in another locked tile,
|
||||||
|
* or to a barrier */
|
||||||
|
if (t & LOCKED) {
|
||||||
|
if (barrier(state, gx, gy) & d) {
|
||||||
|
t |= ERR(d);
|
||||||
|
} else {
|
||||||
|
int ox, oy, t2;
|
||||||
|
OFFSET(ox, oy, gx, gy, d, state);
|
||||||
|
t2 = tile(state, ox, oy);
|
||||||
|
if ((t2 & LOCKED) && !(t2 & F(d))) {
|
||||||
|
t |= ERR(d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
edgeval = (t & ERR(d) ? 3 : t & ACTIVE ? 2 : 1);
|
||||||
todraw(ds, dx, dy) |= edgeval << (TILE_WIRE_SHIFT + dsh*2);
|
todraw(ds, dx, dy) |= edgeval << (TILE_WIRE_SHIFT + dsh*2);
|
||||||
if (!(gx == tx && gy == ty)) {
|
if (!(gx == tx && gy == ty)) {
|
||||||
todraw(ds, dx + X(d), dy + Y(d)) |=
|
todraw(ds, dx + X(d), dy + Y(d)) |=
|
||||||
|
Reference in New Issue
Block a user