X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/df11cd4e43b66b17df44a1e933f5c71361dc13a4..5c9f61fd500f6fd53a9f33721a1e66b9d5e1d9cc:/samegame.c diff --git a/samegame.c b/samegame.c index 95ced1a..ed516e2 100644 --- a/samegame.c +++ b/samegame.c @@ -240,7 +240,7 @@ static char *validate_params(game_params *params) */ static char *new_game_desc(game_params *params, random_state *rs, - game_aux_info **aux, int interactive) + char **aux, int interactive) { char *ret; int n, i, j, c, retlen, *tiles; @@ -282,11 +282,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 area = params->w * params->h, i; @@ -356,7 +351,7 @@ static void free_game(game_state *state) } static char *solve_game(game_state *state, game_state *currstate, - game_aux_info *aux, char **error) + char *aux, char **error) { return NULL; } @@ -411,6 +406,15 @@ static void free_ui(game_ui *ui) sfree(ui); } +static char *encode_ui(game_ui *ui) +{ + return NULL; +} + +static void decode_ui(game_ui *ui, char *encoding) +{ +} + static void sel_clear(game_ui *ui, game_state *state) { int i; @@ -685,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 @@ -704,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; @@ -990,7 +994,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, @@ -999,6 +1002,8 @@ const struct game thegame = { TRUE, game_text_format, new_ui, free_ui, + encode_ui, + decode_ui, game_changed_state, interpret_move, execute_move,