summaryrefslogtreecommitdiff
path: root/src/textcommand.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/textcommand.h')
-rw-r--r--src/textcommand.h173
1 files changed, 173 insertions, 0 deletions
diff --git a/src/textcommand.h b/src/textcommand.h
new file mode 100644
index 000000000..dbd621901
--- /dev/null
+++ b/src/textcommand.h
@@ -0,0 +1,173 @@
+/*
+ * The Mana World
+ * Copyright (C) 2009 The Mana World Development Team
+ * Copyright (C) 2009-2010 Andrei Karas
+ *
+ * This file is part of The Mana World.
+ *
+ * This program 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.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef TEXTCOMMAND_H
+#define TEXTCOMMAND_H
+
+#include "resources/itemdb.h"
+
+#define MAGIC_START_ID 340
+
+class Image;
+
+enum SpellTarget
+{
+ NOTARGET = 0,
+ ALLOWTARGET = 1,
+ NEEDTARGET = 2
+};
+
+enum MagicSchool
+{
+ SKILL_MAGIC = 340,
+ SKILL_MAGIC_LIFE = 341,
+ SKILL_MAGIC_WAR = 342,
+ SKILL_MAGIC_TRANSMUTE = 343,
+ SKILL_MAGIC_NATURE = 344,
+ SKILL_MAGIC_ASTRAL = 345
+};
+
+enum TextCommandType
+{
+ TEXT_COMMAND_MAGIC = 0,
+ TEXT_COMMAND_TEXT = 1
+};
+
+/**
+ * Represents one or more instances of a certain item type.
+ */
+class TextCommand
+{
+ public:
+ /**
+ * Constructor.
+ */
+ TextCommand(unsigned int id, std::string symbol,
+ std::string command, SpellTarget type,
+ std::string icon, unsigned int basicLvl,
+ MagicSchool school = SKILL_MAGIC,
+ unsigned int schoolLvl = 0, int mana = 0);
+
+ /**
+ * Constructor.
+ */
+ TextCommand(unsigned int id, std::string symbol,
+ std::string command, SpellTarget type,
+ std::string icon);
+
+ /**
+ * Constructor.
+ */
+ TextCommand(unsigned int id);
+
+ /**
+ * Destructor.
+ */
+ ~TextCommand();
+
+ std::string getName() const
+ { return mCommand; }
+
+ std::string getCommand() const
+ { return mCommand; }
+
+ std::string getSymbol() const
+ { return mSymbol; }
+
+ unsigned int getId() const
+ { return mId; }
+
+ SpellTarget getTargetType() const
+ { return mTargetType; }
+
+ std::string getIcon() const
+ { return mIcon; }
+
+ int getMana() const
+ { return mMana; }
+
+ MagicSchool getSchool() const
+ { return mSchool; }
+
+ int getBaseLvl() const
+ { return mBaseLvl; }
+
+ int getSchoolLvl() const
+ { return mSchoolLvl; }
+
+ TextCommandType getCommandType() const
+ { return mCommandType; }
+
+ void setCommand(std::string command)
+ { mCommand = command; }
+
+ void setSymbol(std::string symbol)
+ { mSymbol = symbol; }
+
+ void setId(unsigned int id)
+ { mId = id; }
+
+ void setTargetType(SpellTarget targetType)
+ { mTargetType = targetType; }
+
+ void setIcon(std::string icon)
+ { mIcon = icon; loadImage(); }
+
+ void setMana(unsigned int mana)
+ { mMana = mana; }
+
+ void setSchool(MagicSchool school)
+ { mSchool = school; }
+
+ void setBaseLvl(unsigned int baseLvl)
+ { mBaseLvl = baseLvl; }
+
+ void setSchoolLvl(unsigned int schoolLvl)
+ { mSchoolLvl = schoolLvl; }
+
+ void setCommandType(TextCommandType commandType)
+ { mCommandType = commandType; }
+
+ bool isEmpty() const
+ { return mCommand == "" && mSymbol == "" ; }
+
+ Image *getImage()
+ { return mImage; }
+
+ private:
+ void loadImage();
+
+ protected:
+ std::string mCommand;
+ std::string mSymbol;
+ SpellTarget mTargetType;
+ std::string mIcon;
+ unsigned int mId;
+ int mMana;
+ MagicSchool mSchool;
+ int mBaseLvl;
+ int mSchoolLvl;
+ TextCommandType mCommandType;
+ Image *mImage;
+};
+
+#endif