X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/844f605fe87ffa1c30cc4a18d2b705495f612b5b..2964478b2dafe4131944bf92a975e8f07fb10a21:/solo.c?ds=sidebyside diff --git a/solo.c b/solo.c index bbe0c31..9c6a1f9 100644 --- a/solo.c +++ b/solo.c @@ -2024,7 +2024,7 @@ static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds, return NULL; sprintf(buf, "%c%d,%d,%d", - ui->hpencil && n > 0 ? 'P' : 'R', ui->hx, ui->hy, n); + (char)(ui->hpencil && n > 0 ? 'P' : 'R'), ui->hx, ui->hy, n); ui->hx = ui->hy = -1; @@ -2090,22 +2090,23 @@ static game_state *execute_move(game_state *from, char *move) */ #define SIZE(cr) ((cr) * TILE_SIZE + 2*BORDER + 1) -#define GETTILESIZE(cr, w) ( (w-1) / (cr+1) ) +#define GETTILESIZE(cr, w) ( (double)(w-1) / (double)(cr+1) ) -static void game_size(game_params *params, game_drawstate *ds, - int *x, int *y, int expand) +static void game_compute_size(game_params *params, int tilesize, + int *x, int *y) { - int c = params->c, r = params->r, cr = c*r; - int ts; + /* Ick: fake up `ds->tilesize' for macro expansion purposes */ + struct { int tilesize; } ads, *ds = &ads; + ads.tilesize = tilesize; - ts = min(GETTILESIZE(cr, *x), GETTILESIZE(cr, *y)); - if (expand) - ds->tilesize = ts; - else - ds->tilesize = min(ts, PREFERRED_TILE_SIZE); + *x = SIZE(params->c * params->r); + *y = SIZE(params->c * params->r); +} - *x = SIZE(cr); - *y = SIZE(cr); +static void game_set_size(game_drawstate *ds, game_params *params, + int tilesize) +{ + ds->tilesize = tilesize; } static float *game_colours(frontend *fe, game_state *state, int *ncolours) @@ -2215,7 +2216,7 @@ static void draw_number(frontend *fe, game_drawstate *ds, game_state *state, coords[3] = cy; coords[4] = cx; coords[5] = cy+ch/2; - draw_polygon(fe, coords, 3, TRUE, COL_HIGHLIGHT); + draw_polygon(fe, coords, 3, COL_HIGHLIGHT, COL_HIGHLIGHT); } /* new number needs drawing? */ @@ -2414,7 +2415,7 @@ const struct game thegame = { game_changed_state, interpret_move, execute_move, - game_size, + PREFERRED_TILE_SIZE, game_compute_size, game_set_size, game_colours, game_new_drawstate, game_free_drawstate, @@ -2438,7 +2439,7 @@ void draw_text(frontend *fe, int x, int y, int fonttype, int fontsize, void draw_rect(frontend *fe, int x, int y, int w, int h, int colour) {} void draw_line(frontend *fe, int x1, int y1, int x2, int y2, int colour) {} void draw_polygon(frontend *fe, int *coords, int npoints, - int fill, int colour) {} + int fillcolour, int outlinecolour) {} void clip(frontend *fe, int x, int y, int w, int h) {} void unclip(frontend *fe) {} void start_draw(frontend *fe) {}