diff --git a/src/kernel/region.c b/src/kernel/region.c index 6f700ae03..927a9918f 100644 --- a/src/kernel/region.c +++ b/src/kernel/region.c @@ -791,7 +791,7 @@ region *new_region(int x, int y, struct plane *pl, int uid) { region *r; r = region_create(uid); - r->age = 1; + r->age = 0; add_region(r, x, y); assert(pl == r->_plane); return r; diff --git a/src/laws.c b/src/laws.c index 3d3d174b5..b67e641b8 100644 --- a/src/laws.c +++ b/src/laws.c @@ -810,7 +810,9 @@ void demographics(void) season_t last_weeks_season = calendar_season(turn - 1); for (r = regions; r; r = r->next) { - ++r->age; /* also oceans. no idea why we didn't always do that */ + if (r->age>0 || r->units || r->attribs) { + ++r->age; /* also oceans. no idea why we didn't always do that */ + } live(r); if (!fval(r->terrain, SEA_REGION)) {