From a55f5d016fd9e78b54b08a4b2f383d52a46d90ca Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Mon, 24 Mar 2008 09:30:37 +0100 Subject: [PATCH] Oops on unexpected mission in pln_equip() and mission_pln_equip() --- src/lib/subs/mission.c | 13 ++++++++----- src/lib/subs/plnsub.c | 16 +++++++++------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/lib/subs/mission.c b/src/lib/subs/mission.c index 7ce44e0e..a80e8cf6 100644 --- a/src/lib/subs/mission.c +++ b/src/lib/subs/mission.c @@ -1010,21 +1010,21 @@ mission_pln_equip(struct plist *plp, struct ichrstr *ip, int flags, itype = I_NONE; needed = 0; switch (mission) { - case 's': - case 'p': + case 's': /* strategic bomb */ + case 'p': /* pinpoint bomb */ if (pp->pln_nuketype == -1) { itype = I_SHELL; needed = load; } break; - case 't': - case 'd': + case 't': /* transport */ + case 'd': /* drop */ if ((pcp->pl_flags & P_C) == 0 || ip == 0) break; itype = ip->i_uid; needed = (load * 2) / ip->i_lbs; break; - case 'a': + case 'a': /* paradrop */ if ((pcp->pl_flags & (P_V | P_C)) == 0) break; itype = I_MILIT; @@ -1036,7 +1036,10 @@ mission_pln_equip(struct plist *plp, struct ichrstr *ip, int flags, needed = load; } break; + case 0: /* plane interception */ + break; default: + CANT_REACH(); break; } if (itype != I_NONE && needed <= 0) diff --git a/src/lib/subs/plnsub.c b/src/lib/subs/plnsub.c index 24b01006..e6f9768f 100644 --- a/src/lib/subs/plnsub.c +++ b/src/lib/subs/plnsub.c @@ -643,34 +643,36 @@ pln_equip(struct plist *plp, struct ichrstr *ip, int flags, char mission) itype = I_NONE; needed = 0; switch (mission) { - case 's': - case 'p': + case 's': /* strategic bomb */ + case 'p': /* pinpoint bomb */ if (pp->pln_nuketype == -1) { itype = I_SHELL; needed = load; } break; - case 't': - case 'd': + case 't': /* transport */ + case 'd': /* drop */ if ((pcp->pl_flags & P_C) == 0 || ip == 0) break; itype = ip->i_uid; needed = (load * 2) / ip->i_lbs; break; - case 'm': + case 'm': /* mine */ if ((pcp->pl_flags & P_MINE) == 0) break; itype = I_SHELL; needed = (load * 2) / ip->i_lbs; break; - case 'a': + case 'a': /* paradrop */ if ((pcp->pl_flags & (P_V | P_C)) == 0) break; itype = I_MILIT; needed = load / ip->i_lbs; break; - default: + case 'r': /* reconnaissance */ break; + default: + CANT_REACH(); } if (itype != I_NONE && needed <= 0) { pr("%s can't contribute to mission\n", prplane(pp));