X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/19ef4855cd8681b43024a9df144c22aae91abc4f..36d01ffa8154db198db95b4cc3f788a430c7fee2:/cube.c diff --git a/cube.c b/cube.c index 145a1e5..0933928 100644 --- a/cube.c +++ b/cube.c @@ -589,7 +589,8 @@ static void classify_grid_square_callback(void *ctx, struct grid_square *sq) data->squareindex++; } -static char *new_game_seed(game_params *params, random_state *rs) +static char *new_game_seed(game_params *params, random_state *rs, + game_aux_info **aux) { struct grid_data data; int i, j, k, m, area, facesperclass; @@ -690,6 +691,11 @@ static char *new_game_seed(game_params *params, random_state *rs) return seed; } +static void game_free_aux_info(game_aux_info *aux) +{ + assert(!"Shouldn't happen"); +} + static void add_grid_square_callback(void *ctx, struct grid_square *sq) { game_state *state = (game_state *)ctx; @@ -979,6 +985,17 @@ static void free_game(game_state *state) sfree(state); } +static game_state *solve_game(game_state *state, game_aux_info *aux, + char **error) +{ + return NULL; +} + +static char *game_text_format(game_state *state) +{ + return NULL; +} + static game_ui *new_ui(game_state *state) { return NULL; @@ -1000,23 +1017,23 @@ static game_state *make_move(game_state *from, game_ui *ui, struct solid *poly; /* - * All moves are made with the cursor keys. + * All moves are made with the cursor keys or numeric keypad. */ - if (button == CURSOR_UP) + if (button == CURSOR_UP || button == (MOD_NUM_KEYPAD | '8')) direction = UP; - else if (button == CURSOR_DOWN) + else if (button == CURSOR_DOWN || button == (MOD_NUM_KEYPAD | '2')) direction = DOWN; - else if (button == CURSOR_LEFT) + else if (button == CURSOR_LEFT || button == (MOD_NUM_KEYPAD | '4')) direction = LEFT; - else if (button == CURSOR_RIGHT) + else if (button == CURSOR_RIGHT || button == (MOD_NUM_KEYPAD | '6')) direction = RIGHT; - else if (button == CURSOR_UP_LEFT) + else if (button == (MOD_NUM_KEYPAD | '7')) direction = UP_LEFT; - else if (button == CURSOR_DOWN_LEFT) + else if (button == (MOD_NUM_KEYPAD | '1')) direction = DOWN_LEFT; - else if (button == CURSOR_UP_RIGHT) + else if (button == (MOD_NUM_KEYPAD | '9')) direction = UP_RIGHT; - else if (button == CURSOR_DOWN_RIGHT) + else if (button == (MOD_NUM_KEYPAD | '3')) direction = DOWN_RIGHT; else return NULL; @@ -1531,21 +1548,23 @@ static int game_wants_statusbar(void) #endif const struct game thegame = { - "Cube", "games.cube", TRUE, + "Cube", "games.cube", default_params, game_fetch_preset, decode_params, encode_params, free_params, dup_params, - game_configure, - custom_params, + TRUE, game_configure, custom_params, validate_params, new_game_seed, + game_free_aux_info, validate_seed, new_game, dup_game, free_game, + FALSE, solve_game, + FALSE, game_text_format, new_ui, free_ui, make_move,