summaryrefslogtreecommitdiff
path: root/src/gui/magic.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/magic.cpp')
-rw-r--r--src/gui/magic.cpp39
1 files changed, 30 insertions, 9 deletions
diff --git a/src/gui/magic.cpp b/src/gui/magic.cpp
index 48cfc5dc..6e314656 100644
--- a/src/gui/magic.cpp
+++ b/src/gui/magic.cpp
@@ -38,17 +38,19 @@ MagicDialog::MagicDialog():
setDefaultSize(255, 30, 175, 225);
setupWindow->registerWindowForReset(this);
- gcn::Button *spellButton1 = new Button(_("Cast Test Spell 1"), "spell_1", this);
- gcn::Button *spellButton2 = new Button(_("Cast Test Spell 2"), "spell_2", this);
- gcn::Button *spellButton3 = new Button(_("Cast Test Spell 3"), "spell_3", this);
+ mSpellButtons.resize(4);
- spellButton1->setPosition(10, 30);
- spellButton2->setPosition(10, 60);
- spellButton3->setPosition(10, 90);
+ mSpellButtons[1] = new Button(_("Spell 1"), "spell_1", this);
+ mSpellButtons[2] = new Button(_("Spell 2"), "spell_2", this);
+ mSpellButtons[3] = new Button(_("Spell 3"), "spell_3", this);
- add(spellButton1);
- add(spellButton2);
- add(spellButton3);
+ mSpellButtons[1]->setPosition(10, 60);
+ mSpellButtons[2]->setPosition(10, 90);
+ mSpellButtons[3]->setPosition(10, 120);
+
+ add(mSpellButtons[1]);
+ add(mSpellButtons[2]);
+ add(mSpellButtons[3]);
update();
@@ -89,4 +91,23 @@ void MagicDialog::draw(gcn::Graphics *g)
void MagicDialog::update()
{
+ std::map<int, Special> specials = player_node->getSpecialStatus();
+
+ for (size_t i = 1; i < mSpellButtons.size(); i++)
+ {
+ if (specials.find(i) != specials.end())
+ {
+ std::stringstream s;
+ s <<
+ "Spell" <<
+ i <<
+ " (" <<
+ specials[i].currentMana <<
+ "/" <<
+ specials[i].neededMana <<
+ ")";
+ mSpellButtons[i]->setCaption(s.str());
+ mSpellButtons[i]->adjustSize();
+ }
+ }
}