]> git.pond.sub.org Git - empserver/commitdiff
Fix flying commands not to let planes do double duty as escorts hvy-metal-2.7
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 28 Jun 2008 15:24:43 +0000 (11:24 -0400)
committerMarkus Armbruster <armbru@pond.sub.org>
Sat, 28 Jun 2008 17:07:52 +0000 (13:07 -0400)
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

index d2b811f5a41dea85dcd67bd6207c4783a6484e28..9d0037fa1faff5c36884480e1ed35dc0d1a394af 100644 (file)
@@ -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);