(payo, scuttle_tradeship, sdump): Disclose construction site only to

original owner and deities.  Closes #815197.
This commit is contained in:
Markus Armbruster 2004-01-31 10:03:49 +00:00
parent c2ab6de7e7
commit a99bc3be73
4 changed files with 35 additions and 11 deletions

View file

@ -92,11 +92,16 @@ payo(void)
pr("%3d ", ship.shp_own);
pr("%4d ", ni.cur);
pr("%-16.16s ", mchr[(int)ship.shp_type].m_name);
if (ship.shp_own != ship.shp_orig_own && !player->god) {
/* Don't disclose construction site to pirates! */
pr(" ? ");
prxy("%4d,%-4d ", ship.shp_x, ship.shp_y, player->cnum);
pr(" ? $ ?\n");
continue;
}
prxy("%4d,%-4d ", ship.shp_orig_x, ship.shp_orig_y, player->cnum);
prxy("%4d,%-4d ", ship.shp_x, ship.shp_y, player->cnum);
getsect(ship.shp_x, ship.shp_y, &sect);
dist = mapdist(ship.shp_x, ship.shp_y,
ship.shp_orig_x, ship.shp_orig_y);
pr("%4d ", dist);

View file

@ -80,10 +80,14 @@ scuttle_tradeship(struct shpstr *sp, int interactive)
if (sect.sct_own && sect.sct_type == SCT_HARBR) {
dist = mapdist(sp->shp_x, sp->shp_y,
sp->shp_orig_x, sp->shp_orig_y);
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);
/* 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 (dist < trade_1_dist)
cash = 0;
else if (dist < trade_2_dist)
@ -110,7 +114,7 @@ scuttle_tradeship(struct shpstr *sp, int interactive)
wu(0, sp->shp_own, "Unfortunately, you make $0 on this trade.\n");
} else if (cash && interactive) {
player->dolcost -= cash;
} else if (interactive) {
} else if (interactive && 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));

View file

@ -384,10 +384,23 @@ sdump(void)
pr(" %d", ship.shp_glim);
break;
case 32:
pr(" %d", xrel(np, ship.shp_orig_x));
/*
* Disclosing construction site allows pirates to find
* harbors. Disclose it only to the original owner
* and to deities. Else dump illegal coordinates
* 1,0
*/
if (ship.shp_own == ship.shp_orig_own || player->god)
pr(" %d", xrel(np, ship.shp_orig_x));
else
pr(" 1");
break;
case 33:
pr(" %d", yrel(np, ship.shp_orig_y));
/* see case 32 */
if (ship.shp_own == ship.shp_orig_own || player->god)
pr(" %d", yrel(np, ship.shp_orig_y));
else
pr(" 0");
break;
case 34:
pr(" %c%s%c", '"', ship.shp_name, '"');