diff options
Diffstat (limited to 'src/textcommand.h')
-rw-r--r-- | src/textcommand.h | 173 |
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 |