Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/playerview.cc')
-rw-r--r--src/client/playerview.cc35
1 files changed, 28 insertions, 7 deletions
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();