X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/4a9957b631033dd550ade368dddad95fbc9d115d..a81df533399ab08ac8ee169cd81bb13c892c31b9:/guess.c diff --git a/guess.c b/guess.c index e09a066..38cdf25 100644 --- a/guess.c +++ b/guess.c @@ -655,20 +655,24 @@ static char *interpret_move(game_state *from, game_ui *ui, game_drawstate *ds, if (from->solved) return NULL; - if (x >= COL_OX && x <= (COL_OX + COL_W) && - y >= COL_OY && y <= (COL_OY + COL_H)) { + if (x >= COL_OX && x < (COL_OX + COL_W) && + y >= COL_OY && y < (COL_OY + COL_H)) { over_col = ((y - COL_OY) / PEGOFF) + 1; + assert(over_col >= 1 && over_col <= ds->colours->npegs); } else if (x >= guess_ox && - y >= guess_oy && y <= (guess_oy + GUESS_H)) { - if (x <= (guess_ox + GUESS_W)) { + y >= guess_oy && y < (guess_oy + GUESS_H)) { + if (x < (guess_ox + GUESS_W)) { over_guess = (x - guess_ox) / PEGOFF; + assert(over_guess >= 0 && over_guess < ds->solution->npegs); } else { over_hint = 1; } - } else if (x >= guess_ox && x <= (guess_ox + GUESS_W) && + } else if (x >= guess_ox && x < (guess_ox + GUESS_W) && y >= GUESS_OY && y < guess_oy) { over_past_guess_y = (y - GUESS_OY) / PEGOFF; over_past_guess_x = (x - guess_ox) / PEGOFF; + assert(over_past_guess_y >= 0 && over_past_guess_y < from->next_go); + assert(over_past_guess_x >= 0 && over_past_guess_x < ds->solution->npegs); } debug(("make_move: over_col %d, over_guess %d, over_hint %d," " over_past_guess (%d,%d)", over_col, over_guess, over_hint, @@ -992,9 +996,9 @@ static float *game_colours(frontend *fe, int *ncolours) /* We also want to be able to tell the difference between BACKGROUND * and EMPTY, for similar distinguishing-hint reasons. */ - ret[COL_EMPTY * 3 + 0] = ret[COL_BACKGROUND * 3 + 0] * 2.0 / 3.0; - ret[COL_EMPTY * 3 + 1] = ret[COL_BACKGROUND * 3 + 1] * 2.0 / 3.0; - ret[COL_EMPTY * 3 + 2] = ret[COL_BACKGROUND * 3 + 2] * 2.0 / 3.0; + ret[COL_EMPTY * 3 + 0] = ret[COL_BACKGROUND * 3 + 0] * 2.0F / 3.0F; + ret[COL_EMPTY * 3 + 1] = ret[COL_BACKGROUND * 3 + 1] * 2.0F / 3.0F; + ret[COL_EMPTY * 3 + 2] = ret[COL_BACKGROUND * 3 + 2] * 2.0F / 3.0F; *ncolours = NCOLOURS; return ret;