From: Markus Armbruster Date: Mon, 24 Mar 2008 16:17:53 +0000 (+0100) Subject: Replace laun()'s base checking code by pln_airbase_ok() X-Git-Tag: v4.3.12~14 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=52b303498ea85ce5b0294c0e7dd74b2342ae3826 Replace laun()'s base checking code by pln_airbase_ok() This outlaws launch from unowned sectors. Also, non-VTOL missiles require an efficient airfield now, except that such missiles don't exist currently, because init_plchr() makes all missiles VTOL. --- diff --git a/src/lib/commands/laun.c b/src/lib/commands/laun.c index 20eb31bc0..702af83e4 100644 --- a/src/lib/commands/laun.c +++ b/src/lib/commands/laun.c @@ -57,11 +57,9 @@ laun(void) struct nstr_item nstr; struct plnstr plane; struct shpstr ship; - struct sctstr sect; int sublaunch; struct plchrstr *pcp; - int rel, retval, gone; - struct natstr *natp; + int retval, gone; if (!snxtitem(&nstr, EF_PLANE, player->argp[1])) return RET_SYN; @@ -94,41 +92,17 @@ laun(void) } } + if (plane.pln_effic < 60) { + pr("%s is damaged (%d%%)\n", prplane(&plane), plane.pln_effic); + continue; + } + if (!pln_airbase_ok(&plane, 1, 1)) + continue; sublaunch = 0; if (plane.pln_ship >= 0) { getship(plane.pln_ship, &ship); - if (!ship.shp_own) { - pr("%s: ship #%d was sunk!\n", - prplane(&plane), ship.shp_uid); - plane.pln_effic = 0; - putplane(plane.pln_uid, &plane); - continue; - } - natp = getnatp(ship.shp_own); - rel = getrel(natp, player->cnum); - if (ship.shp_own != player->cnum && rel != ALLIED) { - pr("%s: you or an ally do not own ship #%d\n", - prplane(&plane), ship.shp_uid); - continue; - } if (mchr[(int)ship.shp_type].m_flags & M_SUB) sublaunch = 1; - } else { - sublaunch = 0; - getsect(plane.pln_x, plane.pln_y, §); - natp = getnatp(sect.sct_own); - rel = getrel(natp, player->cnum); - if (sect.sct_own && sect.sct_own != player->cnum - && rel != ALLIED) { - pr("%s: you or an ally do not own sector %s!\n", - prplane(&plane), xyas(plane.pln_x, plane.pln_y, - player->cnum)); - continue; - } - } - if (plane.pln_effic < 60) { - pr("%s is damaged (%d%%)\n", prplane(&plane), plane.pln_effic); - continue; } pr("%s at %s; range %d, eff %d%%\n", prplane(&plane), xyas(plane.pln_x, plane.pln_y, player->cnum),