From a87cc547e1aa9956180fb9a2346d03214d4f9e7d Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Mon, 23 Oct 2006 17:21:13 +0000 Subject: [PATCH] fixed problems with units that had no faction --- src/common/kernel/eressea.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/common/kernel/eressea.c b/src/common/kernel/eressea.c index ca791182d..0f8007c11 100644 --- a/src/common/kernel/eressea.c +++ b/src/common/kernel/eressea.c @@ -2538,12 +2538,17 @@ remove_empty_units_in_region(region *r) while (*up) { unit * u = *up; - if (MaxAge()>0) { + + if (u->number) { faction * f = u->faction; - if (!fval(f, FFL_NOTIMEOUT) && f->age > MaxAge()) set_number(u, 0); - } - if (u->faction && !u->faction->alive) { - set_number(u, 0); + if (f==NULL || !f->alive) { + set_number(u, 0); + } + if (MaxAge()>0) { + if ((!fval(f, FFL_NOTIMEOUT) && f->age > MaxAge())) { + set_number(u, 0); + } + } } if ((u->number == 0 && u->race != new_race[RC_SPELL]) || (u->age <= 0 && u->race == new_race[RC_SPELL])) { destroy_unit(u);