diff --git a/launcher/modManager/cmodlistview_moc.cpp b/launcher/modManager/cmodlistview_moc.cpp index 79d774b22..99b61a6fd 100644 --- a/launcher/modManager/cmodlistview_moc.cpp +++ b/launcher/modManager/cmodlistview_moc.cpp @@ -27,12 +27,13 @@ #include "../vcmiqt/jsonutils.h" #include "../helper.h" -#include "../../lib/VCMIDirs.h" #include "../../lib/CConfigHandler.h" -#include "../../lib/texts/Languages.h" -#include "../../lib/modding/CModVersion.h" +#include "../../lib/VCMIDirs.h" #include "../../lib/filesystem/Filesystem.h" +#include "../../lib/json/JsonUtils.h" +#include "../../lib/modding/CModVersion.h" #include "../../lib/texts/CGeneralTextHandler.h" +#include "../../lib/texts/Languages.h" #include @@ -747,7 +748,7 @@ void CModListView::installFiles(QStringList files) else if(filename.endsWith(".json", Qt::CaseInsensitive)) { //download and merge additional files - const auto &repoData = JsonUtils::jsonFromFile(filename); + JsonNode repoData = JsonUtils::jsonFromFile(filename); if(repoData["name"].isNull()) { // This is main repository index. Download all referenced mods @@ -769,7 +770,7 @@ void CModListView::installFiles(QStringList files) // This is json of a single mod. Extract name of mod and add it to repo auto modName = QFileInfo(filename).baseName().toStdString(); auto modNameLower = boost::algorithm::to_lower_copy(modName); - accumulatedRepositoryData[modNameLower] = repoData; + JsonUtils::merge(accumulatedRepositoryData[modNameLower], repoData); } } else if(filename.endsWith(".png", Qt::CaseInsensitive))