From 9bd06d5b60ba5ab850ce87f9b98eee886465750b Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Mon, 5 Jun 2006 17:58:51 +0000 Subject: [PATCH] unreported: units that have left a ship and entered another unit will take the left_ship status with them so they can't leave the region. --- src/common/kernel/unit.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/common/kernel/unit.c b/src/common/kernel/unit.c index 344209cd0..7a4360de0 100644 --- a/src/common/kernel/unit.c +++ b/src/common/kernel/unit.c @@ -781,8 +781,9 @@ transfermen(unit * u, unit * u2, int n) if (u2) { skill *sv, *sn; skill_t sk; - assert(u2->number+n>0); + ship * sh; + assert(u2->number+n>0); if (demonfix && u2->race==new_race[RC_DAEMON]) fset(u2, UFL_DEBUG); for (sk=0; sk!=MAXSKILLS; ++sk) { @@ -834,7 +835,9 @@ transfermen(unit * u, unit * u2, int n) if (olde->value) change_effect(u2, olde->type, olde->value); a = a->next; } - if (fval(u, UFL_LONGACTION)) fset(u2, UFL_LONGACTION); + sh = leftship(u); + if (sh!=NULL) set_leftship(u2, sh); + u2->flags |= u->flags&(UFL_LONGACTION|UFL_NOTMOVING|UFL_HUNGER|UFL_MOVED|UFL_ENTER); if (u->attribs) { transfer_curse(u, u2, n); }