1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-17 00:07:41 +02:00
Files
vcmi/lib/spells/SpellSchoolHandler.cpp
Ivan Savenko 0979f409c7 Fix build
2025-06-15 14:36:29 +03:00

61 lines
1.7 KiB
C++

/*
* SpellSchoolHandler.cpp, part of VCMI engine
*
* Authors: listed in file AUTHORS in main folder
*
* License: GNU General Public License v2.0 or later
* Full text of license available in license.txt file, in main folder
*
*/
#include "StdInc.h"
#include "SpellSchoolHandler.h"
#include "../json/JsonNode.h"
VCMI_LIB_NAMESPACE_BEGIN
std::vector<JsonNode> SpellSchoolHandler::loadLegacyData()
{
objects.resize(4);
return std::vector<JsonNode>(4, JsonNode(JsonMap()));
}
std::shared_ptr<spells::SpellSchoolType> SpellSchoolHandler::loadObjectImpl(std::string scope, std::string name, const JsonNode & data, size_t index)
{
auto ret = std::make_shared<spells::SpellSchoolType>();
ret->id = SpellSchool(index);
ret->jsonName = name;
ret->spellBordersPath = AnimationPath::fromJson(data["schoolBorders"]);
return ret;
}
/// loads single object into game. Scope is namespace of this object, same as name of source mod
void SpellSchoolHandler::loadObject(std::string scope, std::string name, const JsonNode & data)
{
objects.push_back(loadObjectImpl(scope, name, data, objects.size()));
registerObject(scope, "spellSchool", name, objects.back()->getIndex());
}
void SpellSchoolHandler::loadObject(std::string scope, std::string name, const JsonNode & data, size_t index)
{
assert(objects[index] == nullptr); // ensure that this id was not loaded before
objects[index] = loadObjectImpl(scope, name, data, index);
registerObject(scope, "spellSchool", name, objects[index]->getIndex());
}
std::vector<SpellSchool> SpellSchoolHandler::getAllObjects() const
{
std::vector<SpellSchool> result;
for (const auto & school : objects)
result.push_back(school->id);
return result;
}
VCMI_LIB_NAMESPACE_END