When take_casualties() kills a land unit, it neglects to take it off
its carrier. This triggers an oops in unit_cargo_init(). Instead of
fixing this, just don't let them fight. They can't defend against
other attacks, either.
while (NULL != (lp = nxtitemp(&ni))) {
if (lp->lnd_own != sp->sct_own)
continue;
while (NULL != (lp = nxtitemp(&ni))) {
if (lp->lnd_own != sp->sct_own)
continue;
+ if (lp->lnd_ship >= 0 || lp->lnd_land >= 0)
+ continue;
mil += lp->lnd_item[I_MILIT];
mil += lp->lnd_item[I_MILIT];
while (NULL != (lp = nxtitemp(&ni))) {
if (lp->lnd_own != sp->sct_own)
continue;
while (NULL != (lp = nxtitemp(&ni))) {
if (lp->lnd_own != sp->sct_own)
continue;
+ if (lp->lnd_ship >= 0 || lp->lnd_land >= 0)
+ continue;
nunits++;
if (lchr[(int)lp->lnd_type].l_flags & L_SECURITY)
nunits++;
nunits++;
if (lchr[(int)lp->lnd_type].l_flags & L_SECURITY)
nunits++;
while (NULL != (lp = nxtitemp(&ni))) {
if (lp->lnd_own != sp->sct_own)
continue;
while (NULL != (lp = nxtitemp(&ni))) {
if (lp->lnd_own != sp->sct_own)
continue;
+ if (lp->lnd_ship >= 0 || lp->lnd_land >= 0)
+ continue;
if (!(lchr[(int)lp->lnd_type].l_flags & L_SECURITY))
continue;
if (!(lchr[(int)lp->lnd_type].l_flags & L_SECURITY))
continue;
while (NULL != (lp = nxtitemp(&ni))) {
if (lp->lnd_own != sp->sct_own)
continue;
while (NULL != (lp = nxtitemp(&ni))) {
if (lp->lnd_own != sp->sct_own)
continue;
+ if (lp->lnd_ship >= 0 || lp->lnd_land >= 0)
+ continue;
if (lchr[(int)lp->lnd_type].l_flags & L_SECURITY)
continue;
if (lchr[(int)lp->lnd_type].l_flags & L_SECURITY)
continue;
while (NULL != (lp = nxtitemp(&ni))) {
if (lp->lnd_own != sp->sct_own)
continue;
while (NULL != (lp = nxtitemp(&ni))) {
if (lp->lnd_own != sp->sct_own)
continue;
+ if (lp->lnd_ship >= 0 || lp->lnd_land >= 0)
+ continue;
if (lchr[(int)lp->lnd_type].l_flags & L_SECURITY)
continue;
if (lchr[(int)lp->lnd_type].l_flags & L_SECURITY)
continue;
while (NULL != (lp = nxtitemp(&ni))) {
if (lp->lnd_own != sp->sct_own)
continue;
while (NULL != (lp = nxtitemp(&ni))) {
if (lp->lnd_own != sp->sct_own)
continue;
+ if (lp->lnd_ship >= 0 || lp->lnd_land >= 0)
+ continue;
if (!(lchr[(int)lp->lnd_type].l_flags & L_SECURITY))
continue;
if (!(lchr[(int)lp->lnd_type].l_flags & L_SECURITY))
continue;