Don't let fly and drop give away civilians

Flying them to a foreign destination magically changes their
allegiance.  Prohibit that.

Equivalent change was already in commit 35887222 (v4.2.17) but got
reverted immediately (commit 20199b22), because fly and drop should
stay consistent with load, which let you give away civilians then.  No
more since commit 92a366ce (v4.3.20).  This change makes fly and drop
consistent with load again.
This commit is contained in:
Markus Armbruster 2012-06-23 21:29:15 +02:00
parent b4acb73fd1
commit 729cf65e12
2 changed files with 20 additions and 9 deletions

View file

@ -28,7 +28,7 @@
*
* Known contributors to this file:
* Dave Pare, 1986
* Markus Armbruster, 2004-2011
* Markus Armbruster, 2004-2012
*/
#include <config.h>
@ -74,9 +74,15 @@ drop(void)
if (relations_with(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;
if (ip->i_uid == I_CIVIL) {
if (target.sct_own != player->cnum) {
pr("Your civilians refuse to board a flight abroad!\n");
return RET_FAIL;
}
if (target.sct_own != target.sct_oldown) {
pr("Can't drop civilians into occupied sectors.\n");
return RET_FAIL;
}
}
wantflags = P_C;
} else {