mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-20 23:51:29 -07:00
Mike's changes to dsf.c alter the internal storage format of dsf
structures, meaning that ad-hoc initialisation now doesn't work. Hence, this checkin converts all ad-hoc dsf initialisations into calls to dsf_init() or snew_dsf(). At least, I _hope_ I've caught all of them. [originally from svn r6888]
This commit is contained in:
13
slant.c
13
slant.c
@ -468,15 +468,13 @@ static int slant_solve(int w, int h, const signed char *clues,
|
||||
* Establish a disjoint set forest for tracking connectedness
|
||||
* between grid points.
|
||||
*/
|
||||
for (i = 0; i < W*H; i++)
|
||||
sc->connected[i] = i; /* initially all distinct */
|
||||
dsf_init(sc->connected, W*H);
|
||||
|
||||
/*
|
||||
* Establish a disjoint set forest for tracking which squares
|
||||
* are known to slant in the same direction.
|
||||
*/
|
||||
for (i = 0; i < w*h; i++)
|
||||
sc->equiv[i] = i; /* initially all distinct */
|
||||
dsf_init(sc->equiv, w*h);
|
||||
|
||||
/*
|
||||
* Clear the slashval array.
|
||||
@ -1006,9 +1004,7 @@ static void slant_generate(int w, int h, signed char *soln, random_state *rs)
|
||||
* Establish a disjoint set forest for tracking connectedness
|
||||
* between grid points.
|
||||
*/
|
||||
connected = snewn(W*H, int);
|
||||
for (i = 0; i < W*H; i++)
|
||||
connected[i] = i; /* initially all distinct */
|
||||
connected = snew_dsf(W*H);
|
||||
|
||||
/*
|
||||
* Prepare a list of the squares in the grid, and fill them in
|
||||
@ -1389,8 +1385,7 @@ static int check_completion(game_state *state)
|
||||
* edge is visited at most twice.
|
||||
*/
|
||||
dsf = state->clues->tmpdsf;
|
||||
for (i = 0; i < W*H; i++)
|
||||
dsf[i] = i; /* initially all distinct */
|
||||
dsf_init(dsf, W*H);
|
||||
for (y = 0; y < h; y++)
|
||||
for (x = 0; x < w; x++) {
|
||||
int i1, i2;
|
||||
|
Reference in New Issue
Block a user