diff --git a/src/lib/commands/drop.c b/src/lib/commands/drop.c index 9441fdfa..330f9cd4 100644 --- a/src/lib/commands/drop.c +++ b/src/lib/commands/drop.c @@ -28,7 +28,7 @@ * * Known contributors to this file: * Dave Pare, 1986 - * Markus Armbruster, 2004-2011 + * Markus Armbruster, 2004-2012 */ #include @@ -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 { diff --git a/src/lib/commands/fly.c b/src/lib/commands/fly.c index f3d723b0..f861b331 100644 --- a/src/lib/commands/fly.c +++ b/src/lib/commands/fly.c @@ -80,11 +80,16 @@ fly(void) return RET_SYN; cno = target.gen.ef_type == EF_SHIP ? target.gen.uid : -1; - if (ip && ip->i_uid == I_CIVIL - && target.gen.ef_type == EF_SECTOR - && target.sect.sct_own != target.sect.sct_oldown) { - pr("Can't fly civilians into occupied sectors.\n"); - return RET_FAIL; + if (ip && ip->i_uid == I_CIVIL) { + if (target.gen.own != player->cnum) { + pr("Your civilians refuse to board a flight abroad!\n"); + return RET_FAIL; + } + if (target.gen.ef_type == EF_SECTOR + && target.sect.sct_own != target.sect.sct_oldown) { + pr("Can't fly civilians into occupied sectors.\n"); + return RET_FAIL; + } } ap_to_target = strlen(flightpath);