diff options
-rw-r--r-- | src/gui/newskill.cpp | 47 | ||||
-rw-r--r-- | src/gui/newskill.h | 6 |
2 files changed, 28 insertions, 25 deletions
diff --git a/src/gui/newskill.cpp b/src/gui/newskill.cpp index 478f9d57..b9f33310 100644 --- a/src/gui/newskill.cpp +++ b/src/gui/newskill.cpp @@ -70,16 +70,16 @@ char *skill_name[] = { NewSkillDialog::NewSkillDialog(): Window("Skills") { - skillLabel = new gcn::Label[N_SKILL_CAT_SIZE]("Empty "); - skillLevel = new gcn::Label[N_SKILL_CAT_SIZE]("00000"); - skillbar = new ProgressBar[N_SKILL_CAT_SIZE](0.0f,0,0,270,15,0,0,255); - startPoint = 0; - for(int a=0;a<N_SKILL_CAT_SIZE;a++) + startPoint = 0; + for ( int i = 0; i < N_SKILL_CAT_SIZE; i++) { - skillLevel[a].setAlignment(Graphics::RIGHT); - add(&skillLabel[a],40,50+a*20); - add(&skillLevel[a],200,50+a*20); - add(&skillbar[a],250,50+a*20); + skillLabel[i] = new gcn::Label("Empty "); + skillLevel[i] = new gcn::Label("00000"); + skillbar[i] = new ProgressBar(0.0f,0,0,270,15,0,0,255); + skillLevel[i]->setAlignment(Graphics::RIGHT); + add(skillLabel[i],40,50+i*20); + add(skillLevel[i],200,50+i*20); + add(skillbar[i],250,50+i*20); } // initialize the skills for(int i=0;i<N_SKILL;i++) @@ -168,10 +168,13 @@ NewSkillDialog::NewSkillDialog(): NewSkillDialog::~NewSkillDialog() { - delete skillbar; - delete []skillLabel; - delete closeButton; - delete []catButton; + // You don't have to delete children widgets. + // GUIchan will do it. + //delete skillbar; + //delete []skillLabel; + //delete []skillLevel; + //delete closeButton; + //delete []catButton; } void NewSkillDialog::action(const std::string& eventId) @@ -229,20 +232,20 @@ void NewSkillDialog::resetNSD() { if(skill_name[a+startPoint] != "") { - skillLabel[a].setCaption(skill_name[a+startPoint]); - skillLabel[a].setVisible(true); + skillLabel[a]->setCaption(skill_name[a+startPoint]); + skillLabel[a]->setVisible(true); char tmp[5]; sprintf(tmp, "%d",playerSkill[a+startPoint].level); - skillLevel[a].setCaption(tmp); - skillLevel[a].setVisible(true); - skillbar[a].setProgress(0.0f); - skillbar[a].setVisible(true); + skillLevel[a]->setCaption(tmp); + skillLevel[a]->setVisible(true); + skillbar[a]->setProgress(0.0f); + skillbar[a]->setVisible(true); } else { - skillLevel[a].setVisible(false); - skillLabel[a].setVisible(false); - skillbar[a].setVisible(false); + skillLevel[a]->setVisible(false); + skillLabel[a]->setVisible(false); + skillbar[a]->setVisible(false); } } } diff --git a/src/gui/newskill.h b/src/gui/newskill.h index 57d09d77..743adbd0 100644 --- a/src/gui/newskill.h +++ b/src/gui/newskill.h @@ -42,9 +42,9 @@ class NewSkillDialog : public Window, public gcn::ActionListener private: // members int startPoint; // starting point of skill listing - ProgressBar *skillbar; - gcn::Label *skillLabel; - gcn::Label *skillLevel; + ProgressBar *skillbar[N_SKILL_CAT_SIZE]; + gcn::Label *skillLabel[N_SKILL_CAT_SIZE]; + gcn::Label *skillLevel[N_SKILL_CAT_SIZE]; gcn::Button *catButton[N_SKILL_CAT]; gcn::Button *closeButton; nSkill playerSkill[N_SKILL]; // pointer to an array of skill values |