X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/df11cd4e43b66b17df44a1e933f5c71361dc13a4..28b5987d5dbdcb396c07b937a638590e5361361e:/flip.c diff --git a/flip.c b/flip.c index a8636dd..1d7c4f5 100644 --- a/flip.c +++ b/flip.c @@ -347,7 +347,7 @@ static void addneighbours(tree234 *t, int w, int h, int cx, int cy, } static char *new_game_desc(game_params *params, random_state *rs, - game_aux_info **aux, int interactive) + char **aux, int interactive) { int w = params->w, h = params->h, wh = w * h; int i, j; @@ -595,11 +595,6 @@ static char *new_game_desc(game_params *params, random_state *rs, return ret; } -static void game_free_aux_info(game_aux_info *aux) -{ - assert(!"Shouldn't happen"); -} - static char *validate_desc(game_params *params, char *desc) { int w = params->w, h = params->h, wh = w * h; @@ -676,7 +671,7 @@ static void rowxor(unsigned char *row1, unsigned char *row2, int len) } static char *solve_game(game_state *state, game_state *currstate, - game_aux_info *aux, char **error) + char *aux, char **error) { int w = state->w, h = state->h, wh = w * h; unsigned char *equations, *solution, *shortest; @@ -871,6 +866,15 @@ static void free_ui(game_ui *ui) { } +static char *encode_ui(game_ui *ui) +{ + return NULL; +} + +static void decode_ui(game_ui *ui, char *encoding) +{ +} + static void game_changed_state(game_ui *ui, game_state *oldstate, game_state *newstate) { @@ -953,19 +957,19 @@ 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; /* * Each window dimension equals the tile size times one more * than the grid dimension (the border is half the width of the * tiles). */ - tsx = *x / (params->w + 1); - tsy = *y / (params->h + 1); + tsx = (double)*x / ((double)params->w + 1.0); + tsy = (double)*y / ((double)params->h + 1); ts = min(tsx, tsy); if (expand) - ds->tilesize = ts; + ds->tilesize = (int)(ts + 0.5); else - ds->tilesize = min(ts, PREFERRED_TILE_SIZE); + ds->tilesize = min((int)ts, PREFERRED_TILE_SIZE); *x = TILE_SIZE * params->w + 2 * BORDER; *y = TILE_SIZE * params->h + 2 * BORDER; @@ -1055,8 +1059,7 @@ static void draw_tile(frontend *fe, game_drawstate *ds, if (animtime < 0.5) colour = COL_WRONG + COL_RIGHT - colour; - draw_polygon(fe, coords, 4, TRUE, colour); - draw_polygon(fe, coords, 4, FALSE, COL_GRID); + draw_polygon(fe, coords, 4, colour, COL_GRID); } /* @@ -1220,7 +1223,6 @@ const struct game thegame = { TRUE, game_configure, custom_params, validate_params, new_game_desc, - game_free_aux_info, validate_desc, new_game, dup_game, @@ -1229,6 +1231,8 @@ const struct game thegame = { FALSE, game_text_format, new_ui, free_ui, + encode_ui, + decode_ui, game_changed_state, interpret_move, execute_move,