X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/74a4e547b35f162350dcf205aa453fd32820d249..cbb5549e12c8edfd8b38b642b7b25c1fb8912c9b:/fifteen.c diff --git a/fifteen.c b/fifteen.c index 78060f5..f6ff24a 100644 --- a/fifteen.c +++ b/fifteen.c @@ -6,11 +6,13 @@ #include #include #include +#include #include #include "puzzles.h" const char *const game_name = "Fifteen"; +const char *const game_winhelp_topic = "games.fifteen"; const int game_can_configure = TRUE; #define TILE_SIZE 48 @@ -72,6 +74,29 @@ game_params *dup_params(game_params *params) return ret; } +game_params *decode_params(char const *string) +{ + game_params *ret = default_params(); + + ret->w = ret->h = atoi(string); + while (*string && isdigit(*string)) string++; + if (*string == 'x') { + string++; + ret->h = atoi(string); + } + + return ret; +} + +char *encode_params(game_params *params) +{ + char data[256]; + + sprintf(data, "%dx%d", params->w, params->h); + + return dupstr(data); +} + config_item *game_configure(game_params *params) { config_item *ret; @@ -528,7 +553,7 @@ static void draw_tile(frontend *fe, game_state *state, int x, int y, } void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate, - game_state *state, game_ui *ui, + game_state *state, int dir, game_ui *ui, float animtime, float flashtime) { int i, pass, bgcolour; @@ -677,12 +702,12 @@ void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate, } } -float game_anim_length(game_state *oldstate, game_state *newstate) +float game_anim_length(game_state *oldstate, game_state *newstate, int dir) { return ANIM_TIME; } -float game_flash_length(game_state *oldstate, game_state *newstate) +float game_flash_length(game_state *oldstate, game_state *newstate, int dir) { if (!oldstate->completed && newstate->completed) return 2 * FLASH_FRAME;