X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/844f605fe87ffa1c30cc4a18d2b705495f612b5b..1b4fd2a2aa47f2a670a44330e14baf156d22bea1:/samegame.c diff --git a/samegame.c b/samegame.c index 18110f5..a384c0b 100644 --- a/samegame.c +++ b/samegame.c @@ -689,7 +689,7 @@ static game_state *execute_move(game_state *from, char *move) static void game_size(game_params *params, game_drawstate *ds, int *x, int *y, int expand) { - int tsx, tsy, ts; + double tsx, tsy, ts; /* * We could choose the tile gap dynamically as well if we @@ -708,14 +708,14 @@ static void game_size(game_params *params, game_drawstate *ds, int *x, int *y, * We must cast to unsigned before adding to *x and *y, since * they might be INT_MAX! */ - tsx = (unsigned)(*x + ds->tilegap) / (params->w + 1); - tsy = (unsigned)(*y + ds->tilegap) / (params->h + 1); + tsx = ((double)*x + (double)ds->tilegap) / ((double)params->w + 1.0); + tsy = ((double)*y + (double)ds->tilegap) / ((double)params->h + 1.0); ts = min(tsx, tsy); if (expand) - ds->tileinner = ts - ds->tilegap; + ds->tileinner = (int)(ts+0.5) - ds->tilegap; else - ds->tileinner = min(ts, PREFERRED_TILE_SIZE) - ds->tilegap; + ds->tileinner = min((int)ts, PREFERRED_TILE_SIZE) - ds->tilegap; *x = TILE_SIZE * params->w + 2 * BORDER - TILE_GAP; *y = TILE_SIZE * params->h + 2 * BORDER - TILE_GAP; @@ -883,13 +883,11 @@ static void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate, coords[9] = COORD(state->params.h) + HIGHLIGHT_WIDTH - 1 - TILE_GAP; coords[6] = coords[8] + TILE_SIZE; coords[7] = coords[9] - TILE_SIZE; - draw_polygon(fe, coords, 5, TRUE, COL_HIGHLIGHT); - draw_polygon(fe, coords, 5, FALSE, COL_HIGHLIGHT); + draw_polygon(fe, coords, 5, COL_HIGHLIGHT, COL_HIGHLIGHT); coords[1] = COORD(0) - HIGHLIGHT_WIDTH; coords[0] = COORD(0) - HIGHLIGHT_WIDTH; - draw_polygon(fe, coords, 5, TRUE, COL_LOWLIGHT); - draw_polygon(fe, coords, 5, FALSE, COL_LOWLIGHT); + draw_polygon(fe, coords, 5, COL_LOWLIGHT, COL_LOWLIGHT); ds->started = 1; }