D'oh, there's always one. Remove first-click stuff from the todo list.
[sgt/puzzles] / cube.c
diff --git a/cube.c b/cube.c
index becf5db..428569c 100644 (file)
--- a/cube.c
+++ b/cube.c
@@ -868,7 +868,7 @@ static char *validate_desc(game_params *params, char *desc)
     return NULL;
 }
 
-static game_state *new_game(game_params *params, char *desc)
+static game_state *new_game(midend_data *me, game_params *params, char *desc)
 {
     game_state *state = snew(game_state);
     int area;
@@ -957,6 +957,7 @@ static game_state *dup_game(game_state *state)
     memcpy(ret->facecolours, state->facecolours,
            ret->solid->nfaces * sizeof(int));
     ret->nsquares = state->nsquares;
+    ret->current = state->current;
     ret->squares = snewn(ret->nsquares, struct grid_square);
     memcpy(ret->squares, state->squares,
            ret->nsquares * sizeof(struct grid_square));
@@ -1012,6 +1013,8 @@ static game_state *make_move(game_state *from, game_ui *ui,
     int i, j, dest, mask;
     struct solid *poly;
 
+    button = button & (~MOD_MASK | MOD_NUM_KEYPAD);
+
     /*
      * All moves are made with the cursor keys or numeric keypad.
      */
@@ -1523,13 +1526,13 @@ static void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate,
 }
 
 static float game_anim_length(game_state *oldstate,
-                             game_state *newstate, int dir)
+                             game_state *newstate, int dir, game_ui *ui)
 {
     return ROLLTIME;
 }
 
 static float game_flash_length(game_state *oldstate,
-                              game_state *newstate, int dir)
+                              game_state *newstate, int dir, game_ui *ui)
 {
     return 0.0F;
 }