Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2012-10-21 10:18:07 +0000
committerStijn Buys <ingar@osirion.org>2012-10-21 10:18:07 +0000
commit37116aad3b2c128bae5b7f1ef4d1bc3cb8608f57 (patch)
treea7377905f52eaa41b6cc38a94db96fb9f8706246 /src/client/inventorylistview.cc
parentdb69f96fbf5ac5321bdcb1e86ff07d1e35de9fec (diff)
Support the Item::Unrestricted flag, client allows to sell unrestricted items anywhere.
Diffstat (limited to 'src/client/inventorylistview.cc')
-rw-r--r--src/client/inventorylistview.cc23
1 files changed, 16 insertions, 7 deletions
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("-");