diff --git a/include/prototypes.h b/include/prototypes.h index ddb6ce39..f9f869c0 100644 --- a/include/prototypes.h +++ b/include/prototypes.h @@ -556,6 +556,7 @@ extern int put_plane_on_ship(struct plnstr *, struct shpstr *); extern void pln_dropoff(struct emp_qelem *, struct ichrstr *, coord, coord, void *, int); extern void pln_mine(struct emp_qelem *list, struct sctstr *sectp); +extern int pln_wanted(struct plnstr *, int, int); 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/mission.c b/src/lib/subs/mission.c index 018b03f5..44fc6b10 100644 --- a/src/lib/subs/mission.c +++ b/src/lib/subs/mission.c @@ -902,67 +902,6 @@ oprange(struct empobj *gp, int *radius) return range; } -static int -mission_pln_wanted(struct plnstr *pp, int wantflags, int nowantflags) -{ - int y, bad, bad1; - unsigned x; - struct plchrstr *pcp = plchr + pp->pln_type; - - bad = 0; - bad1 = 0; - if (wantflags) { - for (x = 0; x < sizeof(wantflags) * 8; x++) { - y = (1 << x); - if ((wantflags & y) == y) - if ((pcp->pl_flags & y) != y) { - switch (y) { - case P_F: - case P_ESC: - bad1 = 2; - break; - case P_E: - case P_L: - case P_K: - bad1 = 1; - break; - default: - bad = 1; - } - } - } - if (bad) { - return 0; - } - if (bad1 == 2) { - if ((pcp->pl_flags & P_ESC) || (pcp->pl_flags & P_F)) - bad1 = 0; - } - if (bad1 == 1) { - if ((pcp->pl_flags & P_E) || - (pcp->pl_flags & P_K) || (pcp->pl_flags & P_L)) - bad1 = 0; - } - if (bad1) { - return 0; - } - } - bad = 0; - bad1 = 0; - if (nowantflags) { - for (x = 0; x < sizeof(nowantflags) * 8; x++) { - y = (1 << x); - if ((nowantflags & y) == y) - if ((pcp->pl_flags & y) == y) - bad = 1; - } - if (bad) { - return 0; - } - } - return 1; -} - /* * Remove all planes who cannot go on * the mission from the plane list. @@ -1007,7 +946,7 @@ mission_pln_sel(struct emp_qelem *list, int wantflags, int nowantflags, } } - if (!mission_pln_wanted(pp, wantflags, nowantflags)) { + if (!pln_wanted(pp, wantflags, nowantflags)) { emp_remque(qp); free(qp); continue; diff --git a/src/lib/subs/plnsub.c b/src/lib/subs/plnsub.c index e358708b..50a2092a 100644 --- a/src/lib/subs/plnsub.c +++ b/src/lib/subs/plnsub.c @@ -359,7 +359,7 @@ pln_mine(struct emp_qelem *list, struct sctstr *sectp) * - it lacks any of the other flags in wantflags, or * - it has any of the flags in nowantflags. */ -static int +int pln_wanted(struct plnstr *pp, int wantflags, int nowantflags) { int flags = plchr[(int)pp->pln_type].pl_flags;