X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/4413ef0febdc131ec0ea3661fcd3466063b31494..08d7c4ba7266c626d28273750218446d3c693805:/net.c diff --git a/net.c b/net.c index 29a3a27..ad970b6 100644 --- 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; }; @@ -897,14 +897,7 @@ static void perturb(int w, int h, unsigned char *tiles, int wrapping, perim2 = snewn(nperim, struct xyd); memcpy(perim2, perimeter, nperim * sizeof(struct xyd)); /* Shuffle the perimeter, so as to search it without directional bias. */ - for (i = nperim; --i ;) { - int j = random_upto(rs, i+1); - struct xyd t; - - t = perim2[j]; - perim2[j] = perim2[i]; - perim2[i] = t; - } + shuffle(perim2, nperim, sizeof(*perim2), rs); for (i = 0; i < nperim; i++) { int x2, y2; @@ -1533,7 +1526,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); @@ -1613,7 +1606,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; @@ -1811,7 +1803,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; @@ -2026,11 +2018,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 == ';') @@ -2145,7 +2136,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; @@ -2660,13 +2651,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 : @@ -2697,11 +2681,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; @@ -2878,7 +2857,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 */ };