do not seed factions when creating islands with 'B'.

This commit is contained in:
Enno Rehling 2017-07-27 16:16:54 +02:00
parent cf2e7695e5
commit 822292c99a
2 changed files with 11 additions and 9 deletions

View File

@ -920,7 +920,7 @@ static void handlekey(state * st, int c)
else { else {
n = minpop; n = minpop;
} }
build_island_e3(&new_players, nx, ny, n, n * 3); build_island_e3(NULL, nx, ny, n, n * 3);
st->modified = 1; st->modified = 1;
st->wnd_info->update |= 1; st->wnd_info->update |= 1;
st->wnd_status->update |= 1; st->wnd_status->update |= 1;

View File

@ -784,13 +784,15 @@ const terrain_type * (*terraformer) (direction_t))
direction_t dir; direction_t dir;
for (dir = 0; dir != MAXDIRECTIONS; ++dir) { for (dir = 0; dir != MAXDIRECTIONS; ++dir) {
region *rn = rconnect(r, dir); region *rn = rconnect(r, dir);
if (rn == NULL) { if (rn == NULL || !rn->land) {
const terrain_type *terrain = terraformer(dir); const terrain_type *terrain = terraformer(dir);
if (!rn) {
plane *pl = rplane(r); plane *pl = rplane(r);
int x = r->x + delta_x[dir]; int x = r->x + delta_x[dir];
int y = r->y + delta_y[dir]; int y = r->y + delta_y[dir];
pnormalize(&x, &y, pl); pnormalize(&x, &y, pl);
rn = new_region(x, y, pl, 0); rn = new_region(x, y, pl, 0);
}
terraform_region(rn, terrain); terraform_region(rn, terrain);
regionqueue_push(rlist, rn); regionqueue_push(rlist, rn);
if (rn->land) { if (rn->land) {
@ -946,7 +948,7 @@ int build_island_e3(newfaction ** players, int x, int y, int numfactions, int mi
get_neighbours(r, rn); get_neighbours(r, rn);
q = region_quality(r, rn); q = region_quality(r, rn);
if (q >= MIN_QUALITY && nfactions < numfactions && *players) { if (q >= MIN_QUALITY && nfactions < numfactions && players && *players) {
starting_region(players, r, rn); starting_region(players, r, rn);
minq = MIN(minq, q); minq = MIN(minq, q);
maxq = MAX(maxq, q); maxq = MAX(maxq, q);
@ -961,7 +963,7 @@ int build_island_e3(newfaction ** players, int x, int y, int numfactions, int mi
region *rn[MAXDIRECTIONS]; region *rn[MAXDIRECTIONS];
get_neighbours(r, rn); get_neighbours(r, rn);
q = region_quality(r, rn); q = region_quality(r, rn);
if (q >= MIN_QUALITY * 4 / 3 && nfactions < numfactions && *players) { if (q >= MIN_QUALITY * 4 / 3 && nfactions < numfactions && players && *players) {
starting_region(players, r, rn); starting_region(players, r, rn);
minq = MIN(minq, q); minq = MIN(minq, q);
maxq = MAX(maxq, q); maxq = MAX(maxq, q);