diff --git a/src/buildno.h b/src/buildno.h index 204ec9beb..c84827cec 100644 --- a/src/buildno.h +++ b/src/buildno.h @@ -1,3 +1,3 @@ #define VERSION_MAJOR 3 #define VERSION_MINOR 8 -#define VERSION_BUILD 15 +#define VERSION_BUILD 16 diff --git a/src/kernel/faction.c b/src/kernel/faction.c index 2699e1b09..c7f9498b8 100755 --- a/src/kernel/faction.c +++ b/src/kernel/faction.c @@ -387,7 +387,7 @@ void destroyfaction(faction ** fp) else { region *r = u->region; - if (!fval(r->terrain, SEA_REGION) && !!playerrace(u_race(u))) { + if (r->land && !!playerrace(u_race(u))) { const race *rc = u_race(u); int m = rmoney(r); diff --git a/src/kernel/unit.c b/src/kernel/unit.c index 04d113033..e4f0b1d44 100644 --- a/src/kernel/unit.c +++ b/src/kernel/unit.c @@ -334,7 +334,7 @@ int gift_items(unit * u, int flags) item *itm = *itm_p; if (flags & GIFT_PEASANTS) { - if (!fval(u->region->terrain, SEA_REGION)) { + if (u->region->land) { if (itm->type->rtype == rsilver) { rsetmoney(r, rmoney(r) + itm->number); itm->number = 0; diff --git a/src/laws.c b/src/laws.c index 1e1fc33ad..f6cca67a6 100755 --- a/src/laws.c +++ b/src/laws.c @@ -1221,23 +1221,28 @@ static void nmr_death(faction * f) static void remove_idle_players(void) { faction **fp; + int timeout = NMRTimeout(); log_info(" - beseitige Spieler, die sich zu lange nicht mehr gemeldet haben..."); for (fp = &factions; *fp;) { faction *f = *fp; - if (fval(f, FFL_NOIDLEOUT)) { - f->lastorders = turn; - } - if (NMRTimeout() > 0 && turn - f->lastorders >= NMRTimeout()) { + + if (timeout > 0 && turn - f->lastorders >= timeout) { nmr_death(f); destroyfaction(fp); - } else if (turn != f->lastorders) { - char info[256]; - sprintf(info, "%d Einheiten, %d Personen, %d Silber", - f->no_units, f->num_total, f->money); + } else { + if (fval(f, FFL_NOIDLEOUT)) { + f->lastorders = turn; + fp = &f->next; + } + else if (turn != f->lastorders) { + char info[256]; + sprintf(info, "%d Einheiten, %d Personen, %d Silber", + f->no_units, f->num_total, f->money); + } + fp = &f->next; } - fp = &f->next; } log_info(" - beseitige Spieler, die sich nach der Anmeldung nicht gemeldet haben...");