]> git.pond.sub.org Git - empserver/commitdiff
retreat: Oops on retreating ghosts
authorMarkus Armbruster <armbru@pond.sub.org>
Mon, 20 Jan 2014 21:44:54 +0000 (22:44 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 16 Feb 2014 12:19:26 +0000 (13:19 +0100)
Code never actually retreated them, but it could zap their mission and
retreat flags.  Harmless, but avoid it anyway.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
src/lib/subs/retreat.c

index e6d67d66dddf0374b1d1b747b3a8642c126d8687..7586a2e27c1bf57e7bdd37083d3b15189608faca 100644 (file)
@@ -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",