diff --git a/include/land.h b/include/land.h index c15a7a9e..bfa1657d 100644 --- a/include/land.h +++ b/include/land.h @@ -168,6 +168,7 @@ extern int l_dam(struct lchrstr *, int); 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); diff --git a/src/lib/commands/mfir.c b/src/lib/commands/mfir.c index b65e59de..b0b93459 100644 --- a/src/lib/commands/mfir.c +++ b/src/lib/commands/mfir.c @@ -362,7 +362,7 @@ multifire(void) 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) { @@ -777,7 +777,7 @@ quiet_bigdef(int attacker, struct emp_qelem *list, natid own, natid aown, 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; diff --git a/src/lib/subs/landgun.c b/src/lib/subs/landgun.c index 73210903..7f40dbe9 100644 --- a/src/lib/subs/landgun.c +++ b/src/lib/subs/landgun.c @@ -264,6 +264,15 @@ shp_fire_range(struct shpstr *sp) 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) { diff --git a/src/lib/subs/lndsub.c b/src/lib/subs/lndsub.c index 35f6805b..2e00d6f3 100644 --- a/src/lib/subs/lndsub.c +++ b/src/lib/subs/lndsub.c @@ -1137,7 +1137,7 @@ lnd_support(natid victim, natid attacker, coord x, coord y, int defending) /* 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; diff --git a/src/lib/subs/mission.c b/src/lib/subs/mission.c index a889a769..4de50a73 100644 --- a/src/lib/subs/mission.c +++ b/src/lib/subs/mission.c @@ -437,7 +437,7 @@ perform_mission(coord x, coord y, natid victim, struct emp_qelem *list, (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; @@ -838,8 +838,7 @@ oprange(struct empobj *gp, int *radius) 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 */