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

View file

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