From 0c509866a37ab47ff0e48d357ca55e31658c37c2 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Thu, 16 Sep 2010 14:12:27 +0000 Subject: map info support, initial trade window --- src/client/playerview.cc | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) (limited to 'src/client/playerview.cc') diff --git a/src/client/playerview.cc b/src/client/playerview.cc index 578e97f..de4c704 100644 --- a/src/client/playerview.cc +++ b/src/client/playerview.cc @@ -33,7 +33,8 @@ PlayerView::PlayerView(ui::Widget *parent) : ui::Widget(parent) view_map = new Map(this); view_entitymenu = new EntityMenu(this); view_buymenu = new BuyMenu(this); - + view_trademenu = new TradeMenu(this); + //view_hud->set_focus(); //view_hud->raise(); //view_entitymenu->raise(); @@ -51,6 +52,8 @@ void PlayerView::clear() view_chat->hide(); view_map->hide(); view_entitymenu->hide(); + view_buymenu->hide(); + view_trademenu->hide(); } void PlayerView::event_text(const std::string & text) @@ -120,24 +123,36 @@ void PlayerView::show_menu(const std::string & args) std::string itemname; if ((argstr >> itemtype) && (argstr >> itemname)) { + // hide other menus + view_entitymenu->hide(); + view_trademenu->hide(); + // show buy menu view_buymenu->set_item(itemtype, itemname); view_buymenu->show(); - view_entitymenu->hide(); + } else { con_print << "usage: view buy [string] [string] buy menu for item type and name" << std::endl; } } else if (label.compare("trade") == 0) { - // trade menu, multiple items - + // hide other menus + view_buymenu->hide(); + view_entitymenu->hide(); + // show trade menu + view_trademenu->show(); + } else if (label.compare("hide") == 0) { + // hide all menus view_buymenu->hide(); view_entitymenu->hide(); - + view_trademenu->hide(); } else { + // hide other menus + view_buymenu->hide(); + view_trademenu->hide(); + // show other menus view_entitymenu->generate(core::localplayer()->view(), label.c_str()); view_entitymenu->show(); - view_buymenu->hide(); } if (chat()->visible() && chat()->small_view()) @@ -152,6 +167,8 @@ void PlayerView::resize() // reposition buy menu view_buymenu->event_resize(); + // reposition trade menu + view_trademenu->event_resize(); // set hud geometry view_hud->set_geometry(0, 0, width(), height()); @@ -198,7 +215,7 @@ void PlayerView::draw() chat()->hide(); audio::play("ui/menu"); - } else if (!view_entitymenu->visible() && !view_buymenu->visible() && + } else if (!view_entitymenu->visible() && !view_buymenu->visible() && !view_trademenu->visible() && !map()->visible() && (!chat()->visible() || chat()->small_view())) { // show the menu if there's no other window open @@ -230,6 +247,10 @@ void PlayerView::draw() view_buymenu->hide(); } + if (view_trademenu->visible()) { + view_trademenu->hide(); + } + if (map()->visible()) { label_viewname->set_text(core::localplayer()->zone()->name()); label_viewname->show(); -- cgit v1.2.3