diff --git a/include/prototypes.h b/include/prototypes.h index ea800e7a..b686a780 100644 --- a/include/prototypes.h +++ b/include/prototypes.h @@ -482,7 +482,7 @@ extern double fortrange(struct sctstr *); extern int roundrange(double); /* list.c */ extern int shipsatxy(coord, coord, int, int); -extern int carriersatxy(coord, coord, int, int, natid); +extern int carriersatxy(coord, coord, natid); extern int unitsatxy(coord, coord, int, int); extern int planesatxy(coord, coord, int, int, struct emp_qelem *); extern int asw_shipsatxy(coord, coord, int, int, struct plnstr *, @@ -558,6 +558,7 @@ extern void pln_dropoff(struct emp_qelem *, struct ichrstr *, extern void pln_mine(struct emp_qelem *list, struct sctstr *sectp); extern int pln_capable(struct plnstr *, int, int); extern int pln_airbase_ok(struct plnstr *, int, int); +extern int carrier_planes(struct shpstr *); extern void pln_sel(struct nstr_item *, struct emp_qelem *, struct sctstr *, int, int, int, int); extern int pln_arm(struct emp_qelem *, int, char, struct ichrstr *, diff --git a/src/lib/subs/list.c b/src/lib/subs/list.c index f2a45aa7..81293f37 100644 --- a/src/lib/subs/list.c +++ b/src/lib/subs/list.c @@ -85,12 +85,11 @@ shipsatxy(coord x, coord y, int wantflags, int nowantflags) /* This one only shows owned or allied ships */ int -carriersatxy(coord x, coord y, int wantflags, int nowantflags, natid own) +carriersatxy(coord x, coord y, natid own) { int first; int ships; struct nstr_item ni; - struct mchrstr *mp; struct shpstr ship; first = 1; @@ -102,17 +101,8 @@ carriersatxy(coord x, coord y, int wantflags, int nowantflags, natid own) if (ship.shp_own != own && getrel(getnatp(ship.shp_own), own) != ALLIED) continue; - if (ship.shp_effic < SHP_AIROPS_EFF) + if ((carrier_planes(&ship) & (P_L | P_K)) == 0) continue; - mp = &mchr[(int)ship.shp_type]; - if (wantflags) { - if ((mp->m_flags & wantflags) == 0) - continue; - } - if (nowantflags) { - if (mp->m_flags & nowantflags) - continue; - } if (first) { pr(" # owner eff type\n"); first = 0; diff --git a/src/lib/subs/plnsub.c b/src/lib/subs/plnsub.c index 76b51407..c7e47bda 100644 --- a/src/lib/subs/plnsub.c +++ b/src/lib/subs/plnsub.c @@ -55,7 +55,6 @@ #include "ship.h" #include "xy.h" -static int carrier_planes(struct shpstr *); static int pln_equip(struct plist *, struct ichrstr *, int, char); static int fit_plane_on_ship(struct plnstr *, struct shpstr *); @@ -113,8 +112,7 @@ pln_onewaymission(struct sctstr *target, int *shipno, int *flagp) flags = *flagp; /* offer carriers */ - nships = carriersatxy(target->sct_x, target->sct_y, - M_FLY | M_CHOPPER, 0, player->cnum); + nships = carriersatxy(target->sct_x, target->sct_y, player->cnum); if (nships) { for (;;) { if (!(p = getstarg(0, "Carrier #? ", buf)) || !*p) @@ -384,7 +382,7 @@ pln_capable(struct plnstr *pp, int wantflags, int nowantflags) * It's zero if SP can't support air operations due to its type or * state (low efficiency). */ -static int +int carrier_planes(struct shpstr *sp) { struct mchrstr *mcp = mchr + sp->shp_type;