From: Markus Armbruster Date: Tue, 11 Aug 2020 05:52:45 +0000 (+0200) Subject: fairland: Check first two continent sectors properly X-Git-Tag: v4.4.1~124 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=41d98828606ed64fc1d5c168de7e5aab5e0afc53;hp=f314ead777fcb70092f03bc4af5b89ffda9f8541 fairland: Check first two continent sectors properly grow_continents() places the first two continent sectors without checking for collisions or minimum distance. Unlikely to be an issue in practice, as growing such a continent will almost certainly fail. Fix it anyway. Signed-off-by: Markus Armbruster --- diff --git a/src/util/fairland.c b/src/util/fairland.c index 644412c5c..3025f86e8 100644 --- a/src/util/fairland.c +++ b/src/util/fairland.c @@ -791,13 +791,17 @@ grow_continents(void) int c, secs; for (c = 0; c < nc; ++c) { - sectx[c][0] = capx[c]; - secty[c][0] = capy[c]; - own[sectx[c][0]][secty[c][0]] = c; - sectx[c][1] = new_x(capx[c] + 2); - secty[c][1] = capy[c]; - own[sectx[c][1]][secty[c][1]] = c; - isecs[c] = 2; + isecs[c] = 0; + if (!try_to_grow(c, capx[c], capy[c], di) + || !try_to_grow(c, new_x(capx[c] + 2), capy[c], di)) { + done = 0; + continue; + } + } + + if (!done) { + qprint("No room for continents\n"); + return 0; } for (secs = 2; secs < sc && done; secs++) {