fairland: Change try_to_grow()'s last argument to extra_dist

Callers pass @di for continents, @id for islands, possibly plus some
extra distance.  Pass just the extra distance, and compute the rest in
try_to_grow().  This  prepares for the next commit.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2020-08-02 17:38:29 +02:00
parent cd7c4cdf20
commit 6a7eaee42f

View file

@ -678,11 +678,10 @@ hexagon_next(struct hexagon_iter *iter, int *x, int *y)
return iter->dir <= DIR_LAST; return iter->dir <= DIR_LAST;
} }
/* Test to see if we're allowed to grow there: the arguments di and id
*/
static int static int
try_to_grow(int c, int newx, int newy, int d) try_to_grow(int c, int newx, int newy, int extra_dist)
{ {
int d = (c < nc ? di : id) + extra_dist;
int i, px, py; int i, px, py;
struct hexagon_iter hexit; struct hexagon_iter hexit;
@ -780,14 +779,14 @@ grow_one_sector(int c)
if (n > 5 || if (n > 5 ||
(own[new_x(x+dirx[(i+5)%6])][new_y(y+diry[(i+5)%6])] == -1 && (own[new_x(x+dirx[(i+5)%6])][new_y(y+diry[(i+5)%6])] == -1 &&
own[new_x(x+dirx[(i+1)%6])][new_y(y+diry[(i+1)%6])] == -1)) own[new_x(x+dirx[(i+1)%6])][new_y(y+diry[(i+1)%6])] == -1))
if (try_to_grow(c, newx, newy, c < nc ? di : id)) if (try_to_grow(c, newx, newy, 0))
done = 1; done = 1;
} }
} else } else
for (i = roll0(6), n = 0; n < 6 && !done; i = (i + 1) % 6, ++n) { for (i = roll0(6), n = 0; n < 6 && !done; i = (i + 1) % 6, ++n) {
newx = new_x(x + dirx[i]); newx = new_x(x + dirx[i]);
newy = new_y(y + diry[i]); newy = new_y(y + diry[i]);
if (try_to_grow(c, newx, newy, c < nc ? di : id)) if (try_to_grow(c, newx, newy, 0))
done = 1; done = 1;
} }
next_coast(c, x, y, &x, &y); next_coast(c, x, y, &x, &y);
@ -809,8 +808,8 @@ grow_continents(void)
for (c = 0; c < nc; ++c) { for (c = 0; c < nc; ++c) {
isecs[c] = 0; isecs[c] = 0;
if (!try_to_grow(c, capx[c], capy[c], di) if (!try_to_grow(c, capx[c], capy[c], 0)
|| !try_to_grow(c, new_x(capx[c] + 2), capy[c], di)) { || !try_to_grow(c, new_x(capx[c] + 2), capy[c], 0)) {
done = 0; done = 0;
continue; continue;
} }
@ -854,7 +853,7 @@ place_island(int c, int *xp, int *yp)
if (ssx > WORLD_X - 2) if (ssx > WORLD_X - 2)
ssx = new_x(ssx + 2); ssx = new_x(ssx + 2);
for (d = di + id; d >= id; --d) { for (d = di; d >= 0; --d) {
sx = ssx; sx = ssx;
sy = ssy; sy = ssy;
*xp = new_x(sx + 2); *xp = new_x(sx + 2);