aboutsummaryrefslogtreecommitdiff
path: root/guess.c
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2005-06-24 16:35:42 +0000
committerSimon Tatham <anakin@pobox.com>2005-06-24 16:35:42 +0000
commit6e79ff9df5cd3429e6b75a43d61d760cbbe00939 (patch)
tree01d4abd199f21b3de7b2ad4ef3011938087dfdc9 /guess.c
parentb873c87c37695433f3830a92d79ca40e42d008a2 (diff)
downloadpuzzles-6e79ff9df5cd3429e6b75a43d61d760cbbe00939.zip
puzzles-6e79ff9df5cd3429e6b75a43d61d760cbbe00939.tar.gz
puzzles-6e79ff9df5cd3429e6b75a43d61d760cbbe00939.tar.bz2
puzzles-6e79ff9df5cd3429e6b75a43d61d760cbbe00939.tar.xz
Couple of presets.
[originally from svn r6011]
Diffstat (limited to 'guess.c')
-rw-r--r--guess.c31
1 files changed, 26 insertions, 5 deletions
diff --git a/guess.c b/guess.c
index 35cfb5b..24daab3 100644
--- a/guess.c
+++ b/guess.c
@@ -60,11 +60,6 @@ static game_params *default_params(void)
return ret;
}
-static int game_fetch_preset(int i, char **name, game_params **params)
-{
- return FALSE;
-}
-
static void free_params(game_params *params)
{
sfree(params);
@@ -77,6 +72,32 @@ static game_params *dup_params(game_params *params)
return ret;
}
+static const struct {
+ char *name;
+ game_params params;
+} guess_presets[] = {
+ {"Standard", {6, 4, 10, FALSE, TRUE}},
+ {"Super", {8, 5, 12, FALSE, TRUE}},
+};
+
+
+static int game_fetch_preset(int i, char **name, game_params **params)
+{
+ if (i < 0 || i >= lenof(guess_presets))
+ return FALSE;
+
+ *name = dupstr(guess_presets[i].name);
+ /*
+ * get round annoying const issues
+ */
+ {
+ game_params tmp = guess_presets[i].params;
+ *params = dup_params(&tmp);
+ }
+
+ return TRUE;
+}
+
static void decode_params(game_params *params, char const *string)
{
char const *p = string;