From: Simon Tatham Date: Wed, 8 Dec 2004 08:08:00 +0000 (+0000) Subject: Game completion detection was occasionally failing to spot a X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=47e9419452a9fca895f1c84412ab1040d1aa86a5;p=sgt-puzzles.git Game completion detection was occasionally failing to spot a lingering GRID_UNKNOWN, causing it to declare victory too soon. [originally from svn r4954] --- diff --git a/pattern.c b/pattern.c index d597127..ca71fba 100644 --- a/pattern.c +++ b/pattern.c @@ -322,16 +322,16 @@ int compute_rowdata(int *ret, unsigned char *start, int len, int step) n = 0; for (i = 0; i < len; i++) { - if (start[i*step] == GRID_UNKNOWN) - return -1; - if (start[i*step] == GRID_FULL) { int runlen = 1; - while (i+runlen < len && start[(i+runlen)*step]) + while (i+runlen < len && start[(i+runlen)*step] == GRID_FULL) runlen++; ret[n++] = runlen; i += runlen; } + + if (start[i*step] == GRID_UNKNOWN) + return -1; } return n;