Make drop require capability cargo

Before, drop worked like fly: it accepted any plane, but planes
without capability cargo dropped nothing.

Partial fix for #1388263.
This commit is contained in:
Markus Armbruster 2009-09-27 13:32:34 -04:00
parent 1c5bfa0eab
commit 3cea4ac5be
2 changed files with 7 additions and 6 deletions

View file

@ -8,9 +8,9 @@ battle.
.s1
<TRANSPORTS> represents a list of planes to transport commodities to
the target sector.
Only planes with sufficient mobility, based in a sector stocked with
petrol and the commodities to transport, will be successfully selected
for the mission.
Only planes with capability cargo and sufficient mobility, based in a
sector stocked with petrol and the commodities to transport, will be
successfully selected for the mission.
.s1
<ESCORTS> represent a list of fighter planes which are capable of escorting
the transports all the way to the target.
@ -22,8 +22,7 @@ The assembly point must be owned by you or an ally, or you or an ally
must have a ship there. It must not be more than
four sectors away from any of the planes selected for the mission.
.s1
<COMMODITY> is the name of a commodity which is to be carried along
on all of the planes which have a transport capacity.
<COMMODITY> is the name of the commodity which is to be dropped.
.s1
Route is a normal empire path specification. You may also give a
destination sector on the command line, or at any time while giving

View file

@ -57,7 +57,6 @@ drop(void)
struct sctstr ap_sect;
char buf[1024];
wantflags = 0;
if (get_planes(&ni_bomb, &ni_esc, player->argp[1], player->argp[2]) < 0)
return RET_SYN;
if (!get_assembly_point(player->argp[3], &ap_sect, buf))
@ -77,16 +76,19 @@ drop(void)
if (target.sct_own == player->cnum
|| getrel(getnatp(target.sct_own), player->cnum) == ALLIED) {
/* own or allied sector: cargo drop */
if (ip->i_uid == I_CIVIL && target.sct_own != target.sct_oldown) {
pr("Can't drop civilians into occupied sectors.\n");
return RET_FAIL;
}
wantflags = P_C;
} else {
/* into the unknown... */
if (ip->i_uid != I_SHELL) {
pr("You don't own %s!\n", xyas(tx, ty, player->cnum));
return RET_FAIL;
}
/* mine drop */
wantflags = P_MINE;
}