diff options
-rw-r--r-- | src/gui/newskill.cpp | 120 | ||||
-rw-r--r-- | src/gui/newskill.h | 10 |
2 files changed, 101 insertions, 29 deletions
diff --git a/src/gui/newskill.cpp b/src/gui/newskill.cpp index 37568e23..e5d8c365 100644 --- a/src/gui/newskill.cpp +++ b/src/gui/newskill.cpp @@ -17,8 +17,13 @@ * You should have received a copy of the GNU General Public License * along with The Mana World; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +<<<<<<< newskill.cpp + * + * $Id$ +======= * * $Id$ +>>>>>>> 1.4 */ /* This file implements the new skill dialog for use under the latest @@ -41,37 +46,99 @@ char *skill_name[] = { "Paradin (Light)", "Tharsis (Dark)", "Crono (Time)", "Astra (Space)", "Gen (Mana)", "", // craft skills 20-29 - "Weaponsmithing", "Armorcrafting", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", + "Weaponsmithing", "Armorcrafting", "Jeweler", "Cook", "Tailor", + "Alchemist", "Artisan", "", "", "", + // general skills 30-39 + "Running", "Jumping", "Searching", "Sneak", "Trading", "Intimidate", + "", "", "", "", + // combat skills 40-49 + "Dodge", "Accuracy", "Critical", "Block", "Parry", "Diehard", "Magic Aura", + "Counter", "", "", + // resistance skills 50-59 + "Poison", "Silence", "Petrify", "Paralyze", "Blind", "Slow", "Zombie", + "Critical", "", "", + // element reistance 60-69 + "Heat (Fire)", "Chill (Water)", "Stone (Earth)", "Wind (Air)", + "Shine (Light)", "Shadow (Dark)", "Decay (Time)", "Chaos (Space)", "", "", + // hunting skills 70-79 + "Insects", "Birds", "Lizards", "Amorphs", "Undead", "Machines", "Arcana", + "Humanoids", "", "", + // stats 80-89 + "Strength", "Fortitude", "Vitality", "Menality", "Awareness", "Mana", + "Dexterity", "", "", "", + // unused (reserved) 90-99 "", "", "", "", "", "", "", "", "", "" }; NewSkillDialog::NewSkillDialog(): Window("Skills") { - // the window - setSize(400, 300); - - // the skill labels - skillLabel = new gcn::Label[N_SKILL]; - for (int a = 0; a < N_SKILL; a++) { - skillLabel[a].setCaption(skill_name[a]); - skillLabel[a].setDimension(gcn::Rectangle(8, 190, 200, 16)); - } - - // the close button + + // create controls + catButton[0] = new Button("Weapons"); + catButton[1] = new Button("Magic"); + catButton[2] = new Button("Craft"); + catButton[3] = new Button("General"); + catButton[4] = new Button("Combat"); + catButton[5] = new Button("E. Resist"); + catButton[6] = new Button("S. Resist"); + catButton[7] = new Button("Hunting"); + catButton[8] = new Button("Stat"); closeButton = new Button("Close"); + + // captions + + // events + catButton[0]->setEventId("g1"); + catButton[1]->setEventId("g2"); + catButton[2]->setEventId("g3"); + catButton[3]->setEventId("g4"); + catButton[4]->setEventId("g5"); + catButton[5]->setEventId("g6"); + catButton[6]->setEventId("g7"); + catButton[7]->setEventId("g8"); + catButton[8]->setEventId("g9"); closeButton->setEventId("close"); - closeButton->setPosition(160, 210); + + // positioning + setSize(560, 300); + catButton[0]->setPosition(10, 10); + catButton[1]->setPosition(60, 10); + catButton[2]->setPosition(100, 10); + catButton[3]->setPosition(180, 10); + catButton[4]->setPosition(240, 10); + catButton[5]->setPosition(300, 10); + catButton[6]->setPosition(370, 10); + catButton[7]->setPosition(430, 10); + catButton[8]->setPosition(490, 10); + closeButton->setPosition(480, 280); + + // add controls + add(catButton[0]); + add(catButton[1]); + add(catButton[2]); + add(catButton[3]); + add(catButton[4]); + add(catButton[5]); + add(catButton[6]); + add(catButton[7]); + add(catButton[8]); add(closeButton); + // add event detection + catButton[0]->addActionListener(this); + catButton[1]->addActionListener(this); + catButton[2]->addActionListener(this); + catButton[3]->addActionListener(this); + catButton[4]->addActionListener(this); + catButton[5]->addActionListener(this); + catButton[6]->addActionListener(this); + catButton[7]->addActionListener(this); + catButton[8]->addActionListener(this); + closeButton->addActionListener(this); + // setting up the container - skillList = new gcn::Container(); + /*skillList = new gcn::Container(); skillList->setOpaque(false); skillList->setDimension(gcn::Rectangle(0, 0, 230, 600)); @@ -83,21 +150,20 @@ NewSkillDialog::NewSkillDialog(): skillScrollArea = new ScrollArea(); skillScrollArea->setDimension(gcn::Rectangle(5, 5, 229, 290)); skillScrollArea->setContent(skillList); - add(skillScrollArea); - - + add(skillScrollArea);*/ - closeButton->addActionListener(this); + // finsihing touches setLocationRelativeTo(getParent()); } NewSkillDialog::~NewSkillDialog() { - delete skillScrollArea; + delete skillbar; delete []skillLabel; delete closeButton; + delete []catButton; } void NewSkillDialog::action(const std::string& eventId) @@ -106,4 +172,8 @@ void NewSkillDialog::action(const std::string& eventId) { setVisible(false); } + else if (eventId == "g1") // weapons group 0-10 + { + startPoint =0; + } } diff --git a/src/gui/newskill.h b/src/gui/newskill.h index a3cf6c04..468b2114 100644 --- a/src/gui/newskill.h +++ b/src/gui/newskill.h @@ -26,8 +26,11 @@ #include <guichan.hpp> #include "window.h" +#include "progressbar.h" #define N_SKILL 100 // skill count constant +#define N_SKILL_CAT 9 // skill category count +#define N_SKILL_CAT_SIZE 10 // skill category maximum size struct nSkill { short level; @@ -38,11 +41,10 @@ class NewSkillDialog : public Window, public gcn::ActionListener { private: // members - - gcn::ScrollArea *skillScrollArea; - gcn::Container *skillList; + int startPoint; // starting point of skill listing + ProgressBar *skillbar; gcn::Label *skillLabel; - gcn::Button *groupButtons; + gcn::Button *catButton[N_SKILL_CAT]; gcn::Button *closeButton; public: |