summaryrefslogtreecommitdiff
path: root/src/game-server/specialmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game-server/specialmanager.cpp')
-rw-r--r--src/game-server/specialmanager.cpp179
1 files changed, 0 insertions, 179 deletions
diff --git a/src/game-server/specialmanager.cpp b/src/game-server/specialmanager.cpp
deleted file mode 100644
index 0840d25a..00000000
--- a/src/game-server/specialmanager.cpp
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * The Mana Server
- * Copyright (C) 2004-2010 The Mana World Development Team
- * Copyright (C) 2010-2012 The Mana Developers
- *
- * This file is part of The Mana Server.
- *
- * The Mana Server 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 Server 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 Server. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "specialmanager.h"
-
-#include "utils/xml.h"
-#include "utils/logger.h"
-
-static SpecialManager::TargetMode getTargetByString(const std::string &str)
-{
- std::string strLower = utils::toLower(str);
- if (strLower == "being")
- return SpecialManager::TARGET_BEING;
- else if (strLower == "point")
- return SpecialManager::TARGET_POINT;
-
- LOG_WARN("Unknown targetmode " << str << " assuming being.");
- return SpecialManager::TARGET_BEING;
-}
-
-
-/**
- * Read a <special> element from settings.
- * Used by SettingsManager.
- */
-void SpecialManager::readSpecialSetNode(xmlNodePtr node, const std::string &filename)
-{
- std::string setName = XML::getProperty(node, "name", std::string());
- if (setName.empty())
- {
- LOG_WARN("The " << filename << " file contains unamed <set> tags and will be ignored.");
- return;
- }
-
- setName = utils::toLower(setName);
-
- for_each_xml_child_node(specialNode, node)
- {
- if (xmlStrEqual(specialNode->name, BAD_CAST "special")) {
- readSpecialNode(specialNode, setName);
- }
- }
-
-}
-
-/**
- * Check the status of recently loaded configuration.
- */
-void SpecialManager::checkStatus()
-{
- LOG_INFO("Loaded " << mSpecialsInfo.size() << " specials");
-}
-
-void SpecialManager::readSpecialNode(xmlNodePtr specialNode,
- const std::string &setName)
-{
- std::string name = utils::toLower(
- XML::getProperty(specialNode, "name", std::string()));
- int id = XML::getProperty(specialNode, "id", 0);
-
- if (id <= 0 || name.empty())
- {
- LOG_WARN("Invalid special (empty name or id <= 0) in set: " << setName);
- return;
- }
-
- SpecialsInfo::iterator it = mSpecialsInfo.find(id);
- if (it != mSpecialsInfo.end())
- {
- LOG_WARN("SpecialManager: The same id: " << id
- << " is given for special names: " << it->first
- << " and " << name);
- LOG_WARN("The special reference: " << id
- << ": '" << name << "' will be ignored.");
- return;
- }
-
- bool rechargeable = XML::getBoolProperty(specialNode, "rechargeable", true);
- int neededMana = XML::getProperty(specialNode, "needed", 0);
- int defaultRechargeSpeed = XML::getProperty(specialNode,
- "rechargespeed", 0);
-
- if (rechargeable && neededMana <= 0)
- {
- LOG_WARN("Invalid special '" << name
- << "' (rechargable but no needed attribute) in set: "
- << setName);
- return;
- }
-
-
- SpecialInfo *newInfo = new SpecialManager::SpecialInfo;
- newInfo->setName = setName;
- newInfo->name = name;
- newInfo->id = id;
- newInfo->rechargeable = rechargeable;
- newInfo->neededMana = neededMana;
- newInfo->defaultRechargeSpeed = defaultRechargeSpeed;
-
- newInfo->target = getTargetByString(XML::getProperty(specialNode, "target",
- std::string()));
-
- mSpecialsInfo[newInfo->id] = newInfo;
-
- std::string keyName = setName + "_" + newInfo->name;
- mNamedSpecialsInfo[keyName] = newInfo;
-}
-
-void SpecialManager::initialize()
-{
- clear();
-}
-
-void SpecialManager::reload()
-{
- clear();
-}
-
-void SpecialManager::clear()
-{
- for (SpecialsInfo::iterator it = mSpecialsInfo.begin(),
- it_end = mSpecialsInfo.end(); it != it_end; ++it)
- {
- delete it->second;
- }
- mSpecialsInfo.clear();
- mNamedSpecialsInfo.clear();
-}
-
-unsigned SpecialManager::getId(const std::string &set,
- const std::string &name) const
-{
- std::string key = utils::toLower(set) + "_" + utils::toLower(name);
- return getId(key);
-}
-
-unsigned SpecialManager::getId(const std::string &specialName) const
-{
- if (mNamedSpecialsInfo.contains(specialName))
- return mNamedSpecialsInfo.value(specialName)->id;
- else
- return 0;
-}
-
-const std::string SpecialManager::getSpecialName(int id) const
-{
- SpecialsInfo::const_iterator it = mSpecialsInfo.find(id);
- return it != mSpecialsInfo.end() ? it->second->name : "";
-}
-
-const std::string SpecialManager::getSetName(int id) const
-{
- SpecialsInfo::const_iterator it = mSpecialsInfo.find(id);
- return it != mSpecialsInfo.end() ? it->second->setName : "";
-}
-
-SpecialManager::SpecialInfo *SpecialManager::getSpecialInfo(int id)
-{
- SpecialsInfo::const_iterator it = mSpecialsInfo.find(id);
- return it != mSpecialsInfo.end() ? it->second : 0;
-}