summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gui/newskill.cpp120
-rw-r--r--src/gui/newskill.h10
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: