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.
This commit is contained in:
Jonas Kölker
2015-10-13 15:47:42 +02:00
committed by Simon Tatham
parent 80b63e6cef
commit 44e2690abb

View File

@ -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++;