diff --git a/include/trade.h b/include/trade.h index ffd86b4f..b7ed5e37 100644 --- a/include/trade.h +++ b/include/trade.h @@ -54,7 +54,7 @@ struct trdstr { long trd_price; int trd_maxbidder; time_t trd_markettime; - coord trd_x; + coord trd_x; /* destination for teleporting trade */ coord trd_y; }; diff --git a/src/lib/commands/set.c b/src/lib/commands/set.c index a557cf44..0f088066 100644 --- a/src/lib/commands/set.c +++ b/src/lib/commands/set.c @@ -124,8 +124,8 @@ set(void) else id = ni_trade.cur; ef_blank(EF_TRADE, id, &trade); - trade.trd_x = item.gen.x; - trade.trd_y = item.gen.y; + trade.trd_x = 1; + trade.trd_y = 0; trade.trd_type = type; trade.trd_owner = player->cnum; trade.trd_unitid = ni.cur; diff --git a/src/lib/commands/trad.c b/src/lib/commands/trad.c index 64d0aed8..6d22dab8 100644 --- a/src/lib/commands/trad.c +++ b/src/lib/commands/trad.c @@ -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);