Tracks: tighten up a small loophole in completion checking.

If you had a single connected path linking the source to the
destination but _also_ had a spurious edge elsewhere in the grid, then
the spurious edge would be highlighted as an error, but it wouldn't
inhibit declaring the game complete and showing the victory flash.
This commit is contained in:
Simon Tatham
2016-02-24 19:18:30 +00:00
parent 01844d39c6
commit 755c3d5277

View File

@ -1646,8 +1646,10 @@ static int check_completion(game_state *state, int mark)
for (i = 0; i < w*h; i++) { for (i = 0; i < w*h; i++) {
if ((dsf_canonify(dsf, i) != pathclass) && if ((dsf_canonify(dsf, i) != pathclass) &&
((state->sflags[i] & S_TRACK) || ((state->sflags[i] & S_TRACK) ||
(S_E_COUNT(state, i%w, i/w, E_TRACK) > 0))) (S_E_COUNT(state, i%w, i/w, E_TRACK) > 0))) {
ret = FALSE;
state->sflags[i] |= S_ERROR; state->sflags[i] |= S_ERROR;
}
} }
} }
} }