New puzzle: `pattern'.
[sgt/puzzles] / puzzles.h
index 46c0f15..b0947fc 100644 (file)
--- a/puzzles.h
+++ b/puzzles.h
@@ -127,6 +127,7 @@ int midend_wants_statusbar(midend_data *me);
 enum { CFG_SETTINGS, CFG_SEED };
 config_item *midend_get_config(midend_data *me, int which, char **wintitle);
 char *midend_set_config(midend_data *me, int which, config_item *cfg);
+char *midend_game_id(midend_data *me, char *id, int def_seed);
 
 /*
  * malloc.c
@@ -159,9 +160,12 @@ void random_free(random_state *state);
  * Game-specific routines
  */
 extern const char *const game_name;
+extern const char *const game_winhelp_topic;
 const int game_can_configure;
 game_params *default_params(void);
 int game_fetch_preset(int i, char **name, game_params **params);
+game_params *decode_params(char const *string);
+char *encode_params(game_params *);
 void free_params(game_params *params);
 game_params *dup_params(game_params *params);
 config_item *game_configure(game_params *params);
@@ -180,10 +184,10 @@ float *game_colours(frontend *fe, game_state *state, int *ncolours);
 game_drawstate *game_new_drawstate(game_state *state);
 void game_free_drawstate(game_drawstate *ds);
 void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate,
-                 game_state *newstate, game_ui *ui, float anim_time,
+                 game_state *newstate, int dir, game_ui *ui, float anim_time,
                  float flash_time);
-float game_anim_length(game_state *oldstate, game_state *newstate);
-float game_flash_length(game_state *oldstate, game_state *newstate);
+float game_anim_length(game_state *oldstate, game_state *newstate, int dir);
+float game_flash_length(game_state *oldstate, game_state *newstate, int dir);
 int game_wants_statusbar(void);
 
 #endif /* PUZZLES_PUZZLES_H */