The printing function in Bridges was unable to cope with more than two

bridges between a pair of islands! Good grief. How did we never spot
that before?

[originally from svn r9083]
This commit is contained in:
Simon Tatham
2011-02-03 19:49:19 +00:00
parent 540716194d
commit fd98870bff

View File

@ -2735,7 +2735,7 @@ static void game_print(drawing *dr, game_state *state, int ts)
int ink = print_mono_colour(dr, 0); int ink = print_mono_colour(dr, 0);
int paper = print_mono_colour(dr, 1); int paper = print_mono_colour(dr, 1);
int x, y, cx, cy, i, nl; int x, y, cx, cy, i, nl;
int loff = ts/8; int loff;
grid_type grid; grid_type grid;
/* Ick: fake up `ds->tilesize' for macro expansion purposes */ /* Ick: fake up `ds->tilesize' for macro expansion purposes */
@ -2745,6 +2745,7 @@ static void game_print(drawing *dr, game_state *state, int ts)
/* I don't think this wants a border. */ /* I don't think this wants a border. */
/* Bridges */ /* Bridges */
loff = ts / (8 * sqrt((state->params.maxb - 1)));
print_line_width(dr, ts / 12); print_line_width(dr, ts / 12);
for (x = 0; x < state->w; x++) { for (x = 0; x < state->w; x++) {
for (y = 0; y < state->h; y++) { for (y = 0; y < state->h; y++) {
@ -2754,20 +2755,14 @@ static void game_print(drawing *dr, game_state *state, int ts)
if (grid & G_ISLAND) continue; if (grid & G_ISLAND) continue;
if (grid & G_LINEV) { if (grid & G_LINEV) {
if (nl > 1) { for (i = 0; i < nl; i++)
draw_line(dr, cx+ts/2-loff, cy, cx+ts/2-loff, cy+ts, ink); draw_line(dr, cx+ts/2+(2*i-nl+1)*loff, cy,
draw_line(dr, cx+ts/2+loff, cy, cx+ts/2+loff, cy+ts, ink); cx+ts/2+(2*i-nl+1)*loff, cy+ts, ink);
} else {
draw_line(dr, cx+ts/2, cy, cx+ts/2, cy+ts, ink);
}
} }
if (grid & G_LINEH) { if (grid & G_LINEH) {
if (nl > 1) { for (i = 0; i < nl; i++)
draw_line(dr, cx, cy+ts/2-loff, cx+ts, cy+ts/2-loff, ink); draw_line(dr, cx, cy+ts/2+(2*i-nl+1)*loff,
draw_line(dr, cx, cy+ts/2+loff, cx+ts, cy+ts/2+loff, ink); cx+ts, cy+ts/2+(2*i-nl+1)*loff, ink);
} else {
draw_line(dr, cx, cy+ts/2, cx+ts, cy+ts/2, ink);
}
} }
} }
} }