From beefcbd30e5cb1b700c977090021cd4784989c1e Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Fri, 8 Nov 2013 13:20:45 +0000 Subject: Added player reputation window, minor cosmetic user interface changes. --- src/client/gamewindow.cc | 105 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 94 insertions(+), 11 deletions(-) (limited to 'src/client/gamewindow.cc') diff --git a/src/client/gamewindow.cc b/src/client/gamewindow.cc index 2ad1db4..01e1e81 100644 --- a/src/client/gamewindow.cc +++ b/src/client/gamewindow.cc @@ -10,8 +10,20 @@ #include "core/info.h" #include "core/application.h" #include "ui/ui.h" + #include "client/targeticonbutton.h" + #include "client/gamewindow.h" +#include "client/hud.h" + +#include "client/chat.h" +#include "client/inventorywindow.h" +#include "client/mapwindow.h" +#include "client/reputationwindow.h" + +#include "client/buymenu.h" +#include "client/entitymenu.h" +#include "client/trademenu.h" namespace client { @@ -36,6 +48,7 @@ GameWindow::GameWindow(ui::Widget *parent) : ui::Window(parent) gamewindow_buymenu = new BuyMenu(this); gamewindow_trademenu = new TradeMenu(this); gamewindow_inventory = new InventoryWindow(this); + gamewindow_reputation = new ReputationWindow(this); gamewindow_chat = new Chat(this); // icon buttons @@ -52,6 +65,7 @@ GameWindow::GameWindow(ui::Widget *parent) : ui::Window(parent) gamewindow_chatbutton = new ui::IconButton(this, "bitmaps/icons/button_chat", "ui_chat"); gamewindow_mapbutton = new ui::IconButton(this, "bitmaps/icons/button_map", "ui_map"); gamewindow_inventorybutton = new ui::IconButton(this, "bitmaps/icons/button_ship", "ui_inventory"); + gamewindow_reputationbutton = new ui::IconButton(this, "bitmaps/icons/button_reputation", "ui_reputation"); } GameWindow::~GameWindow() @@ -65,6 +79,7 @@ void GameWindow::clear() gamewindow_chat->hide(); gamewindow_map->hide(); gamewindow_inventory->hide(); + gamewindow_reputation->hide(); gamewindow_entitymenu->hide(); gamewindow_buymenu->hide(); gamewindow_trademenu->hide(); @@ -98,6 +113,10 @@ void GameWindow::toggle_map() if (gamewindow_trademenu->visible()) { gamewindow_trademenu->hide(); } + + if (gamewindow_reputation->visible()) { + gamewindow_reputation->hide(); + } } map()->toggle(); @@ -120,6 +139,11 @@ void GameWindow::toggle_inventory() map()->hide(); } + if (gamewindow_reputation->visible()) { + gamewindow_reputation->hide(); + } + + if (gamewindow_entitymenu->visible()) { gamewindow_entitymenu->hide(); } @@ -130,15 +154,48 @@ void GameWindow::toggle_inventory() if (gamewindow_trademenu->visible()) { gamewindow_trademenu->hide(); - } + } + + inventory()->show(); + + } else { + inventory()->hide(); } +} - inventory()->toggle(); +void GameWindow::toggle_reputation() +{ -/* if (inventory()->visible() && chat()->visible() && chat()->small_view()) { - chat()->raise(); + if (!reputation()->visible()) { + if (chat()->visible() && !chat()->small_view()) { + chat()->hide(); + } + + if (map()->visible()) { + map()->hide(); + } + + if (gamewindow_inventory->visible()) { + gamewindow_inventory->hide(); + } + + if (gamewindow_entitymenu->visible()) { + gamewindow_entitymenu->hide(); + } + + if (gamewindow_buymenu->visible()) { + gamewindow_buymenu->hide(); + } + + if (gamewindow_trademenu->visible()) { + gamewindow_trademenu->hide(); + } + + reputation()->show(); + + } else { + reputation()->hide(); } -*/ } void GameWindow::toggle_chat() @@ -155,6 +212,10 @@ void GameWindow::toggle_chat() inventory()->hide(); } + if (gamewindow_reputation->visible()) { + gamewindow_reputation->hide(); + } + if (gamewindow_entitymenu->visible()) { gamewindow_entitymenu->hide(); } @@ -210,6 +271,7 @@ void GameWindow::show_menu(const std::string & args) gamewindow_chat->hide(); gamewindow_map->hide(); gamewindow_inventory->hide(); + gamewindow_reputation->hide(); // requesting the info through game makes sure it is retreived from the server gamewindow_buymenu->set_item( core::game()->request_info(id)); // show buy menu @@ -232,6 +294,7 @@ void GameWindow::show_menu(const std::string & args) gamewindow_chat->hide(); gamewindow_map->hide(); gamewindow_inventory->hide(); + gamewindow_reputation->hide(); // show trade menu gamewindow_trademenu->set_itemtype(core::InfoType::find(typestr)); gamewindow_trademenu->show(); @@ -253,6 +316,7 @@ void GameWindow::show_menu(const std::string & args) gamewindow_chat->hide(); gamewindow_map->hide(); gamewindow_inventory->hide(); + gamewindow_reputation->hide(); // show other menus gamewindow_entitymenu->generate(core::localplayer()->view(), label.c_str()); gamewindow_entitymenu->show(); @@ -272,7 +336,7 @@ void GameWindow::resize() // icons const float icon_margin = 4.0f; const float icon_size = 48.0f; - const float icon_count = 10; + const float icon_count = 11; const float l = (width() - ((icon_count + 1) * icon_margin) - (icon_count * icon_size)) * 0.5f; gamewindow_menubutton->set_geometry(l, icon_margin, icon_size, icon_size); @@ -287,6 +351,7 @@ void GameWindow::resize() gamewindow_inventorybutton->set_geometry(l + 7.0f *(icon_margin + icon_size), icon_margin, icon_size, icon_size); gamewindow_chatbutton->set_geometry(l + 8.0f *(icon_margin + icon_size), icon_margin, icon_size, icon_size); gamewindow_mapbutton->set_geometry(l + 9.0f *(icon_margin + icon_size), icon_margin, icon_size, icon_size); + gamewindow_reputationbutton->set_geometry(l + 10.0f *(icon_margin + icon_size), icon_margin, icon_size, icon_size); // reposition buy menu gamewindow_buymenu->event_resize(); @@ -306,9 +371,13 @@ void GameWindow::resize() gamewindow_map->set_size(width() - smallmargin * 2, height() - smallmargin * 4); gamewindow_map->set_location(smallmargin, smallmargin * 2); - // reposition inventory + // resize inventory window gamewindow_inventory->set_size(width() - smallmargin * 2, height() - smallmargin * 4); gamewindow_inventory->set_location(smallmargin, smallmargin * 2); + + // resize reputation window + gamewindow_reputation->set_size(width() - smallmargin * 2, height() - smallmargin * 4); + gamewindow_reputation->set_location(smallmargin, smallmargin * 2); } void GameWindow::draw() @@ -351,9 +420,18 @@ void GameWindow::draw() gamewindow_chat->hide(); gamewindow_map->hide(); gamewindow_inventory->hide(); - - } else if (!gamewindow_entitymenu->visible() && !gamewindow_buymenu->visible() && !gamewindow_trademenu->visible() && - !inventory()->visible() && !map()->visible() && (!chat()->visible() || chat()->small_view())) { + gamewindow_reputation->hide(); + + } else if ( + !gamewindow_entitymenu->visible() && + !gamewindow_buymenu->visible() && + !gamewindow_trademenu->visible() && + !inventory()->visible() && + !reputation()->visible() && + !map()->visible() && + (!chat()->visible() || chat()->small_view()) + ) + { // show the menu if there's no other window open gamewindow_entitymenu->show(); @@ -386,7 +464,7 @@ void GameWindow::draw() gamewindow_trademenu->hide(); } - if (!map()->visible() && !chat()->visible() && !inventory()->visible()) { + if (!map()->visible() && !chat()->visible() && !inventory()->visible() && !reputation()->visible()) { gamewindow_hud->set_focus(); } @@ -425,6 +503,11 @@ bool GameWindow::on_keypress(const int key, const unsigned int modifier) return true; } + if (gamewindow_reputation->visible()) { + gamewindow_reputation->hide(); + return true; + } + if (map()->visible()) { map()->hide(); return true; -- cgit v1.2.3