Add a `jumble' key (`J') to Net, which scrambles the positions of all unlocked
[sgt/puzzles] / cube.c
diff --git a/cube.c b/cube.c
index afd2ebd..d5221e6 100644 (file)
--- a/cube.c
+++ b/cube.c
@@ -12,6 +12,7 @@
 #include "puzzles.h"
 
 const char *const game_name = "Cube";
+const char *const game_winhelp_topic = "games.cube";
 const int game_can_configure = TRUE;
 
 #define MAXVERTICES 20
@@ -1350,7 +1351,7 @@ void game_free_drawstate(game_drawstate *ds)
 }
 
 void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate,
-                 game_state *state, game_ui *ui,
+                 game_state *state, int dir, game_ui *ui,
                  float animtime, float flashtime)
 {
     int i, j;
@@ -1365,13 +1366,15 @@ void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate,
     draw_rect(fe, 0, 0, (int)((bb.r-bb.l+2.0F) * GRID_SCALE),
               (int)((bb.d-bb.u+2.0F) * GRID_SCALE), COL_BACKGROUND);
 
-    if (oldstate && oldstate->movecount > state->movecount) {
+    if (dir < 0) {
         game_state *t;
 
         /*
          * This is an Undo. So reverse the order of the states, and
          * run the roll timer backwards.
          */
+       assert(oldstate);
+
         t = oldstate;
         oldstate = state;
         state = t;
@@ -1509,12 +1512,12 @@ void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate,
     }
 }
 
-float game_anim_length(game_state *oldstate, game_state *newstate)
+float game_anim_length(game_state *oldstate, game_state *newstate, int dir)
 {
     return ROLLTIME;
 }
 
-float game_flash_length(game_state *oldstate, game_state *newstate)
+float game_flash_length(game_state *oldstate, game_state *newstate, int dir)
 {
     return 0.0F;
 }