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>2013-11-08 13:20:45 +0000
committerStijn Buys <ingar@osirion.org>2013-11-08 13:20:45 +0000
commitbeefcbd30e5cb1b700c977090021cd4784989c1e (patch)
tree354086869e69b72b5603a9a58485d1e09c373bd8 /src/client/gamewindow.cc
parent3aa51da4ec976665a7e74bb659868d474400a101 (diff)
Added player reputation window,
minor cosmetic user interface changes.
Diffstat (limited to 'src/client/gamewindow.cc')
-rw-r--r--src/client/gamewindow.cc105
1 files changed, 94 insertions, 11 deletions
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;