/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2010, Dave Pare, Jeff Bailey, Thomas Ruschak,
- * Ken Stevens, Steve McClure
+ * Copyright (C) 1986-2017, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Ken Stevens, Steve McClure, Markus Armbruster
*
- * This program is free software; you can redistribute it and/or modify
+ * Empire is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* ---
*
}
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 (!trade_check_item_ok(&item))
+ if (!check_obj_ok(&item.gen))
return RET_FAIL;
if ((price = atoi(p)) < 0)
continue;
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);
}
} else {
+ if (trade_has_unsalable_cargo(&item.gen, 1))
+ return RET_FAIL;
if (foundslot >= 0)
id = foundslot;
else if (freeslot >= 0)
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);
}
}