From 37116aad3b2c128bae5b7f1ef4d1bc3cb8608f57 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sun, 21 Oct 2012 10:18:07 +0000 Subject: Support the Item::Unrestricted flag, client allows to sell unrestricted items anywhere. --- src/client/inventorylistview.cc | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'src/client/inventorylistview.cc') diff --git a/src/client/inventorylistview.cc b/src/client/inventorylistview.cc index 77daba2..b3dba61 100644 --- a/src/client/inventorylistview.cc +++ b/src/client/inventorylistview.cc @@ -71,10 +71,14 @@ void InventoryListView::set_inventory(core::Inventory *inventory, core::InfoType // special rules for own ship inventory // retreive price from the trader - const core::Item *trader_item = (core::localplayer()->view() && core::localplayer()->view()->inventory() ? core::localplayer()->view()->inventory()->find(item->info()) : 0); - if (!trader_item) { - // not sold here - str << "^N"; + const core::Item *trader_item = 0; + + if (!item->unrestricted()) { + trader_item = (core::localplayer()->view() && core::localplayer()->view()->inventory() ? core::localplayer()->view()->inventory()->find(item->info()) : 0); + if (!trader_item) { + // not sold here + str << "^N"; + } } str << item->info()->name(); @@ -83,13 +87,18 @@ void InventoryListView::set_inventory(core::Inventory *inventory, core::InfoType str_amount << item->amount(); str << '\n' << aux::pad_right(str_amount.str(), 10); - if (trader_item) { + if (item->unrestricted()) { + // unrestricted items can be sold anywhere + std::ostringstream std_price; + std_price << item->price() << " credits"; + str << aux::pad_left(std_price.str(), 12); + } else if (trader_item) { std::ostringstream std_price; std_price << trader_item->price() << " credits"; str << aux::pad_left(std_price.str(), 12); } - - if (trader_item) { + + if (trader_item || item->unrestricted()) { sortkey.assign("+"); } else { sortkey.assign("-"); -- cgit v1.2.3