~mdw
/
sgt
/
puzzles
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Stop the analysis pass in Loopy's redraw routine from being
[sgt/puzzles]
/
bridges.c
diff --git
a/bridges.c
b/bridges.c
index
e0bd609
..
a5eef25
100644
(file)
--- a/
bridges.c
+++ b/
bridges.c
@@
-1464,7
+1464,7
@@
static int solve_island_stage2(struct island *is, int *didsth_r)
return 1;
}
return 1;
}
-static int solve_island_subgroup(struct island *is, int direction
, int n
)
+static int solve_island_subgroup(struct island *is, int direction)
{
struct island *is_join;
int nislands, *dsf = is->state->solver->dsf;
{
struct island *is_join;
int nislands, *dsf = is->state->solver->dsf;
@@
-1473,7
+1473,7
@@
static int solve_island_subgroup(struct island *is, int direction, int n)
debug(("..checking subgroups.\n"));
/* if is isn't full, return 0. */
debug(("..checking subgroups.\n"));
/* if is isn't full, return 0. */
- if (
n
< is->count) {
+ if (
island_countbridges(is)
< is->count) {
debug(("...orig island (%d,%d) not full.\n", is->x, is->y));
return 0;
}
debug(("...orig island (%d,%d) not full.\n", is->x, is->y));
return 0;
}
@@
-1499,7
+1499,7
@@
static int solve_island_subgroup(struct island *is, int direction, int n)
/* we have a full subgroup that isn't the whole set.
* This isn't allowed. */
debug(("island at (%d,%d) makes full subgroup, disallowing.\n",
/* we have a full subgroup that isn't the whole set.
* This isn't allowed. */
debug(("island at (%d,%d) makes full subgroup, disallowing.\n",
- is->x, is->y
, n
));
+ is->x, is->y));
return 1;
} else {
debug(("...has finished puzzle.\n"));
return 1;
} else {
debug(("...has finished puzzle.\n"));
@@
-1538,10
+1538,6
@@
static int solve_island_stage3(struct island *is, int *didsth_r)
if (missing <= 0) return 1;
for (i = 0; i < is->adj.npoints; i++) {
if (missing <= 0) return 1;
for (i = 0; i < is->adj.npoints; i++) {
- /* We only do right- or down-pointing bridges. */
- if (is->adj.points[i].dx == -1 ||
- is->adj.points[i].dy == -1) continue;
-
x = is->adj.points[i].x;
y = is->adj.points[i].y;
spc = island_adjspace(is, 1, missing, i);
x = is->adj.points[i].x;
y = is->adj.points[i].y;
spc = island_adjspace(is, 1, missing, i);
@@
-1562,7
+1558,7
@@
static int solve_island_stage3(struct island *is, int *didsth_r)
solve_join(is, i, n, 0);
map_update_possibles(is->state);
solve_join(is, i, n, 0);
map_update_possibles(is->state);
- if (solve_island_subgroup(is, i
, n
) ||
+ if (solve_island_subgroup(is, i) ||
solve_island_impossible(is->state)) {
maxb = n-1;
debug(("island at (%d,%d) d(%d,%d) new max of %d bridges:\n",
solve_island_impossible(is->state)) {
maxb = n-1;
debug(("island at (%d,%d) d(%d,%d) new max of %d bridges:\n",
@@
-1652,7
+1648,7
@@
static int solve_island_stage3(struct island *is, int *didsth_r)
}
map_update_possibles(is->state);
}
map_update_possibles(is->state);
- if (solve_island_subgroup(is, -1
, n
))
+ if (solve_island_subgroup(is, -1))
got = 1;
for (j = 0; j < is->adj.npoints; j++)
got = 1;
for (j = 0; j < is->adj.npoints; j++)
@@
-2161,8
+2157,8
@@
struct game_drawstate {
int show_hints;
};
int show_hints;
};
-static char *update_drag_dst(game_state *state, game_ui *ui,
game_drawstate *ds,
- int nx, int ny)
+static char *update_drag_dst(game_state *state, game_ui *ui,
+
const game_drawstate *ds,
int nx, int ny)
{
int ox, oy, dx, dy, i, currl, maxb;
struct island *is;
{
int ox, oy, dx, dy, i, currl, maxb;
struct island *is;
@@
-2257,7
+2253,7
@@
static char *finish_drag(game_state *state, game_ui *ui)
return dupstr(buf);
}
return dupstr(buf);
}
-static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds,
+static char *interpret_move(game_state *state, game_ui *ui,
const
game_drawstate *ds,
int x, int y, int button)
{
int gx = FROMCOORD(x), gy = FROMCOORD(y);
int x, int y, int button)
{
int gx = FROMCOORD(x), gy = FROMCOORD(y);