summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game.cpp5
-rw-r--r--src/gui/stats.cpp151
-rw-r--r--src/gui/stats.h97
3 files changed, 156 insertions, 97 deletions
diff --git a/src/game.cpp b/src/game.cpp
index e378778c..104a1b84 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -33,6 +33,7 @@
#include "./gui/shop.h"
#include "./gui/npc.h"
#include "./gui/setup.h"
+#include "./gui/stats.h"
#include "./gui/ok_dialog.h"
#include "./graphic/graphic.h"
#include "./sound/sound.h"
@@ -50,6 +51,7 @@ volatile bool refresh = false, action_time = false;
int current_npc, server_tick;
extern unsigned char screen_mode;
Setup *setup;
+StatsWindow *stats;
#define MAX_TIME 10000
@@ -285,7 +287,8 @@ void do_input() {
}
if(key[KEY_S]) {
- show_skill_dialog = !show_skill_dialog;
+ //show_skill_dialog = !show_skill_dialog;
+ stats = StatsWindow::create_statswindow();
action_time = false;
} else if(key[KEY_I]) {
inventoryWindow->setVisible(!inventoryWindow->isVisible());
diff --git a/src/gui/stats.cpp b/src/gui/stats.cpp
index 33a3f8a9..9de85b79 100644
--- a/src/gui/stats.cpp
+++ b/src/gui/stats.cpp
@@ -1,87 +1,110 @@
+/*
+ * The Mana World
+ * Copyright 2004 The Mana World Development Team
+ *
+ * This file is part of The Mana World.
+ *
+ * The Mana World is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * The Mana World is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * 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
+ *
+ * $Id$
+ */
+
#include "stats.h"
-/*
+/**
* Constructor
*/
StatsWindow::StatsWindow(gcn::Container *parent)
- : Window(parent, "Stats")
+ : Window(parent, "Stats")
{
- statsStr[0] << "Strenght: " << char_info->STR;
- statsStr[1] << "Agility: " << char_info->AGI;
- statsStr[2] << "Vitality: " << char_info->VIT;
- statsStr[3] << "Inteligence: " << char_info->INT;
- statsStr[4] << "Dexternity: " << char_info->DEX;
- statsStr[5] << "Luck: " << char_info->LUK;
-
- /* New labels */
- for(i=0; i<5;i++)
- statsLabel[i] = new gcn::Label(statsStr[i].str());
-
- /* New buttons */
- for(i=0; i<5;i++)
- statsButton[i] = new Button("+");
-
- /* Set position */
- for(i=0;i<5;i++) {
- statsLabel[i]->setPosition(10,(i*22)+10);
- statsButton[i]->setPosition(170,(i*22)+10);
- }
-
- /* Set button events Id */
- statsButton[0]->setEventId("STR");
- statsButton[1]->setEventId("AGI");
- statsButton[2]->setEventId("VIT");
- statsButton[3]->setEventId("INT");
- statsButton[4]->setEventId("DEX");
- statsButton[5]->setEventId("LUK");
-
- /* Assemble */
- for(i=0; i<5; i++) {
- add(statsLabel[i]);
- add(statsButton[i]);
- }
-
- setSize(200,150);
- setLocationRelativeTo(getParent());
+ statsStr[0] << "Strenght: " << char_info->STR;
+ statsStr[1] << "Agility: " << char_info->AGI;
+ statsStr[2] << "Vitality: " << char_info->VIT;
+ statsStr[3] << "Inteligence: " << char_info->INT;
+ statsStr[4] << "Dexternity: " << char_info->DEX;
+ statsStr[5] << "Luck: " << char_info->LUK;
+
+ /* New labels */
+ for(i=0; i<5;i++)
+ statsLabel[i] = new gcn::Label(statsStr[i].str());
+
+ /* New buttons */
+ for(i=0; i<5;i++)
+ statsButton[i] = new Button("+");
+
+ /* Set position */
+ for(i=0;i<5;i++) {
+ statsLabel[i]->setPosition(10,(i*22)+10);
+ statsButton[i]->setPosition(170,(i*22)+10);
+ }
+
+ /* Set button events Id */
+ statsButton[0]->setEventId("STR");
+ statsButton[1]->setEventId("AGI");
+ statsButton[2]->setEventId("VIT");
+ statsButton[3]->setEventId("INT");
+ statsButton[4]->setEventId("DEX");
+ statsButton[5]->setEventId("LUK");
+
+ /* Assemble */
+ for(i=0; i<5; i++) {
+ add(statsLabel[i]);
+ add(statsButton[i]);
+ }
+
+ setSize(200,150);
+ setLocationRelativeTo(getParent());
}
-/*
+/**
* Destructor
*/
StatsWindow::~StatsWindow() {
- for(int i=0; i<5; i++) {
- delete statsStr[i];
- delete statsLabel[i];
- delete statsButton[i];
- }
+ for(int i=0; i<5; i++) {
+ delete statsLabel[i];
+ delete statsButton[i];
+ }
}
-/*
+/**
* Static method for creating singleton objects
*/
StatsWindow * StatsWindow::ptr = NULL;
StatsWindow * StatsWindow::create_statswindow() {
- if(ptr == NULL)
- ptr = new StatsWindow(guiTop);
- else
- ptr->setVisible(true);
- return ptr;
+ if(ptr == NULL)
+ ptr = new StatsWindow(guiTop);
+ else
+ ptr->setVisible(true);
+ return ptr;
}
-/*
+/**
* Event handling method
*/
void StatsWindow::action(const std::string& eventId) {
- if(eventId == "STR")
- setVisible(false);
- if(eventId == "AGI")
- setVisible(false);
- if(eventId == "VIT")
- setVisible(false);
- if(eventId == "INT")
- setVisible(false);
- if(eventId == "DEX")
- setVisible(false);
- if(eventId == "LUK")
- setVisible(false);
+ if(eventId == "STR") {
+ setVisible(false);
+ }
+ if(eventId == "AGI")
+ setVisible(false);
+ if(eventId == "VIT")
+ setVisible(false);
+ if(eventId == "INT")
+ setVisible(false);
+ if(eventId == "DEX")
+ setVisible(false);
+ if(eventId == "LUK")
+ setVisible(false);
}
diff --git a/src/gui/stats.h b/src/gui/stats.h
index b7f32f99..d047f432 100644
--- a/src/gui/stats.h
+++ b/src/gui/stats.h
@@ -1,46 +1,79 @@
+/*
+ * The Mana World
+ * Copyright 2004 The Mana World Development Team
+ *
+ * This file is part of The Mana World.
+ *
+ * The Mana World is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * The Mana World is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * 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
+ *
+ * $Id$
+ */
+
#ifndef _STATS_WINDOW_H
#define _STATS_WINDOW_H
#include "button.h"
#include "window.h"
-#include "main.h"
+#include "../main.h"
#include <sstream>
+#include <string>
class StatsWindow : public Window, public gcn::ActionListener {
public:
- /*
- * Create the Stats window
- */
- static StatsWindow *create_statswindow();
-
- /*
- * Metod called when receiving actions from widget.
- */
- void action(const std::string& eventId);
-
+ /**
+ * Create the Stats window
+ */
+ static StatsWindow *create_statswindow();
+
+ /**
+ * Metod called when receiving actions from widget.
+ */
+ void action(const std::string& eventId);
+
private:
int i;
- /* Stats values */
- std::stringstream statsStr[5];
-
- /* Stats captions */
- gcn::Label *statsLabel[5];
-
- /* Stats buttons */
- Button *statsButton[5];
-
- /* Stats window ptr */
- static StatsWindow *ptr;
-
- /*
- * Constructor.
- */
- StatsWindow(gcn::Container *parent);
-
- /*
- * Destructor.
- */
- ~StatsWindow();
+
+ /**
+ * Stats values
+ */
+ std::stringstream statsStr[5];
+
+ /**
+ * Stats captions
+ */
+ gcn::Label *statsLabel[5];
+
+ /**
+ * Stats buttons
+ */
+ Button *statsButton[5];
+
+ /**
+ * Stats window ptr
+ */
+ static StatsWindow *ptr;
+
+ /**
+ * Constructor.
+ */
+ StatsWindow(gcn::Container *parent);
+
+ /**
+ * Destructor.
+ */
+ virtual ~StatsWindow();
};
#endif /* _STATS_Window_H */