]> git.pond.sub.org Git - empserver/commitdiff
Fix flying commands not to let planes do double duty as escorts
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 15:24:43 +0000 (11:24 -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.

src/lib/subs/plnsub.c

index 065e2729181bf38dba4f381079440cab8579695c..1e9b3b82bf8b693d7c2db7f8295777e1a1839c96 100644 (file)
@@ -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);