summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/skilldialog.cpp27
1 files changed, 15 insertions, 12 deletions
diff --git a/src/gui/skilldialog.cpp b/src/gui/skilldialog.cpp
index 5e700387..15f93b9c 100644
--- a/src/gui/skilldialog.cpp
+++ b/src/gui/skilldialog.cpp
@@ -62,7 +62,7 @@ struct SkillInfo
class SkillEntry : public Container, gcn::WidgetListener
{
public:
- SkillEntry(struct SkillInfo *info);
+ SkillEntry(SkillInfo *info);
void widgetResized(const gcn::Event &event);
@@ -70,7 +70,7 @@ class SkillEntry : public Container, gcn::WidgetListener
protected:
friend class SkillDialog;
- struct SkillInfo *mInfo;
+ SkillInfo *mInfo;
private:
Icon *mIcon;
@@ -152,15 +152,16 @@ void SkillDialog::logic()
std::string SkillDialog::update(int id)
{
- SkillInfo *info = mSkills[id];
+ SkillMap::iterator i = mSkills.find(id);
- if (info)
+ if (i != mSkills.end())
{
+ SkillInfo *info = i->second;
info->display->update();
return info->name;
}
- else
- return "";
+
+ return std::string();
}
void SkillDialog::update()
@@ -180,6 +181,7 @@ void SkillDialog::loadSkills(const std::string &file)
{
// TODO: mTabs->clear();
delete_all(mSkills);
+ mSkills.clear();
XML::Document doc(file);
xmlNodePtr root = doc.rootNode();
@@ -239,21 +241,23 @@ void SkillDialog::loadSkills(const std::string &file)
void SkillDialog::setModifiable(int id, bool modifiable)
{
- SkillInfo *info = mSkills[id];
+ SkillMap::iterator i = mSkills.find(id);
- if (info)
+ if (i != mSkills.end())
{
+ SkillInfo *info = i->second;
info->modifiable = modifiable;
info->display->update();
}
}
-SkillEntry::SkillEntry(struct SkillInfo *info) : mInfo(info),
+SkillEntry::SkillEntry(SkillInfo *info) :
+ mInfo(info),
mIcon(NULL),
mNameLabel(new Label(info->name)),
- mProgress(new ProgressBar(0.0f, 200, 20, gcn::Color(150, 150, 150))),
+ mLevelLabel(new Label("999")),
mIncrease(new Button("+", "inc", skillDialog)),
- mLevelLabel(new Label("999"))
+ mProgress(new ProgressBar(0.0f, 200, 20, gcn::Color(150, 150, 150)))
{
setFrameSize(1);
setOpaque(false);
@@ -312,7 +316,6 @@ void SkillEntry::widgetResized(const gcn::Event &event)
void SkillEntry::update()
{
int baseLevel = player_node->getAttributeBase(mInfo->id);
-
int effLevel = player_node->getAttributeEffective(mInfo->id);
if (baseLevel <= 0 && !mInfo->modifiable)