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-09 13:31:30 +0000
committerStijn Buys <ingar@osirion.org>2013-11-09 13:31:30 +0000
commitd0b6e591fbaf3db5fc9898e75913e57a3c32169a (patch)
tree7be122da56f6aca03755ad9b6a272a9c4d2125ba /src/client/reputationwindow.cc
parentbe06560334a8f9b5e290a5a5ef1dc4916c55b691 (diff)
Update player statistics while the reputation menu is open.
Diffstat (limited to 'src/client/reputationwindow.cc')
-rw-r--r--src/client/reputationwindow.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/client/reputationwindow.cc b/src/client/reputationwindow.cc
index bc1217c..2d15319 100644
--- a/src/client/reputationwindow.cc
+++ b/src/client/reputationwindow.cc
@@ -85,6 +85,9 @@ private:
ReputationWindow::ReputationWindow(ui::Widget *parent) : ui::Window(parent)
{
+ reputationwindow_info = 0;
+ reputationwindow_timestamp = 0;
+
// window title
reputationwindow_titlelabel = new ui::Label(this);
reputationwindow_titlelabel->set_label("title");
@@ -181,8 +184,11 @@ void ReputationWindow::set_info(const core::Info *info)
{
reputationwindow_infotext.clear();
reputationwindow_targetlabel->clear();
+ reputationwindow_info = info;
if (!info) {
+ reputationwindow_timestamp = 0;
+
// player name
reputationwindow_targetlabel->set_text(core::localplayer()->name());
@@ -248,6 +254,7 @@ void ReputationWindow::set_info(const core::Info *info)
core::game()->request_info(info->id());
reputationwindow_targetlabel->set_text(info->name());
+ reputationwindow_timestamp = info->timestamp();
for (core::Info::Text::const_iterator it = info->text().begin(); it != info->text().end(); it++) {
reputationwindow_infotext.push_back((*it));
@@ -255,6 +262,20 @@ void ReputationWindow::set_info(const core::Info *info)
}
}
+void ReputationWindow::draw()
+{
+ if (!reputationwindow_info) {
+ // update player info
+ set_info(0);
+
+ } else if (reputationwindow_timestamp != reputationwindow_info->timestamp()) {
+ // update faction info if we received updates from the server
+ set_info(reputationwindow_info);
+ }
+
+ ui::Window::draw();
+}
+
void ReputationWindow::resize()
{
const float padding = ui::root()->font_large()->height();