From 84d40a6057a4f858f5a7bef7bb7c73b4614128f3 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. (cherry picked from commit 801780043fd2629b0859013d12caada2e8060688) --- 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 d2b811f5a..9d0037fa1 100644 --- a/src/lib/subs/plnsub.c +++ b/src/lib/subs/plnsub.c @@ -559,6 +559,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); -- 2.43.0