X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/b2ae5b05c9bd381daec303c6b038a12e7a0fbde2..a81df533399ab08ac8ee169cd81bb13c892c31b9:/pattern.c diff --git a/pattern.c b/pattern.c index 787e591..7c1b0f2 100644 --- a/pattern.c +++ b/pattern.c @@ -569,7 +569,7 @@ static char *validate_desc(game_params *params, char *desc) if (*desc && isdigit((unsigned char)*desc)) { do { p = desc; - while (desc && isdigit((unsigned char)*desc)) desc++; + while (*desc && isdigit((unsigned char)*desc)) desc++; n = atoi(p); rowspace -= n+1; @@ -620,7 +620,7 @@ static game_state *new_game(midend *me, game_params *params, char *desc) if (*desc && isdigit((unsigned char)*desc)) { do { p = desc; - while (desc && isdigit((unsigned char)*desc)) desc++; + while (*desc && isdigit((unsigned char)*desc)) desc++; state->rowdata[state->rowsize * i + state->rowlen[i]++] = atoi(p); } while (*desc++ == '.'); @@ -808,7 +808,7 @@ static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds, ui->drag = LEFT_DRAG; ui->release = LEFT_RELEASE; #ifdef STYLUS_BASED - ui->state = currstate == GRID_FULL ? GRID_UNKNOWN : GRID_FULL; + ui->state = (currstate + 2) % 3; /* FULL -> EMPTY -> UNKNOWN */ #else ui->state = GRID_FULL; #endif @@ -816,7 +816,7 @@ static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds, ui->drag = RIGHT_DRAG; ui->release = RIGHT_RELEASE; #ifdef STYLUS_BASED - ui->state = currstate == GRID_EMPTY ? GRID_UNKNOWN : GRID_EMPTY; + ui->state = (currstate + 1) % 3; /* EMPTY -> FULL -> UNKNOWN */ #else ui->state = GRID_EMPTY; #endif @@ -1045,6 +1045,7 @@ static game_drawstate *game_new_drawstate(drawing *dr, game_state *state) ds->visible = snewn(ds->w * ds->h, unsigned char); ds->tilesize = 0; /* not decided yet */ memset(ds->visible, 255, ds->w * ds->h); + ds->cur_x = ds->cur_y = 0; return ds; }