fairland: Move "is water" check into try_to_grow()

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2020-08-11 07:51:30 +02:00
parent 3fc24e35b9
commit f314ead777

View file

@ -662,6 +662,9 @@ try_to_grow(int c, int newx, int newy, int d)
{ {
int i, j, px, py; int i, j, px, py;
if (own[newx][newy] != -1)
return 0;
for (i = 1; i <= d; ++i) { for (i = 1; i <= d; ++i) {
for (j = 0; j < i; ++j) for (j = 0; j < i; ++j)
vector[j] = 0; vector[j] = 0;
@ -757,10 +760,9 @@ grow_one_sector(int c)
for (i = roll0(6), n = 0; n < 12 && !done; i = (i + 1) % 6, ++n) { for (i = roll0(6), n = 0; n < 12 && !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 (own[newx][newy] == -1 && if (n > 5 ||
(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, c < nc ? di : id))
done = 1; done = 1;
} }
@ -768,9 +770,8 @@ grow_one_sector(int c)
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 (own[newx][newy] == -1) if (try_to_grow(c, newx, newy, c < nc ? di : id))
if (try_to_grow(c, newx, newy, c < nc ? di : id)) done = 1;
done = 1;
} }
next_coast(c, x, y, &x, &y); next_coast(c, x, y, &x, &y);
++coast_search; ++coast_search;
@ -843,7 +844,7 @@ place_island(int c, int *xp, int *yp)
if (*xp == sx && *yp == sy) if (*xp == sx && *yp == sy)
break; break;
} }
if (own[*xp][*yp] == -1 && try_to_grow(c, *xp, *yp, d)) if (try_to_grow(c, *xp, *yp, d))
return 1; return 1;
} }
} }