From: Markus Armbruster Date: Sat, 6 Sep 2008 23:22:56 +0000 (-0400) Subject: Enable the new nuk_on_plane(), replacing the old one X-Git-Tag: v4.3.17~60 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=4086c25a1511709d83a6d8ef68cf2be28ddc2dc8 Enable the new nuk_on_plane(), replacing the old one Callers changed, as the new one isn't a drop-in replacements. --- diff --git a/include/nuke.h b/include/nuke.h index 05245cfb4..ef176d4b8 100644 --- a/include/nuke.h +++ b/include/nuke.h @@ -92,8 +92,6 @@ extern struct nchrstr nchr[N_MAXNUKE + 1]; /* src/lib/common/cargo.c */ extern void nuk_carrier_change(struct nukstr *, int, int, int); -#if 0 /* clashes with the one in src/lib/subs/nuke.c */ extern int nuk_on_plane(struct plnstr *); -#endif #endif diff --git a/include/prototypes.h b/include/prototypes.h index 7cb9bd305..be5b01a4d 100644 --- a/include/prototypes.h +++ b/include/prototypes.h @@ -521,7 +521,6 @@ extern char *prnuke(struct nukstr *); extern void nuk_oninit(void *); extern void nuk_postread(int, void *); extern void nuk_prewrite(int, void *, void *); -extern int nuk_on_plane(struct nukstr *, int); /* nxtitem.c */ extern int nxtitem(struct nstr_item *, void *); /* nxtsct.c */ diff --git a/src/lib/commands/arm.c b/src/lib/commands/arm.c index 5a9109c58..8a443caa7 100644 --- a/src/lib/commands/arm.c +++ b/src/lib/commands/arm.c @@ -73,7 +73,7 @@ arm(void) return RET_FAIL; } } - if (pl.pln_nuketype < 0) { + if (!getnuke(nuk_on_plane(&pl), &nuke)) { sprintf(prompt, "Nuclear device for %s: ", prplane(&pl)); p = getstarg(player->argp[2], prompt, buf); if (!p || !*p) @@ -83,11 +83,6 @@ arm(void) nukno = atoi(p); if (!getnuke(nukno, &nuke) || !player->owner) return RET_FAIL; - } else { - if (nuk_on_plane(&nuke, pl.pln_uid) < 0) { - CANT_REACH(); - continue; - } } ncp = &nchr[nuke.nuk_type]; if (pln_load(&pl) < ncp->n_weight) { @@ -143,7 +138,7 @@ disarm(void) while (nxtitem(&ni, &pl)) { if (!player->owner) continue; - if (pl.pln_nuketype == -1) + if (!getnuke(nuk_on_plane(&pl), &nuke)) continue; if (opt_MARKET) { if (ontradingblock(EF_PLANE, &pl)) { @@ -152,10 +147,6 @@ disarm(void) return RET_FAIL; } } - if (nuk_on_plane(&nuke, pl.pln_uid) < 0) { - CANT_REACH(); - continue; - } getsect(nuke.nuk_x, nuke.nuk_y, §); if (!player->owner && getrel(getnatp(sect.sct_own), player->cnum) != ALLIED) { diff --git a/src/lib/common/cargo.c b/src/lib/common/cargo.c index 4e38b3b0b..64f904c26 100644 --- a/src/lib/common/cargo.c +++ b/src/lib/common/cargo.c @@ -379,7 +379,6 @@ lnd_next_on_unit(int uid) return unit_cargo_next(EF_LAND, uid); } -#if 0 /* clashes with the one in src/lib/subs/nuke.c */ /* * If PP carries a nuke, return its uid, else -1. */ @@ -388,4 +387,3 @@ nuk_on_plane(struct plnstr *pp) { return unit_cargo_first(EF_PLANE, pp->pln_uid, EF_NUKE); } -#endif diff --git a/src/lib/subs/nuke.c b/src/lib/subs/nuke.c index 0708ff579..3477d6deb 100644 --- a/src/lib/subs/nuke.c +++ b/src/lib/subs/nuke.c @@ -94,21 +94,6 @@ nuk_prewrite(int n, void *old, void *new) np->nuk_own = own; } -int -nuk_on_plane(struct nukstr *np, int pluid) -{ - struct nstr_item ni; - - snxtitem_all(&ni, EF_NUKE); - while (nxtitem(&ni, np)) { - if (np->nuk_own == 0) - continue; - if (np->nuk_plane == pluid) - return np->nuk_uid; - } - return -1; -} - void nuk_oninit(void *ptr) { diff --git a/src/lib/subs/plnsub.c b/src/lib/subs/plnsub.c index bb582a277..d4a956483 100644 --- a/src/lib/subs/plnsub.c +++ b/src/lib/subs/plnsub.c @@ -1135,16 +1135,13 @@ pln_damage(struct plnstr *pp, coord x, coord y, char type, int *nukedamp, int effective = 1; int pinbomber = 0; - if (pp->pln_nuketype != -1) { - if (nuk_on_plane(&nuke, pp->pln_uid) >= 0) { - mpr(pp->pln_own, "Releasing RV's for %s detonation...\n", - pp->pln_flags & PLN_AIRBURST ? "airburst" : "groundburst"); - pp->pln_nuketype = -1; - *nukedamp = detonate(&nuke, x, y, - pp->pln_flags & PLN_AIRBURST); - return 0; - } - CANT_REACH(); + if (getnuke(nuk_on_plane(pp), &nuke)) { + mpr(pp->pln_own, "Releasing RV's for %s detonation...\n", + pp->pln_flags & PLN_AIRBURST ? "airburst" : "groundburst"); + pp->pln_nuketype = -1; + *nukedamp = detonate(&nuke, x, y, + pp->pln_flags & PLN_AIRBURST); + return 0; } *nukedamp = 0;