diff --git a/src/lib/commands/scut.c b/src/lib/commands/scut.c index 0446ed7f..9454f3e2 100644 --- a/src/lib/commands/scut.c +++ b/src/lib/commands/scut.c @@ -169,13 +169,8 @@ scuttle_tradeship(struct shpstr *sp, int interactive) dist = mapdist(sp->shp_x, sp->shp_y, sp->shp_orig_x, sp->shp_orig_y); /* Don't disclose distance to to pirates */ - if (sp->shp_own == sp->shp_orig_own) { - if (interactive) - pr("%s has gone %d sects\n", prship(sp), dist); - else - wu(0, sp->shp_own, "%s has gone %d sects\n", - prship(sp), dist); - } + if (sp->shp_own == sp->shp_orig_own) + mpr(sp->shp_own, "%s has gone %d sects\n", prship(sp), dist); if (dist < trade_1_dist) cash = 0; else if (dist < trade_2_dist) @@ -193,20 +188,23 @@ scuttle_tradeship(struct shpstr *sp, int interactive) } } - if (!interactive && cash) { + if (!cash && (dist < 0 || sp->shp_own == sp->shp_orig_own)) { + if (interactive) { + pr("You won't get any money if you scuttle in %s!", + xyas(sp->shp_x, sp->shp_y, player->cnum)); + sprintf(buf, "Are you sure you want to scuttle %s? ", prship(sp)); + return confirm(buf); + } else + return 0; + } + + if (interactive) { + player->dolcost -= cash; + } else { natp = getnatp(sp->shp_own); natp->nat_money += cash; putnat(natp); wu(0, sp->shp_own, "You just made $%d.\n", (int)cash); - } else if (!cash && !interactive) { - wu(0, sp->shp_own, "Unfortunately, you make $0 on this trade.\n"); - } else if (cash && interactive) { - player->dolcost -= cash; - } else if (interactive && (dist < 0 || sp->shp_own == sp->shp_orig_own)) { - pr("You won't get any money if you scuttle in %s!", - xyas(sp->shp_x, sp->shp_y, player->cnum)); - sprintf(buf, "Are you sure you want to scuttle %s? ", prship(sp)); - return confirm(buf); } if (ally_cash) { diff --git a/src/lib/update/nav_ship.c b/src/lib/update/nav_ship.c index e1fe2b0b..f49c2643 100644 --- a/src/lib/update/nav_ship.c +++ b/src/lib/update/nav_ship.c @@ -53,23 +53,19 @@ scuttle_it(struct shpstr *sp) sp->shp_x, sp->shp_y, sp->shp_uid); return; } - if (sectp->sct_type != SCT_HARBR || sectp->sct_effic < 2) { - wu(0, sp->shp_own, - "%s is not in a harbor at least 2%% eff! Not scuttling.\n", - prship(sp)); - return; - } if (opt_TRADESHIPS) { if (!(mchr[(int)sp->shp_type].m_flags & M_TRADE)) { wu(0, sp->shp_own, "You can only autoscuttle trade ships!\n"); return; } } + if (!scuttle_tradeship(sp, 0)) { + wu(0, sp->shp_own, + "%s doesn't pay here! Not scuttled.\n", prship(sp)); + return; + } wu(0, sp->shp_own, "Scuttling %s in sector %s\n", prship(sp), xyas(sp->shp_x, sp->shp_y, sp->shp_own)); - if (opt_TRADESHIPS) { - scuttle_tradeship(sp, 0); - } scuttle_ship(sp); }