diff --git a/include/trade.h b/include/trade.h index 15b8c32a..f6a85776 100644 --- a/include/trade.h +++ b/include/trade.h @@ -57,9 +57,9 @@ struct trdstr { coord trd_y; }; -extern int trade_check_ok(struct trdstr *, union empobj_storage *); -extern char *trade_nameof(struct trdstr *, union empobj_storage *); -extern int trade_desc(struct trdstr *, union empobj_storage *); +extern int trade_check_ok(struct trdstr *, struct empobj *); +extern char *trade_nameof(struct trdstr *, struct empobj *); +extern int trade_desc(struct trdstr *, struct empobj *); extern int trade_getitem(struct trdstr *, union empobj_storage *); #define gettrade(n, p) ef_read(EF_TRADE, (n), (p)) diff --git a/src/lib/commands/set.c b/src/lib/commands/set.c index 6cea604a..b00eabfc 100644 --- a/src/lib/commands/set.c +++ b/src/lib/commands/set.c @@ -90,7 +90,7 @@ set(void) } trade.trd_type = type; sprintf(prompt, "%s #%d; price? ", - trade_nameof(&trade, &item), ni.cur); + trade_nameof(&trade, &item.gen), ni.cur); if (!(p = getstarg(player->argp[3], prompt, buf))) return RET_FAIL; if (!check_obj_ok(&item.gen)) @@ -111,7 +111,7 @@ set(void) if (price <= 0) { if (foundslot >= 0) { pr("%s #%d (lot #%d) removed from trading\n", - trade_nameof(&trade, &item), ni.cur, foundslot); + trade_nameof(&trade, &item.gen), ni.cur, foundslot); trade.trd_owner = 0; puttrade(ni_trade.cur, &trade); } @@ -134,7 +134,7 @@ set(void) trade.trd_maxbidder = player->cnum; puttrade(id, &trade); pr("%s #%d (lot #%d) price %s to $%d\n", - trade_nameof(&trade, &item), ni.cur, + trade_nameof(&trade, &item.gen), ni.cur, id, foundslot >= 0 ? "reset" : "set", price); } } diff --git a/src/lib/commands/trad.c b/src/lib/commands/trad.c index cf1b1e28..0a9b33ba 100644 --- a/src/lib/commands/trad.c +++ b/src/lib/commands/trad.c @@ -103,7 +103,7 @@ trad(void) tleft = 0.0; pr("$%7ld %2d %5.2f hrs ", trade.trd_price, trade.trd_maxbidder, tleft); - (void)trade_desc(&trade, &tg); /* XXX */ + trade_desc(&trade, &tg.gen); /* XXX */ pr("\n"); if (trade.trd_owner == player->cnum && !player->god) pr(" (your own lot)\n"); @@ -182,7 +182,7 @@ trad(void) || (trade.trd_type == EF_NUKE)) { while (1) { p = getstring("Destination sector: ", buf); - if (!trade_check_ok(&trade, &tg)) + if (!trade_check_ok(&trade, &tg.gen)) return RET_FAIL; if (!p) { return RET_FAIL; @@ -210,7 +210,7 @@ trad(void) } else if (trade.trd_type == EF_LAND) { while (1) { p = getstring("Destination sector: ", buf); - if (!trade_check_ok(&trade, &tg)) + if (!trade_check_ok(&trade, &tg.gen)) return RET_FAIL; if (!p) { return RET_FAIL; @@ -242,7 +242,7 @@ trad(void) p = getstring("How much do you bid: ", buf); if (!p || !*p) return RET_OK; - if (!trade_check_ok(&trade, &tg)) + if (!trade_check_ok(&trade, &tg.gen)) return RET_FAIL; bid = atoi(p); if (bid < price) @@ -330,14 +330,14 @@ check_trade(void) nreport(trade.trd_maxbidder, N_WELCH_DEAL, seller, 1); wu(0, seller, "%s tried to buy a %s #%d from you for $%.2f\n", - cname(trade.trd_maxbidder), trade_nameof(&trade, &tg), + cname(trade.trd_maxbidder), trade_nameof(&trade, &tg.gen), saveid, price * tradetax); wu(0, seller, " but couldn't afford it.\n"); wu(0, seller, " Your item was taken off the market.\n"); wu(0, trade.trd_maxbidder, "You tried to buy %s #%d from %s for $%.2f\n", - trade_nameof(&trade, &tg), saveid, cname(seller), + trade_nameof(&trade, &tg.gen), saveid, cname(seller), price); wu(0, trade.trd_maxbidder, "but couldn't afford it.\n"); continue; @@ -398,11 +398,11 @@ check_trade(void) nreport(seller, N_MAKE_SALE, trade.trd_maxbidder, 1); wu(0, seller, "%s bought %s #%d from you for $%.2f\n", - cname(trade.trd_maxbidder), trade_nameof(&trade, &tg), + cname(trade.trd_maxbidder), trade_nameof(&trade, &tg.gen), saveid, price * tradetax); wu(0, trade.trd_maxbidder, "The bidding is over & you bought %s #%d from %s for $%.2f\n", - trade_nameof(&trade, &tg), saveid, cname(seller), + trade_nameof(&trade, &tg.gen), saveid, cname(seller), price); } return RET_OK; diff --git a/src/lib/subs/trdsub.c b/src/lib/subs/trdsub.c index 590c4898..645785a5 100644 --- a/src/lib/subs/trdsub.c +++ b/src/lib/subs/trdsub.c @@ -51,23 +51,23 @@ #include "xy.h" int -trade_check_ok(struct trdstr *tp, union empobj_storage *tgp) +trade_check_ok(struct trdstr *tp, struct empobj *tgp) { - return check_trade_ok(tp) && check_obj_ok(&tgp->gen); + return check_trade_ok(tp) && check_obj_ok(tgp); } char * -trade_nameof(struct trdstr *tp, union empobj_storage *tgp) +trade_nameof(struct trdstr *tp, struct empobj *tgp) { switch (tp->trd_type) { case EF_NUKE: - return nchr[(int)tgp->nuke.nuk_type].n_name; + return nchr[tgp->type].n_name; case EF_PLANE: - return plchr[(int)tgp->plane.pln_type].pl_name; + return plchr[tgp->type].pl_name; case EF_SHIP: - return mchr[(int)tgp->ship.shp_type].m_name; + return mchr[tgp->type].m_name; case EF_LAND: - return lchr[(int)tgp->land.lnd_type].l_name; + return lchr[tgp->type].l_name; } return "Bad trade type, get help"; } @@ -78,7 +78,7 @@ trade_nameof(struct trdstr *tp, union empobj_storage *tgp) * Return 1 on success, 0 on error */ int -trade_desc(struct trdstr *tp, union empobj_storage *tgp) +trade_desc(struct trdstr *tp, struct empobj *tgp) { i_type it; struct sctstr sect; @@ -93,14 +93,14 @@ trade_desc(struct trdstr *tp, union empobj_storage *tgp) switch (tp->trd_type) { case EF_NUKE: - np = &tgp->nuke; + np = (struct nukstr *)tgp; tp->trd_owner = np->nuk_own; pr("(%3d) tech %d %d%% %s #%d", tp->trd_owner, np->nuk_tech, np->nuk_effic, nchr[(int)np->nuk_type].n_name, tp->trd_unitid); break; case EF_SHIP: - sp = &tgp->ship; + sp = (struct shpstr *)tgp; tp->trd_owner = sp->shp_own; pr("(%3d) tech %d %d%% %s [", tp->trd_owner, sp->shp_tech, sp->shp_effic, prship(sp)); @@ -146,7 +146,7 @@ trade_desc(struct trdstr *tp, union empobj_storage *tgp) pr(" at sea"); break; case EF_LAND: - lp = &tgp->land; + lp = (struct lndstr *)tgp; tp->trd_owner = lp->lnd_own; pr("(%3d) tech %d %d%% %s [", tp->trd_owner, @@ -158,7 +158,7 @@ trade_desc(struct trdstr *tp, union empobj_storage *tgp) pr("] #%d", tp->trd_unitid); break; case EF_PLANE: - pp = &tgp->plane; + pp = (struct plnstr *)tgp; tp->trd_owner = pp->pln_own; pr("(%3d) tech %d %d%% %s #%d", tp->trd_owner,