Don't write garbage to unused trade destination in trade file

struct trdstr members trd_x, trd_y are used only for teleporting
trades.  For others, trad() wrote garbage coordinates to the trade
file.  They weren't used except by xdump.  Fortunately, even there
they're visible only to deities.

Write invalid coordinates instead.  Do that in set() as well, so that
coordinates are valid only when we have a teleport destination.

Spotted by the Clang Static Analyzer.
This commit is contained in:
Markus Armbruster 2010-06-27 11:35:08 +02:00
parent 8c78b1188b
commit 10736cd157
3 changed files with 10 additions and 10 deletions

View file

@ -177,11 +177,8 @@ trad(void)
}
}
canspend = natp->nat_money - tally;
/*
* Find the destination sector for the plane before the trade is
* actually made, except for satellites in orbit. Must be owned
* and must be a 60% airfield (except for VTOL planes).
*/
/* Find the destination sector for the trade */
if (((trade.trd_type == EF_PLANE) && !pln_is_in_orbit(&tg.plane))
|| (trade.trd_type == EF_NUKE)) {
while (1) {
@ -211,8 +208,7 @@ trad(void)
}
break;
}
}
if (trade.trd_type == EF_LAND) {
} else if (trade.trd_type == EF_LAND) {
while (1) {
p = getstring("Destination sector: ", buf);
if (!trade_check_ok(&trade, &tg))
@ -238,6 +234,10 @@ trad(void)
}
break;
}
} else {
/* This trade doesn't teleport; make destination invalid */
sx = 1;
sy = 0;
}
p = getstring("How much do you bid: ", buf);