After it confused Verity, clarify in the Unequal docs that the
[sgt/puzzles] / net.c
diff --git a/net.c b/net.c
index f8811a7..eb83a16 100644 (file)
--- a/net.c
+++ b/net.c
@@ -80,7 +80,7 @@ struct game_params {
 struct game_state {
     int width, height, wrapping, completed;
     int last_rotate_x, last_rotate_y, last_rotate_dir;
-    int used_solve, just_used_solve;
+    int used_solve;
     unsigned char *tiles;
     unsigned char *barriers;
 };
@@ -521,9 +521,7 @@ static int net_solver(int w, int h, unsigned char *tiles,
      * classes) by finding the representative of each tile and
      * setting equivalence[one]=the_other.
      */
-    equivalence = snewn(w * h, int);
-    for (i = 0; i < w*h; i++)
-       equivalence[i] = i;            /* initially all distinct */
+    equivalence = snew_dsf(w * h);
 
     /*
      * On a non-wrapping grid, we instantly know that all the edges
@@ -1526,7 +1524,7 @@ static game_state *new_game(midend *me, game_params *params, char *desc)
     h = state->height = params->height;
     state->wrapping = params->wrapping;
     state->last_rotate_dir = state->last_rotate_x = state->last_rotate_y = 0;
-    state->completed = state->used_solve = state->just_used_solve = FALSE;
+    state->completed = state->used_solve = FALSE;
     state->tiles = snewn(state->width * state->height, unsigned char);
     memset(state->tiles, 0, state->width * state->height);
     state->barriers = snewn(state->width * state->height, unsigned char);
@@ -1606,7 +1604,6 @@ static game_state *dup_game(game_state *state)
     ret->wrapping = state->wrapping;
     ret->completed = state->completed;
     ret->used_solve = state->used_solve;
-    ret->just_used_solve = state->just_used_solve;
     ret->last_rotate_dir = state->last_rotate_dir;
     ret->last_rotate_x = state->last_rotate_x;
     ret->last_rotate_y = state->last_rotate_y;
@@ -1804,7 +1801,7 @@ static game_ui *new_ui(game_state *state)
     ui->cur_y = ui->cy = state->height / 2;
     ui->cur_visible = FALSE;
     get_random_seed(&seed, &seedsize);
-    ui->rs = random_init(seed, seedsize);
+    ui->rs = random_new(seed, seedsize);
     sfree(seed);
 
     return ui;
@@ -2019,11 +2016,10 @@ static game_state *execute_move(game_state *from, char *move)
     int tx, ty, n, noanim, orig;
 
     ret = dup_game(from);
-    ret->just_used_solve = FALSE;
 
     if (move[0] == 'J' || move[0] == 'S') {
        if (move[0] == 'S')
-           ret->just_used_solve = ret->used_solve = TRUE;
+           ret->used_solve = TRUE;
 
        move++;
        if (*move == ';')
@@ -2138,7 +2134,7 @@ static void game_set_size(drawing *dr, game_drawstate *ds,
     ds->tilesize = tilesize;
 }
 
-static float *game_colours(frontend *fe, game_state *state, int *ncolours)
+static float *game_colours(frontend *fe, int *ncolours)
 {
     float *ret;
 
@@ -2653,13 +2649,6 @@ static float game_anim_length(game_state *oldstate,
     int last_rotate_dir;
 
     /*
-     * Don't animate an auto-solve move.
-     */
-    if ((dir > 0 && newstate->just_used_solve) ||
-       (dir < 0 && oldstate->just_used_solve))
-       return 0.0F;
-
-    /*
      * Don't animate if last_rotate_dir is zero.
      */
     last_rotate_dir = dir==-1 ? oldstate->last_rotate_dir :
@@ -2690,11 +2679,6 @@ static float game_flash_length(game_state *oldstate,
     return 0.0F;
 }
 
-static int game_wants_statusbar(void)
-{
-    return TRUE;
-}
-
 static int game_timing_state(game_state *state, game_ui *ui)
 {
     return TRUE;
@@ -2840,7 +2824,7 @@ static void game_print(drawing *dr, game_state *state, int tilesize)
 #endif
 
 const struct game thegame = {
-    "Net", "games.net",
+    "Net", "games.net", "net",
     default_params,
     game_fetch_preset,
     decode_params,
@@ -2871,7 +2855,7 @@ const struct game thegame = {
     game_anim_length,
     game_flash_length,
     TRUE, FALSE, game_print_size, game_print,
-    game_wants_statusbar,
+    TRUE,                             /* wants_statusbar */
     FALSE, game_timing_state,
-    0,                                /* mouse_priorities */
+    0,                                /* flags */
 };