From 801780043fd2629b0859013d12caada2e8060688 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sat, 28 Jun 2008 11:24:43 -0400 Subject: [PATCH] Fix flying commands not to let planes do double duty as escorts Commit 7ca4f412 (v4.3.12) marked planes flying a sortie with PLN_LAUNCHED, and made pln_arm() reject planes with that flag set. This was designed to reject escorts that were already flying as bombers. It didn't work, because the test for PLN_LAUNCHED used a stale copy of the plane created by pln_sel(). Fix by getting a fresh copy. The bug always existed, but the botched fix in commit 7ca4f412 made it worse. Before, ac_encounter() dropped escorts that were also bombers, so the bug merely wasted plane fuel. After, such planes were effectively duplicated, and damage to one of them, usually the bomber, was wiped out. Abusable. --- src/lib/subs/plnsub.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/subs/plnsub.c b/src/lib/subs/plnsub.c index 065e2729..1e9b3b82 100644 --- a/src/lib/subs/plnsub.c +++ b/src/lib/subs/plnsub.c @@ -557,6 +557,7 @@ pln_arm(struct emp_qelem *list, int dist, char mission, struct ichrstr *ip, next = qp->q_forw; plp = (struct plist *)qp; pp = &plp->plane; + getplane(pp->pln_uid, pp); if ((pp->pln_flags & PLN_LAUNCHED) || pln_equip(plp, ip, flags, mission) < 0) { emp_remque(qp);