diff --git a/src/lib/subs/retreat.c b/src/lib/subs/retreat.c index e6d67d66..7586a2e2 100644 --- a/src/lib/subs/retreat.c +++ b/src/lib/subs/retreat.c @@ -96,6 +96,9 @@ retreat_ship(struct shpstr *sp, char code) struct nstr_item ni; struct shpstr ship; + if (CANT_HAPPEN(!sp->shp_own)) + return; + retreat_ship1(sp, code, 1); if (sp->shp_rpath[0] == 0) sp->shp_rflags = 0; @@ -138,9 +141,6 @@ retreat_ship1(struct shpstr *sp, char code, int orig) struct mchrstr *mcp; int changed; - if (sp->shp_own == 0) - return 0; - if (sp->shp_effic < SHIP_MINEFF) { wu(0, sp->shp_own, "%s %s,\nbut it died in the attack, and so couldn't retreat!\n", @@ -352,6 +352,9 @@ retreat_land(struct lndstr *lp, char code) struct nstr_item ni; struct lndstr land; + if (CANT_HAPPEN(!lp->lnd_own)) + return; + retreat_land1(lp, code, 1); if (lp->lnd_rpath[0] == 0) lp->lnd_rflags = 0; @@ -393,9 +396,6 @@ retreat_land1(struct lndstr *lp, char code, int orig) double mobcost; struct lchrstr *lcp; - if (lp->lnd_own == 0) - return 0; - if (lp->lnd_effic < LAND_MINEFF) { wu(0, lp->lnd_own, "%s %s,\nbut it died in the attack, and so couldn't retreat!\n",