diff options
author | Mateusz Kaduk <mateusz.kaduk@gmail.com> | 2004-12-28 14:49:19 +0000 |
---|---|---|
committer | Mateusz Kaduk <mateusz.kaduk@gmail.com> | 2004-12-28 14:49:19 +0000 |
commit | 40aba2bd075b3e8c32c03d87696646364c125803 (patch) | |
tree | 95b5d0d85b9b7e81d55a217d56a27cc06d112d13 /src/gui | |
parent | 42e227d7f1523a5c11fd6fe3babd869f9041cce9 (diff) | |
download | mana-40aba2bd075b3e8c32c03d87696646364c125803.tar.gz mana-40aba2bd075b3e8c32c03d87696646364c125803.tar.bz2 mana-40aba2bd075b3e8c32c03d87696646364c125803.tar.xz mana-40aba2bd075b3e8c32c03d87696646364c125803.zip |
Added update method to stats
Added show/hide feature for stats
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/stats.cpp | 67 | ||||
-rw-r--r-- | src/gui/stats.h | 6 |
2 files changed, 55 insertions, 18 deletions
diff --git a/src/gui/stats.cpp b/src/gui/stats.cpp index 572d204f..fa927ee7 100644 --- a/src/gui/stats.cpp +++ b/src/gui/stats.cpp @@ -22,7 +22,8 @@ */ #include "stats.h" -#include <sstream> + +extern PLAYER_INFO *char_info; /** * Constructor @@ -47,12 +48,6 @@ StatsWindow::StatsWindow(gcn::Container *parent) for (i = 0; i < 6; i++) statsButton[i] = new Button("+"); - /* Set position */ - for (i = 0; i < 6; i++) { - statsLabel[i]->setPosition(10,(i*22)+10); - statsButton[i]->setPosition(170,(i*22)+10); - } - /* Set button events Id */ statsButton[0]->setEventId("STR"); statsButton[1]->setEventId("AGI"); @@ -61,6 +56,12 @@ StatsWindow::StatsWindow(gcn::Container *parent) statsButton[4]->setEventId("DEX"); statsButton[5]->setEventId("LUK"); + /* Set position */ + for (i = 0; i < 6; i++) { + statsLabel[i]->setPosition(10,(i*22)+10); + statsButton[i]->setPosition(170,(i*22)+10); + } + /* Assemble */ for(i = 0; i < 6; i++) { add(statsLabel[i]); @@ -70,6 +71,23 @@ StatsWindow::StatsWindow(gcn::Container *parent) setSize(200, 150); setLocationRelativeTo(getParent()); } +/** + * Method updates stats in window + */ +void StatsWindow::update(){ + std::stringstream statsStr[6]; + + statsStr[0] << "Strenght: " << char_info->STR; + statsStr[1] << "Agility: " << char_info->AGI; + statsStr[2] << "Vitality: " << char_info->VIT; + statsStr[3] << "Inteligence: " << char_info->INT; + statsStr[4] << "Dexternity: " << char_info->DEX; + statsStr[5] << "Luck: " << char_info->LUK; + + /* Update labels */ + for (i = 0; i < 6; i++) + statsLabel[i]->setCaption(statsStr[i].str()); +} /** * Destructor @@ -97,17 +115,30 @@ StatsWindow * StatsWindow::create_statswindow() { * Event handling method */ void StatsWindow::action(const std::string& eventId) { + //TODO: update char_info if (eventId == "STR") { - setVisible(false); + puts("STR"); + update(); + } + if (eventId == "AGI") { + puts("AGI"); + update(); + } + if (eventId == "VIT") { + puts("VIT"); + update(); + } + if (eventId == "INT") { + puts("INT"); + update(); + } + if (eventId == "DEX") { + puts("DEX"); + update(); + } + if (eventId == "LUK") { + puts("LUK"); + update(); } - if (eventId == "AGI") - setVisible(false); - if (eventId == "VIT") - setVisible(false); - if (eventId == "INT") - setVisible(false); - if (eventId == "DEX") - setVisible(false); - if (eventId == "LUK") - setVisible(false); + puts("default"); } diff --git a/src/gui/stats.h b/src/gui/stats.h index 27e83fd0..c58c837f 100644 --- a/src/gui/stats.h +++ b/src/gui/stats.h @@ -28,6 +28,7 @@ #include "window.h" #include "../main.h" #include <string> +#include <sstream> class StatsWindow : public Window, public gcn::ActionListener { public: @@ -41,6 +42,11 @@ class StatsWindow : public Window, public gcn::ActionListener { */ void action(const std::string& eventId); + /** + * Metod updates stats in window. + */ + void update(); + private: int i; |