X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/fb99a391331f49544b2842f6babd34f18a645e40..ea6ffc86747062fbbe54d16e6929582f09e4342d:/bridges.c?ds=inline diff --git a/bridges.c b/bridges.c index 4219df4..f8e9e76 100644 --- a/bridges.c +++ b/bridges.c @@ -2735,7 +2735,7 @@ static void game_print(drawing *dr, game_state *state, int ts) int ink = print_mono_colour(dr, 0); int paper = print_mono_colour(dr, 1); int x, y, cx, cy, i, nl; - int loff = ts/8; + int loff; grid_type grid; /* 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. */ /* Bridges */ + loff = ts / (8 * sqrt((state->params.maxb - 1))); print_line_width(dr, ts / 12); for (x = 0; x < state->w; x++) { 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_LINEV) { - if (nl > 1) { - draw_line(dr, cx+ts/2-loff, cy, cx+ts/2-loff, cy+ts, ink); - draw_line(dr, cx+ts/2+loff, cy, cx+ts/2+loff, cy+ts, ink); - } else { - draw_line(dr, cx+ts/2, cy, cx+ts/2, cy+ts, ink); - } + for (i = 0; i < nl; i++) + draw_line(dr, cx+ts/2+(2*i-nl+1)*loff, cy, + cx+ts/2+(2*i-nl+1)*loff, cy+ts, ink); } if (grid & G_LINEH) { - if (nl > 1) { - draw_line(dr, cx, cy+ts/2-loff, cx+ts, cy+ts/2-loff, ink); - draw_line(dr, cx, cy+ts/2+loff, cx+ts, cy+ts/2+loff, ink); - } else { - draw_line(dr, cx, cy+ts/2, cx+ts, cy+ts/2, ink); - } + for (i = 0; i < nl; i++) + draw_line(dr, cx, cy+ts/2+(2*i-nl+1)*loff, + cx+ts, cy+ts/2+(2*i-nl+1)*loff, ink); } } }