Fix arm to require nuke and plane to be in the same sector
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 29 Apr 2012 07:58:51 +0000 (09:58 +0200)
committerMarkus Armbruster <armbru@pond.sub.org>
Tue, 1 May 2012 16:35:32 +0000 (18:35 +0200)
It happily arms a plane with a remote nuke.  The nuke gets teleported
to the plane when the plane moves (a two-way sortie doesn't count as
move).  Broken in 4.3.3.  Reported by Harald Katzer.

src/lib/commands/arm.c

index 61ccc2ef5a014751a5b12e79aef383f13a5a8355..f7268dd092e9a578398741ad5d4447b88d32f1ff 100644 (file)
@@ -102,6 +102,11 @@ arm(void)
               prnuke(&nuke), nuke.nuk_plane);
            return RET_FAIL;
        }
+       if (nuke.nuk_x != pl.pln_x || nuke.nuk_y != pl.pln_y) {
+           pr("%s isn't in the same sector as %s!\n",
+              prnuke(&nuke), prplane(&pl));
+           return RET_FAIL;
+       }
 
        if (*p == 'y' || *p == 'Y')
            pl.pln_flags |= PLN_AIRBURST;