]> git.pond.sub.org Git - empserver/blobdiff - src/lib/update/plane.c
Use relations_with() for US==THEM || getrel(getnatp(US), THEM)
[empserver] / src / lib / update / plane.c
index 6ac47b4a52347d4712572e9e30f4079456378629..f6a1c7900f335bbbcea3198da702d2b326cef760 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  Empire - A multi-player, client/server Internet based war game.
- *  Copyright (C) 1986-2008, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ *  Copyright (C) 1986-2010, Dave Pare, Jeff Bailey, Thomas Ruschak,
  *                           Ken Stevens, Steve McClure
  *
  *  This program is free software; you can redistribute it and/or modify
  *  ---
  *
  *  plane.c: Do production for planes
- * 
+ *
  *  Known contributors to this file:
  *     Dave Pare, 1986
  *     Steve McClure, 1998
- *     Markus Armbruster, 2006-2007
+ *     Markus Armbruster, 2006-2009
  */
 
 #include <config.h>
@@ -66,7 +66,7 @@ prod_plane(int etus, int natnum, struct bp *bp, int buildem)
            continue;
        }
 
-       if (pp->pln_flags & PLN_LAUNCHED) {
+       if (pln_is_in_orbit(pp)) {
            if (!player->simulation && buildem == 0
                && !(pp->pln_flags & PLN_SYNCHRONOUS))
                move_sat(pp);
@@ -110,6 +110,7 @@ upd_plane(struct plnstr *pp, int etus,
                makelost(EF_PLANE, pp->pln_own, pp->pln_uid,
                         pp->pln_x, pp->pln_y);
                pp->pln_own = 0;
+               pp->pln_ship = pp->pln_land = -1;
                return;
            }
            wu(0, pp->pln_own,
@@ -147,12 +148,10 @@ planerepair(struct plnstr *pp, struct natstr *np, struct bp *bp, int etus)
            return;
        if (carrier->shp_off)
            return;
-       if ((carrier->shp_own != pp->pln_own) &&
-           (getrel(getnatp(carrier->shp_own), pp->pln_own) != ALLIED))
+       if (relations_with(carrier->shp_own, pp->pln_own) != ALLIED)
            return;
     } else {
-       if ((sp->sct_own != pp->pln_own) &&
-           (getrel(getnatp(sp->sct_own), pp->pln_own) != ALLIED))
+       if (relations_with(sp->sct_own, pp->pln_own) != ALLIED)
            return;
     }
 
@@ -182,8 +181,8 @@ planerepair(struct plnstr *pp, struct natstr *np, struct bp *bp, int etus)
        delta = 100 - pp->pln_effic;
 
     memset(mvec, 0, sizeof(mvec));
-    mvec[I_MILIT] =  pcp->pl_crew;
-    mvec[I_LCM] =  pcp->pl_lcm;
+    mvec[I_MILIT] = pcp->pl_crew;
+    mvec[I_LCM] = pcp->pl_lcm;
     mvec[I_HCM] = pcp->pl_hcm;
     build = get_materials(sp, bp, mvec, delta);