1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-17 00:07:41 +02:00

It is now possible to define objects directly in mod.json instead of

using path to file with object definition
This commit is contained in:
Ivan Savenko
2024-09-30 19:26:22 +00:00
parent 1488629628
commit 8e4152bc81
7 changed files with 69 additions and 62 deletions

View File

@ -384,7 +384,7 @@ std::set<TModID> CModHandler::getModDependencies(const TModID & modId, bool & is
void CModHandler::initializeConfig()
{
VLC->settingsHandler->loadBase(coreMod->config["settings"]);
VLC->settingsHandler->loadBase(JsonUtils::assembleFromFiles(coreMod->config["settings"]));
for(const TModID & modName : activeMods)
{
@ -401,21 +401,6 @@ CModVersion CModHandler::getModVersion(TModID modName) const
return {};
}
static JsonNode loadReferencesList(const JsonNode & source)
{
if (source.isVector())
{
auto configList = source.convertTo<std::vector<std::string> >();
JsonNode result = JsonUtils::assembleFromFiles(configList);
return result;
}
else
{
return source;
}
}
void CModHandler::loadTranslation(const TModID & modName)
{
const auto & mod = allMods[modName];
@ -423,8 +408,8 @@ void CModHandler::loadTranslation(const TModID & modName)
std::string preferredLanguage = VLC->generaltexth->getPreferredLanguage();
std::string modBaseLanguage = allMods[modName].baseLanguage;
JsonNode baseTranslation = loadReferencesList(mod.config["translations"]);
JsonNode extraTranslation = loadReferencesList(mod.config[preferredLanguage]["translations"]);
JsonNode baseTranslation = JsonUtils::assembleFromFiles(mod.config["translations"]);
JsonNode extraTranslation = JsonUtils::assembleFromFiles(mod.config[preferredLanguage]["translations"]);
VLC->generaltexth->loadTranslationOverrides(modName, baseTranslation);
VLC->generaltexth->loadTranslationOverrides(modName, extraTranslation);