diff options
author | Stijn Buys <ingar@osirion.org> | 2010-09-22 21:32:34 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2010-09-22 21:32:34 +0000 |
commit | a6f9773c358dd7d091ff64cbda504ab8d8066dd3 (patch) | |
tree | 226e23c4656957e908623ccda9d3d1c50240a0b4 /src/client/trademenu.cc | |
parent | bbb43d1c15f2858573f5abb595aa62f8224e4d76 (diff) |
full trading support for networked games
Diffstat (limited to 'src/client/trademenu.cc')
-rw-r--r-- | src/client/trademenu.cc | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/client/trademenu.cc b/src/client/trademenu.cc index 0b8fb64..91724f7 100644 --- a/src/client/trademenu.cc +++ b/src/client/trademenu.cc @@ -80,6 +80,7 @@ TradeMenu::TradeMenu(ui::Widget *parent, const char * label) : ui::Window(parent menu_listitem = 0; set_itemtype(0); + set_item(0); hide(); } @@ -97,17 +98,16 @@ void TradeMenu::set_itemtype(core::InfoType *item_type) core::Inventory *inventory_player = 0; core::Inventory *inventory_view = 0; - if (core::localcontrol()) - inventory_player = core::localcontrol()->inventory(); + inventory_player = core::game()->request_inventory(core::localcontrol()); if(core::localplayer()->view()) - inventory_view = core::localplayer()->view()->inventory(); + inventory_view = core::game()->request_inventory(core::localplayer()->view()); menu_inventorylistview->set_inventory(inventory_player, item_type); menu_traderlistview->set_inventory(inventory_view, item_type); - set_item(0); + //set_item(0); } void TradeMenu::set_item(ui::ListItem *item) @@ -302,10 +302,12 @@ bool TradeMenu::on_emit(Widget *sender, const Event event, void *data) set_item(menu_inventorylistview->selected()); } return true; + } else if (event == ui::Widget::EventListViewChanged) { // listview changed if (sender == menu_traderlistview) { set_item(menu_traderlistview->selected()); + } else if (sender == menu_inventorylistview) { set_item(menu_inventorylistview->selected()); } @@ -318,7 +320,7 @@ bool TradeMenu::on_emit(Widget *sender, const Event event, void *data) void TradeMenu::draw() { // sanity check - if ((menu_inventorylistview->inventory() != (core::localcontrol() ? core::localcontrol()->inventory() : 0 )) || + if ((menu_inventorylistview->inventory() != (core::localcontrol() ? core::localcontrol()->inventory() : 0 )) || (menu_traderlistview->inventory() != (core::localplayer()->view() ? core::localplayer()->view()->inventory() : 0 ))) { set_itemtype(menu_itemtype); } |