X-Git-Url: http://git.pond.sub.org/?p=empserver;a=blobdiff_plain;f=src%2Futil%2Ffairland.c;h=c42fbbb3d3ddd928bdae3c3955373e5275387e07;hp=3025f86e85846775295475fa521e961ecf608513;hb=68375704b8dcc995ac1457dd868570c3e6f71100;hpb=41d98828606ed64fc1d5c168de7e5aab5e0afc53 diff --git a/src/util/fairland.c b/src/util/fairland.c index 3025f86e8..c42fbbb3d 100644 --- a/src/util/fairland.c +++ b/src/util/fairland.c @@ -861,21 +861,32 @@ place_island(int c, int *xp, int *yp) static void grow_islands(void) { + int stunted_islands = 0; int c, secs, x, y, isiz; for (c = nc; c < nc + ni; ++c) { - secs = 0; - if (!place_island(c, &x, &y)) - return; + if (!place_island(c, &x, &y)) { + qprint("\nNo room for island #%d", c - nc + 1); + break; + } + isiz = roll(is) + roll0(is); - do { - ++secs; + for (secs = 1; secs < isiz; secs++) { find_coast(c); - } while (secs < isiz && grow_one_sector(c)); + if (!grow_one_sector(c)) { + stunted_islands++; + break; + } + } + find_coast(c); qprint(" %d(%d)", c - nc + 1, secs); ctot++; } + + if (stunted_islands) + qprint("\n%d stunted island%s", + stunted_islands, splur(stunted_islands)); } /****************************************************************************