From 18bd0722a9cebc3ba80bfb74a5b5ba0dd9e53c75 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 16 Nov 2015 20:02:04 +0300 Subject: Rename SpellTarget into CommandTarget enum and convert it to strong typed. --- src/CMakeLists.txt | 1 + src/Makefile.am | 1 + src/enums/commandtarget.h | 34 ++++++++++++++++++++++++++++++++++ src/gui/windows/textcommandeditor.cpp | 4 ++-- src/resources/db/commandsdb.cpp | 10 +++++----- src/spellmanager.cpp | 17 +++++++++-------- src/textcommand.cpp | 6 +++--- src/textcommand.h | 19 +++++++------------ 8 files changed, 62 insertions(+), 30 deletions(-) create mode 100644 src/enums/commandtarget.h (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 12ccfb432..7e4e11e3d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -913,6 +913,7 @@ SET(SRCS graphicsvertexes.h guild.cpp guild.h + enums/commandtarget.h enums/dragdropsource.h enums/equipslot.h enums/guildpositionflags.h diff --git a/src/Makefile.am b/src/Makefile.am index 7fd366647..ffa69a2d6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -689,6 +689,7 @@ manaplus_SOURCES += main.cpp \ itemshortcut.h \ itemsoundmanager.cpp \ itemsoundmanager.h \ + enums/commandtarget.h \ enums/dragdropsource.h \ enums/equipslot.h \ enums/guildpositionflags.h \ diff --git a/src/enums/commandtarget.h b/src/enums/commandtarget.h new file mode 100644 index 000000000..3fe5febed --- /dev/null +++ b/src/enums/commandtarget.h @@ -0,0 +1,34 @@ +/* + * The ManaPlus Client + * Copyright (C) 2011-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * 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, see . + */ + +#ifndef ENUMS_COMMANDTARGET_H +#define ENUMS_COMMANDTARGET_H + +#include "enums/simpletypes/enumdefines.h" + +enumStart(CommandTarget) +{ + NoTarget = 0, + AllowTarget = 1, + NeedTarget = 2 +} +enumEnd(CommandTarget); + +#endif // ENUMS_COMMANDTARGET_H diff --git a/src/gui/windows/textcommandeditor.cpp b/src/gui/windows/textcommandeditor.cpp index 4269508aa..b72b82501 100644 --- a/src/gui/windows/textcommandeditor.cpp +++ b/src/gui/windows/textcommandeditor.cpp @@ -261,7 +261,7 @@ void TextCommandEditor::save() mCommand->setComment(mCommentTextField->getText()); mCommand->setMana(mManaField->getValue()); mCommand->setTargetType( - static_cast(mTypeDropDown->getSelected())); + static_cast(mTypeDropDown->getSelected())); mCommand->setIcon(mIconDropDown->getSelectedString()); mCommand->setBaseLvl(mMagicLvlField->getValue()); mCommand->setSchool(static_cast( @@ -278,7 +278,7 @@ void TextCommandEditor::deleteCommand() mCommand->setCommand(""); mCommand->setComment(""); mCommand->setMana(0); - mCommand->setTargetType(NOTARGET); + mCommand->setTargetType(CommandTarget::NoTarget); mCommand->setIcon(""); mCommand->setBaseLvl(0); mCommand->setSchool(SKILL_MAGIC); diff --git a/src/resources/db/commandsdb.cpp b/src/resources/db/commandsdb.cpp index 091ae718c..2203cbaa8 100644 --- a/src/resources/db/commandsdb.cpp +++ b/src/resources/db/commandsdb.cpp @@ -46,14 +46,14 @@ void CommandsDB::load() mLoaded = true; } -static SpellTarget parseTarget(const std::string &text) +static CommandTargetT parseTarget(const std::string &text) { if (text == "allow target") - return ALLOWTARGET; + return CommandTarget::AllowTarget; else if (text == "need target") - return NEEDTARGET; + return CommandTarget::NeedTarget; else - return NOTARGET; + return CommandTarget::NoTarget; } void CommandsDB::loadXmlFile(const std::string &fileName) @@ -99,7 +99,7 @@ void CommandsDB::loadXmlFile(const std::string &fileName) commandNode, "command", ""); const std::string comment = XML::getProperty( commandNode, "comment", ""); - const SpellTarget targetType = parseTarget(XML::getProperty( + const CommandTargetT targetType = parseTarget(XML::getProperty( commandNode, "target", "")); const std::string icon = XML::getProperty( commandNode, "icon", ""); diff --git a/src/spellmanager.cpp b/src/spellmanager.cpp index bc14f7537..84d05bc12 100644 --- a/src/spellmanager.cpp +++ b/src/spellmanager.cpp @@ -143,18 +143,18 @@ void SpellManager::invoke(const int spellId) const && PlayerInfo::getAttribute(Attributes::MP) >= spell->getMana())) { const Being *const target = localPlayer->getTarget(); - if (spell->getTargetType() == NOTARGET) + if (spell->getTargetType() == CommandTarget::NoTarget) { invokeSpell(spell); } if ((target && (target->getType() != ActorType::Monster || spell->getCommandType() == TEXT_COMMAND_TEXT)) - && (spell->getTargetType() == ALLOWTARGET - || spell->getTargetType() == NEEDTARGET)) + && (spell->getTargetType() == CommandTarget::AllowTarget + || spell->getTargetType() == CommandTarget::NeedTarget)) { invokeSpell(spell, target); } - else if (spell->getTargetType() == ALLOWTARGET) + else if (spell->getTargetType() == CommandTarget::AllowTarget) { invokeSpell(spell); } @@ -287,13 +287,13 @@ void SpellManager::load(const bool oldConfig) if (static_cast(commandType) == TEXT_COMMAND_MAGIC) { addSpell(new TextCommand(i, symbol, cmd, comment, - static_cast(targetType), icon, basicLvl, + static_cast(targetType), icon, basicLvl, static_cast(school), schoolLvl, mana)); } else { addSpell(new TextCommand(i, symbol, cmd, comment, - static_cast(targetType), icon)); + static_cast(targetType), icon)); } } } @@ -368,8 +368,9 @@ std::string SpellManager::autoComplete(const std::string &partName) const } ++i; } - if (!newName.empty() && newCommand - && newCommand->getTargetType() == NEEDTARGET) + if (!newName.empty() && + newCommand && + newCommand->getTargetType() == CommandTarget::NeedTarget) { return newName.append(" "); } diff --git a/src/textcommand.cpp b/src/textcommand.cpp index 7f2a66748..5dbaa578d 100644 --- a/src/textcommand.cpp +++ b/src/textcommand.cpp @@ -37,7 +37,7 @@ TextCommand::TextCommand(const unsigned int id, const std::string &symbol, const std::string &command, const std::string &comment, - const SpellTarget type, const std::string &icon, + const CommandTargetT type, const std::string &icon, const unsigned int basicLvl, const MagicSchool school, const unsigned int schoolLvl, const int mana) : mCommand(command), @@ -60,7 +60,7 @@ TextCommand::TextCommand(const unsigned int id, const std::string &symbol, TextCommand::TextCommand(const unsigned int id, const std::string &symbol, const std::string &command, const std::string &comment, - const SpellTarget type, const std::string &icon) : + const CommandTargetT type, const std::string &icon) : mCommand(command), mComment(comment), mSymbol(symbol), @@ -81,7 +81,7 @@ TextCommand::TextCommand(const unsigned int id) : mCommand(""), mComment(""), mSymbol(""), - mTargetType(NOTARGET), + mTargetType(CommandTarget::NoTarget), mIcon(""), mId(id), mMana(0), diff --git a/src/textcommand.h b/src/textcommand.h index 79a6b6f7e..76749b51f 100644 --- a/src/textcommand.h +++ b/src/textcommand.h @@ -23,6 +23,8 @@ #ifndef TEXTCOMMAND_H #define TEXTCOMMAND_H +#include "enums/commandtarget.h" + #include #include "localconsts.h" @@ -31,13 +33,6 @@ const unsigned int MAGIC_START_ID = 340; class Image; -enum SpellTarget -{ - NOTARGET = 0, - ALLOWTARGET = 1, - NEEDTARGET = 2 -}; - enum MagicSchool { SKILL_MAGIC = 340, @@ -65,7 +60,7 @@ class TextCommand final */ TextCommand(const unsigned int id, const std::string &symbol, const std::string &command, - const std::string &comment, const SpellTarget type, + const std::string &comment, const CommandTargetT type, const std::string &icon, const unsigned int basicLvl, const MagicSchool school = SKILL_MAGIC, const unsigned int schoolLvl = 0, const int mana = 0); @@ -75,7 +70,7 @@ class TextCommand final */ TextCommand(const unsigned int id, const std::string &symbol, const std::string &command, const std::string &comment, - const SpellTarget type, const std::string &icon); + const CommandTargetT type, const std::string &icon); /** * Constructor. @@ -104,7 +99,7 @@ class TextCommand final unsigned int getId() const A_WARN_UNUSED { return mId; } - SpellTarget getTargetType() const A_WARN_UNUSED + CommandTargetT getTargetType() const A_WARN_UNUSED { return mTargetType; } std::string getIcon() const A_WARN_UNUSED @@ -137,7 +132,7 @@ class TextCommand final void setId(const unsigned int id) { mId = id; } - void setTargetType(const SpellTarget targetType) + void setTargetType(const CommandTargetT targetType) { mTargetType = targetType; } void setIcon(const std::string &icon) @@ -171,7 +166,7 @@ class TextCommand final std::string mCommand; std::string mComment; std::string mSymbol; - SpellTarget mTargetType; + CommandTargetT mTargetType; std::string mIcon; unsigned int mId; int mMana; -- cgit v1.2.3-60-g2f50