extern int l_aaf(struct lchrstr *, int);
extern int lnd_fire(struct lndstr *);
+extern double lnd_fire_range(struct lndstr *);
/* src/lib/subs/lndsub.c */
extern void lnd_sweep(struct emp_qelem *, int, int, natid);
continue;
}
- range = effrange(fland.lnd_frg, fland.lnd_tech);
+ range = lnd_fire_range(&fland);
range2 = roundrange(range);
pr("range is %d.00 (%.2f)\n", range2, range);
if (target == targ_sub) {
if ((land.lnd_own != own) && ((rel != ALLIED) || (rel2 != AT_WAR)))
continue;
- erange = effrange(land.lnd_frg, land.lnd_tech);
+ erange = lnd_fire_range(&land);
if (roundrange(erange) < ni.curdist)
continue;
return effrange(sp->shp_frnge, sp->shp_tech);
}
+/*
+ * Return firing range for land unit SP.
+ */
+double
+lnd_fire_range(struct lndstr *lp)
+{
+ return effrange(lp->lnd_frg, lp->lnd_tech);
+}
+
int
roundrange(double r)
{
/* are we in range? */
dist = mapdist(land.lnd_x, land.lnd_y, x, y);
- range = roundrange(effrange(land.lnd_frg, land.lnd_tech));
+ range = roundrange(lnd_fire_range(&land));
if (dist > range)
continue;
(md > land_max_interdiction_range))
continue;
- range = roundrange(effrange(lp->lnd_frg, lp->lnd_tech));
+ range = roundrange(lnd_fire_range(lp));
if (md > range)
continue;
range = ldround(shp_fire_range((struct shpstr *)gp), 1);
break;
case EF_LAND:
- range = ldround(effrange(((struct lndstr *)gp)->lnd_frg,
- ((struct lndstr *)gp)->lnd_tech), 1);
+ range = ldround(lnd_fire_range((struct lndstr *)gp), 1);
break;
case EF_PLANE:
/* missiles go one way, so we can use all the range */