]> git.pond.sub.org Git - empserver/commitdiff
Factor out ship usable gun calculation into shp_usable_gun()
authorMarkus Armbruster <armbru@pond.sub.org>
Mon, 3 Mar 2008 19:33:54 +0000 (20:33 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Fri, 14 Mar 2008 19:25:39 +0000 (20:25 +0100)
include/ship.h
src/lib/commands/bomb.c
src/lib/subs/aircombat.c
src/lib/subs/landgun.c
src/lib/subs/shpsub.c

index 6e5c46a3c5ab1a46dcbc698e2e1ed01aa3ec2703..db6054d138a3244d0488a0bd5d9c07f4ecf1cdaa 100644 (file)
@@ -187,5 +187,6 @@ extern int shp_dchrg(struct shpstr *);
 extern int shp_fire(struct shpstr *);
 extern int shp_torp(struct shpstr *, int);
 extern double shp_fire_range(struct shpstr *);
+extern int shp_usable_guns(struct shpstr *);
 
 #endif
index 72e4f1f95d34fd3bb133a51899dabc021a7c6db5..a0f8c62959d682c4f481333c4de9975793dcfe9f 100644 (file)
@@ -523,8 +523,8 @@ ship_bomb(struct emp_qelem *list, struct sctstr *target)
        if ((plp->pcp->pl_flags & P_A) && !on_shiplist(shipno, head))
            continue;
 
-       shell = gun = 0;
-       gun = MIN(ship.shp_item[I_GUN], ship.shp_glim);
+       shell = 0;
+       gun = shp_usable_guns(&ship);
        if (gun > 0) {
            shell = ship.shp_item[I_SHELL];
            if (shell <= 0)
index 5ea34a680edd06fc7a49f93a054bc3af49f3f02a..53df1daa21797f41a6c473dc59ddc3fb04f7d3b6 100644 (file)
@@ -837,8 +837,8 @@ ac_shipflak(struct emp_qelem *list, coord x, coord y)
        rel = getrel(getnatp(ship.shp_own), plane_owner);
        if (rel > HOSTILE)
            continue;
-       shell = gun = 0;
-       gun = MIN(ship.shp_item[I_GUN], ship.shp_glim);
+       shell = 0;
+       gun = shp_usable_guns(&ship);
        if (gun) {
            shell = ship.shp_item[I_SHELL];
            if (shell <= 0) {
index 617da772b60514fb3e92c6b929bebaa497521378..4f0c018d60cc7dd903b350c7c159f53a8be0dad6 100644 (file)
@@ -113,8 +113,7 @@ shp_fire(struct shpstr *sp)
 
     if (sp->shp_effic < 60)
        return -1;
-    guns = sp->shp_glim;
-    guns = MIN(guns, sp->shp_item[I_GUN]);
+    guns = shp_usable_guns(sp);
     guns = MIN(guns, (sp->shp_item[I_MILIT] + 1) / 2);
     if (guns == 0)
        return -1;
@@ -217,6 +216,15 @@ lnd_fire(struct lndstr *lp)
     return d;
 }
 
+/*
+ * Return number of guns ship SP can fire.
+ */
+int
+shp_usable_guns(struct shpstr *sp)
+{
+    return MIN(sp->shp_glim, sp->shp_item[I_GUN]);
+}
+
 /*
  * Return effective firing range for range factor RNG at tech TLEV.
  */
index 0691a58d27e2c5d2cb6a2253e5c9d0e3759f8e62..dd0cdee625c628fcd1b95ab245cfeaf2360aae2d 100644 (file)
@@ -877,7 +877,7 @@ shp_missile_defense(coord dx, coord dy, natid bombown, int hardtarget)
            continue;
 
        /* now calculate the odds */
-       gun = MIN(ship.shp_item[I_GUN], ship.shp_glim);
+       gun = shp_usable_guns(&ship);
        eff = ship.shp_effic / 100.0;
        teff = ship.shp_tech / (ship.shp_tech + 200.0);
        /* raise 4.5 for better interception -KHS */