diff options
Diffstat (limited to 'src/gui/magic.cpp')
-rw-r--r-- | src/gui/magic.cpp | 39 |
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(); + } + } } |