(fly): Prohibit flying of civilians into occupied or allied sectors.
Before, civilians magically changed allegiance on disembarking planes.
This commit is contained in:
parent
a878a40a7b
commit
3588722250
1 changed files with 14 additions and 3 deletions
|
@ -98,11 +98,10 @@ fly(void)
|
||||||
ty = ay;
|
ty = ay;
|
||||||
(void)pathtoxy(flightpath, &tx, &ty, fcost);
|
(void)pathtoxy(flightpath, &tx, &ty, fcost);
|
||||||
pr("Ending sector is %s\n", xyas(tx, ty, player->cnum));
|
pr("Ending sector is %s\n", xyas(tx, ty, player->cnum));
|
||||||
getsect(tx, ty, &target);
|
|
||||||
cno = -1;
|
|
||||||
ip = whatitem(player->argp[5], "transport what? ");
|
ip = whatitem(player->argp[5], "transport what? ");
|
||||||
getsect(tx, ty, &target);
|
getsect(tx, ty, &target);
|
||||||
mission_flags = 0;
|
|
||||||
|
cno = -1;
|
||||||
if (pln_onewaymission(&target, &cno, &wantflags) < 0)
|
if (pln_onewaymission(&target, &cno, &wantflags) < 0)
|
||||||
return RET_SYN;
|
return RET_SYN;
|
||||||
if (cno < 0) {
|
if (cno < 0) {
|
||||||
|
@ -113,6 +112,17 @@ fly(void)
|
||||||
dst_ptr = (s_char *)&ship;
|
dst_ptr = (s_char *)&ship;
|
||||||
dst_type = EF_SHIP;
|
dst_type = EF_SHIP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ip && ip->i_vtype == V_CIVIL) {
|
||||||
|
if (target.sct_own != player->cnum) {
|
||||||
|
pr("Your civilians refuse to emigrate!\n");
|
||||||
|
return RET_FAIL;
|
||||||
|
} else if (target.sct_own != target.sct_oldown) {
|
||||||
|
pr("Can't drop civilians into occupied sectors.\n");
|
||||||
|
return RET_FAIL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ap_to_target = strlen(flightpath);
|
ap_to_target = strlen(flightpath);
|
||||||
if (*(flightpath + strlen(flightpath) - 1) == 'h')
|
if (*(flightpath + strlen(flightpath) - 1) == 'h')
|
||||||
ap_to_target--;
|
ap_to_target--;
|
||||||
|
@ -120,6 +130,7 @@ fly(void)
|
||||||
/*
|
/*
|
||||||
* select planes within range
|
* select planes within range
|
||||||
*/
|
*/
|
||||||
|
mission_flags = 0;
|
||||||
pln_sel(&ni_bomb, &bomb_list, &ap_sect, ap_to_target,
|
pln_sel(&ni_bomb, &bomb_list, &ap_sect, ap_to_target,
|
||||||
1, wantflags, P_M | P_O);
|
1, wantflags, P_M | P_O);
|
||||||
if (QEMPTY(&bomb_list)) {
|
if (QEMPTY(&bomb_list)) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue