1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-01-12 02:28:11 +02:00

skip campaigns from set

This commit is contained in:
Laserlicht 2024-11-11 22:44:48 +01:00
parent 9c55ebf2dd
commit 6b33f4d969

View File

@ -875,6 +875,8 @@ void SelectionTab::parseSaves(const std::unordered_set<ResourcePath> & files)
void SelectionTab::parseCampaigns(const std::unordered_set<ResourcePath> & files)
{
auto campaignSets = JsonNode(JsonPath::builtin("config/campaignSets.json"));
allItems.reserve(files.size());
for(auto & file : files)
{
@ -882,7 +884,15 @@ void SelectionTab::parseCampaigns(const std::unordered_set<ResourcePath> & files
info->fileURI = file.getOriginalName();
info->campaignInit();
info->name = info->getNameForList();
if(info->campaign)
// skip campaigns organized in sets
bool foundInSet = false;
for (auto const & set : campaignSets.Struct())
for (auto const & item : set.second["items"].Vector())
if(file.getName() == ResourcePath(item["file"].String()).getName())
foundInSet = true;
if(info->campaign && !foundInSet)
allItems.push_back(info);
}
}