From 44e2690abb523aa60558ca6326eaeb9ce6287454 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jonas=20K=C3=B6lker?= Date: Tue, 13 Oct 2015 15:47:42 +0200 Subject: [PATCH] Highlight clue errors in Tracks in some more situations. - Count any square as having a track either if the square is marked as such (rendered as a different background), or if at least one adjacent edge is marked as containing a segment of train track (rendered as train tracks if they're placed, else as an '='). - Do the same counting in rows and columns. --- tracks.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tracks.c b/tracks.c index 0944ca1..c6b3d8e 100644 --- a/tracks.c +++ b/tracks.c @@ -1538,7 +1538,8 @@ static int check_completion(game_state *state, int mark) target = state->numbers->numbers[x]; ntrack = nnotrack = 0; for (y = 0; y < h; y++) { - if (S_E_COUNT(state, x, y, E_TRACK) > 0) + if (S_E_COUNT(state, x, y, E_TRACK) > 0 || + state->sflags[y*w+x] & S_TRACK) ntrack++; if (state->sflags[y*w+x] & S_NOTRACK) nnotrack++; @@ -1557,7 +1558,8 @@ static int check_completion(game_state *state, int mark) target = state->numbers->numbers[w+y]; ntrack = nnotrack = 0; for (x = 0; x < w; x++) { - if (S_E_COUNT(state, x, y, E_TRACK) == 2) + if (S_E_COUNT(state, x, y, E_TRACK) > 0 || + state->sflags[y*w+x] & S_TRACK) ntrack++; if (state->sflags[y*w+x] & S_NOTRACK) nnotrack++; -- 2.30.2