diff options
Diffstat (limited to 'apps/plugins/puzzles/src/singles.c')
-rw-r--r-- | apps/plugins/puzzles/src/singles.c | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/apps/plugins/puzzles/src/singles.c b/apps/plugins/puzzles/src/singles.c index 5fe054c663..5929d82932 100644 --- a/apps/plugins/puzzles/src/singles.c +++ b/apps/plugins/puzzles/src/singles.c | |||
@@ -222,24 +222,20 @@ static config_item *game_configure(const game_params *params) | |||
222 | ret[0].name = "Width"; | 222 | ret[0].name = "Width"; |
223 | ret[0].type = C_STRING; | 223 | ret[0].type = C_STRING; |
224 | sprintf(buf, "%d", params->w); | 224 | sprintf(buf, "%d", params->w); |
225 | ret[0].sval = dupstr(buf); | 225 | ret[0].u.string.sval = dupstr(buf); |
226 | ret[0].ival = 0; | ||
227 | 226 | ||
228 | ret[1].name = "Height"; | 227 | ret[1].name = "Height"; |
229 | ret[1].type = C_STRING; | 228 | ret[1].type = C_STRING; |
230 | sprintf(buf, "%d", params->h); | 229 | sprintf(buf, "%d", params->h); |
231 | ret[1].sval = dupstr(buf); | 230 | ret[1].u.string.sval = dupstr(buf); |
232 | ret[1].ival = 0; | ||
233 | 231 | ||
234 | ret[2].name = "Difficulty"; | 232 | ret[2].name = "Difficulty"; |
235 | ret[2].type = C_CHOICES; | 233 | ret[2].type = C_CHOICES; |
236 | ret[2].sval = DIFFCONFIG; | 234 | ret[2].u.choices.choicenames = DIFFCONFIG; |
237 | ret[2].ival = params->diff; | 235 | ret[2].u.choices.selected = params->diff; |
238 | 236 | ||
239 | ret[3].name = NULL; | 237 | ret[3].name = NULL; |
240 | ret[3].type = C_END; | 238 | ret[3].type = C_END; |
241 | ret[3].sval = NULL; | ||
242 | ret[3].ival = 0; | ||
243 | 239 | ||
244 | return ret; | 240 | return ret; |
245 | } | 241 | } |
@@ -248,14 +244,14 @@ static game_params *custom_params(const config_item *cfg) | |||
248 | { | 244 | { |
249 | game_params *ret = snew(game_params); | 245 | game_params *ret = snew(game_params); |
250 | 246 | ||
251 | ret->w = atoi(cfg[0].sval); | 247 | ret->w = atoi(cfg[0].u.string.sval); |
252 | ret->h = atoi(cfg[1].sval); | 248 | ret->h = atoi(cfg[1].u.string.sval); |
253 | ret->diff = cfg[2].ival; | 249 | ret->diff = cfg[2].u.choices.selected; |
254 | 250 | ||
255 | return ret; | 251 | return ret; |
256 | } | 252 | } |
257 | 253 | ||
258 | static char *validate_params(const game_params *params, int full) | 254 | static const char *validate_params(const game_params *params, int full) |
259 | { | 255 | { |
260 | if (params->w < 2 || params->h < 2) | 256 | if (params->w < 2 || params->h < 2) |
261 | return "Width and neight must be at least two"; | 257 | return "Width and neight must be at least two"; |
@@ -334,10 +330,10 @@ static int c2n(char c) { | |||
334 | } | 330 | } |
335 | 331 | ||
336 | static void unpick_desc(const game_params *params, const char *desc, | 332 | static void unpick_desc(const game_params *params, const char *desc, |
337 | game_state **sout, char **mout) | 333 | game_state **sout, const char **mout) |
338 | { | 334 | { |
339 | game_state *state = blank_game(params->w, params->h); | 335 | game_state *state = blank_game(params->w, params->h); |
340 | char *msg = NULL; | 336 | const char *msg = NULL; |
341 | int num = 0, i = 0; | 337 | int num = 0, i = 0; |
342 | 338 | ||
343 | if (strlen(desc) != state->n) { | 339 | if (strlen(desc) != state->n) { |
@@ -1185,7 +1181,7 @@ static int solve_specific(game_state *state, int diff, int sneaky) | |||
1185 | } | 1181 | } |
1186 | 1182 | ||
1187 | static char *solve_game(const game_state *state, const game_state *currstate, | 1183 | static char *solve_game(const game_state *state, const game_state *currstate, |
1188 | const char *aux, char **error) | 1184 | const char *aux, const char **error) |
1189 | { | 1185 | { |
1190 | game_state *solved = dup_game(currstate); | 1186 | game_state *solved = dup_game(currstate); |
1191 | char *move = NULL; | 1187 | char *move = NULL; |
@@ -1414,9 +1410,9 @@ randomise: | |||
1414 | return ret; | 1410 | return ret; |
1415 | } | 1411 | } |
1416 | 1412 | ||
1417 | static char *validate_desc(const game_params *params, const char *desc) | 1413 | static const char *validate_desc(const game_params *params, const char *desc) |
1418 | { | 1414 | { |
1419 | char *ret = NULL; | 1415 | const char *ret = NULL; |
1420 | 1416 | ||
1421 | unpick_desc(params, desc, NULL, &ret); | 1417 | unpick_desc(params, desc, NULL, &ret); |
1422 | return ret; | 1418 | return ret; |
@@ -1522,7 +1518,7 @@ static char *interpret_move(const game_state *state, game_ui *ui, | |||
1522 | action = TOGGLE_CIRCLE; | 1518 | action = TOGGLE_CIRCLE; |
1523 | } | 1519 | } |
1524 | } | 1520 | } |
1525 | if (action == UI) return ""; | 1521 | if (action == UI) return UI_UPDATE; |
1526 | 1522 | ||
1527 | if (action == TOGGLE_BLACK || action == TOGGLE_CIRCLE) { | 1523 | if (action == TOGGLE_BLACK || action == TOGGLE_CIRCLE) { |
1528 | i = y * state->w + x; | 1524 | i = y * state->w + x; |
@@ -1910,7 +1906,8 @@ static void start_soak(game_params *p, random_state *rs) | |||
1910 | 1906 | ||
1911 | int main(int argc, char **argv) | 1907 | int main(int argc, char **argv) |
1912 | { | 1908 | { |
1913 | char *id = NULL, *desc, *desc_gen = NULL, *tgame, *err, *aux; | 1909 | char *id = NULL, *desc, *desc_gen = NULL, *tgame, *aux; |
1910 | const char *err; | ||
1914 | game_state *s = NULL; | 1911 | game_state *s = NULL; |
1915 | game_params *p = NULL; | 1912 | game_params *p = NULL; |
1916 | int soln, soak = 0, ret = 1; | 1913 | int soln, soak = 0, ret = 1; |