Fix defense value of intercepted missiles and satellites
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 10 Oct 2009 22:15:22 +0000 (18:15 -0400)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 13 Dec 2009 07:04:07 +0000 (08:04 +0100)
Use the plane's defense value, not the plane type's base value.

src/lib/commands/laun.c
src/lib/subs/mslsub.c

index 11c1b88c87556455244c98a163fd74bac5e3560c..b85a745a2f920ad40e67ba968536099d86750296 100644 (file)
@@ -313,7 +313,6 @@ launch_missile(struct plnstr *pp, int sublaunch)
 static int
 launch_sat(struct plnstr *pp)
 {
-    struct plchrstr *pcp = plchr + pp->pln_type;
     coord sx, sy;
     int i;
     int dist;
@@ -361,7 +360,7 @@ launch_sat(struct plnstr *pp)
        pr("Your trajectory was a little off.\n");
     }
     nreport(player->cnum, N_LAUNCH, 0, 1);
-    if (msl_intercept(sx, sy, pp->pln_own, pcp->pl_def, 0, P_O, 0)) {
+    if (msl_intercept(sx, sy, pp->pln_own, pln_def(pp), 0, P_O, 0)) {
        return RET_OK;
     }
     pp->pln_x = sx;
index 8e48692ec2aa035c41efb90b74c2dd3c7028616a..f526b38f995462c52e07b19a0258a47af041f29b 100644 (file)
@@ -122,13 +122,13 @@ msl_hit(struct plnstr *pp, int hardtarget, int type, int news_item,
            xyas(x, y, victim));
 
     if ((pcp->pl_flags & P_T && !(pcp->pl_flags & P_MAR))) {
-       if (msl_intercept(x, y, pp->pln_own, pcp->pl_def,
+       if (msl_intercept(x, y, pp->pln_own, pln_def(pp),
                          sublaunch, P_N, P_O)) {
            return 0;
        }
     }
     if (pcp->pl_flags & P_MAR) {
-       if (shp_missile_defense(x, y, pp->pln_own, pcp->pl_def)) {
+       if (shp_missile_defense(x, y, pp->pln_own, pln_def(pp))) {
            return 0;
        }
     }