diff --git a/src/lib/subs/mission.c b/src/lib/subs/mission.c index bfa57e82..f28ed6fc 100644 --- a/src/lib/subs/mission.c +++ b/src/lib/subs/mission.c @@ -908,16 +908,24 @@ mission_pln_equip(struct plist *plp, struct ichrstr *ip, char mission) itype = I_SHELL; break; case 't': /* transport */ - case 'd': /* drop */ if (!(pcp->pl_flags & P_C) || !ip) break; itype = ip->i_uid; load *= 2; break; + case 'd': /* drop */ + if (!(pcp->pl_flags & P_C) || CANT_HAPPEN(!ip)) + break; + itype = ip->i_uid; + if (pcp->pl_flags & P_V) + load *= 2; + break; case 'a': /* paradrop */ if (!(pcp->pl_flags & P_P)) break; itype = I_MILIT; + if (pcp->pl_flags & P_V) + load *= 2; break; case 'i': /* missile interception */ if (load) diff --git a/src/lib/subs/plnsub.c b/src/lib/subs/plnsub.c index 293fefee..71e09f37 100644 --- a/src/lib/subs/plnsub.c +++ b/src/lib/subs/plnsub.c @@ -658,7 +658,6 @@ pln_equip(struct plist *plp, struct ichrstr *ip, char mission) itype = I_SHELL; break; case 't': /* transport */ - case 'd': /* drop */ if (!(pcp->pl_flags & P_C) || !ip) break; itype = ip->i_uid; @@ -670,10 +669,19 @@ pln_equip(struct plist *plp, struct ichrstr *ip, char mission) itype = I_SHELL; load *= 2; break; + case 'd': /* drop */ + if (!(pcp->pl_flags & P_C) || CANT_HAPPEN(!ip)) + break; + itype = ip->i_uid; + if (pcp->pl_flags & P_V) + load *= 2; + break; case 'a': /* paradrop */ if (!(pcp->pl_flags & P_P)) break; itype = I_MILIT; + if (pcp->pl_flags & P_V) + load *= 2; break; case 'r': /* reconnaissance */ case 'e': /* escort */