X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/1a07a34dc03de7220c8924cd05ea47201de9ab55..9537a20c2976c1a12380c91609eb8d383ef2c52e:/towers.c diff --git a/towers.c b/towers.c index c3372a3..bd39554 100644 --- a/towers.c +++ b/towers.c @@ -1225,14 +1225,13 @@ static int check_errors(game_state *state, int *errors) } for (i = 0; i < 4*w; i++) { - int start, step, j, k, n, best; + int start, step, j, n, best; STARTSTEP(start, step, i, w); if (!clues[i]) continue; best = n = 0; - k = 0; for (j = 0; j < w; j++) { int number = grid[start+j*step]; if (!number) @@ -1256,7 +1255,7 @@ static int check_errors(game_state *state, int *errors) return errs; } -static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds, +static char *interpret_move(game_state *state, game_ui *ui, const game_drawstate *ds, int x, int y, int button) { int w = state->par.w; @@ -1525,12 +1524,14 @@ static void draw_tile(drawing *dr, game_drawstate *ds, struct clues *clues, int x, int y, long tile) { int w = clues->w /* , a = w*w */; - int tx, ty; + int tx, ty, bg; char str[64]; tx = COORD(x); ty = COORD(y); + bg = (tile & DF_HIGHLIGHT) ? COL_HIGHLIGHT : COL_BACKGROUND; + /* draw tower */ if (ds->three_d && (tile & DF_PLAYAREA) && (tile & DF_DIGIT_MASK)) { int coords[8]; @@ -1546,7 +1547,7 @@ static void draw_tile(drawing *dr, game_drawstate *ds, struct clues *clues, coords[5] = coords[3] - yoff; coords[6] = coords[0] + xoff; coords[7] = coords[1] - yoff; - draw_polygon(dr, coords, 4, COL_BACKGROUND, COL_GRID); + draw_polygon(dr, coords, 4, bg, COL_GRID); /* bottom face of tower */ coords[0] = tx + TILESIZE; @@ -1557,7 +1558,7 @@ static void draw_tile(drawing *dr, game_drawstate *ds, struct clues *clues, coords[5] = coords[3] - yoff; coords[6] = coords[0] + xoff; coords[7] = coords[1] - yoff; - draw_polygon(dr, coords, 4, COL_BACKGROUND, COL_GRID); + draw_polygon(dr, coords, 4, bg, COL_GRID); /* now offset all subsequent drawing to the top of the tower */ tx += xoff; @@ -1565,8 +1566,7 @@ static void draw_tile(drawing *dr, game_drawstate *ds, struct clues *clues, } /* erase background */ - draw_rect(dr, tx, ty, TILESIZE, TILESIZE, - (tile & DF_HIGHLIGHT) ? COL_HIGHLIGHT : COL_BACKGROUND); + draw_rect(dr, tx, ty, TILESIZE, TILESIZE, bg); /* pencil-mode highlight */ if (tile & DF_HIGHLIGHT_PENCIL) { @@ -1808,6 +1808,11 @@ static float game_flash_length(game_state *oldstate, game_state *newstate, return 0.0F; } +static int game_status(game_state *state) +{ + return state->completed ? +1 : 0; +} + static int game_timing_state(game_state *state, game_ui *ui) { if (state->completed) @@ -1927,6 +1932,7 @@ const struct game thegame = { game_redraw, game_anim_length, game_flash_length, + game_status, TRUE, FALSE, game_print_size, game_print, FALSE, /* wants_statusbar */ FALSE, game_timing_state,