diff --git a/src/lib/subs/retreat.c b/src/lib/subs/retreat.c index 79283024..aa55a0f5 100644 --- a/src/lib/subs/retreat.c +++ b/src/lib/subs/retreat.c @@ -267,7 +267,9 @@ retreat_ship1(struct shpstr *sp, char code, int orig) mines = sect.sct_mines; changed = 0; - if ((mcp->m_flags & M_SWEEP) && sect.sct_type == SCT_WATER) { + if (sect.sct_type != SCT_WATER || mines <= 0) + continue; + if (mcp->m_flags & M_SWEEP) { max = mcp->m_item[I_SHELL]; shells = sp->shp_item[I_SHELL]; for (m = 0; mines > 0 && m < 5; m++) { @@ -281,7 +283,8 @@ retreat_ship1(struct shpstr *sp, char code, int orig) if (sect.sct_mines != mines) { wu(0, sp->shp_own, "%s cleared %d mine%s in %s while retreating\n", - prship(sp), sect.sct_mines-mines, splur(sect.sct_mines-mines), + prship(sp), sect.sct_mines - mines, + splur(sect.sct_mines - mines), xyas(newx, newy, sp->shp_own)); sect.sct_mines = mines; sp->shp_item[I_SHELL] = shells; @@ -290,8 +293,7 @@ retreat_ship1(struct shpstr *sp, char code, int orig) if (changed) writemap(sp->shp_own); } - if (sect.sct_type == SCT_WATER && mines > 0 - && chance(DMINE_HITCHANCE(mines))) { + if (chance(DMINE_HITCHANCE(mines))) { wu(0, sp->shp_own, "%s %s,\nand hit a mine in %s while retreating!\n", prship(sp), conditions[findcondition(code)].desc[orig], @@ -476,8 +478,9 @@ retreat_land1(struct lndstr *lp, char code, int orig) continue; mines = SCT_LANDMINES(§); - if ((lcp->l_flags & L_ENGINEER) && mines > 0 && - (sect.sct_oldown != lp->lnd_own)) { + if (mines <= 0 || sect.sct_oldown == lp->lnd_own) + continue; + if (lcp->l_flags & L_ENGINEER) { max = lcp->l_item[I_SHELL]; shells = lp->lnd_item[I_SHELL]; for (m = 0; mines > 0 && m < 5; m++) { @@ -490,8 +493,7 @@ retreat_land1(struct lndstr *lp, char code, int orig) lp->lnd_item[I_SHELL] = shells; putsect(§); } - if (mines > 0 && (sect.sct_oldown != lp->lnd_own) && - chance(DMINE_LHITCHANCE(mines))) { + if (chance(DMINE_LHITCHANCE(mines))) { wu(0, lp->lnd_own, "%s %s,\nand hit a mine in %s while retreating!\n", prland(lp),