1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-25 22:42:04 +02:00

Fix alignments check

This commit is contained in:
Tomasz Zieliński
2024-04-12 09:38:45 +02:00
parent 1f81ddbac4
commit 6899acc1d7

View File

@@ -55,11 +55,13 @@ bool ObstacleSetFilter::filter(const ObstacleSet &set) const
} }
// TODO: Also check specific factions // TODO: Also check specific factions
auto alignments = set.getAlignments(); if (alignment != EAlignment::ANY)
if (alignment != EAlignment::ANY && !alignments.empty() && !vstd::contains(alignments, alignment))
{ {
return false; auto alignments = set.getAlignments();
if (!alignments.empty() && !vstd::contains(alignments, alignment))
{
return false;
}
} }
return true; return true;
@@ -269,6 +271,8 @@ std::shared_ptr<ObstacleSet> ObstacleSetHandler::loadFromJson(const std::string
auto biome = json["biome"].Struct(); auto biome = json["biome"].Struct();
os->setType(ObstacleSet::typeFromString(biome["objectType"].String())); os->setType(ObstacleSet::typeFromString(biome["objectType"].String()));
// TODO: Handle any (every) terrain option
if (biome["terrain"].isString()) if (biome["terrain"].isString())
{ {
auto terrainName = biome["terrain"].String(); auto terrainName = biome["terrain"].String();
@@ -306,13 +310,13 @@ std::shared_ptr<ObstacleSet> ObstacleSetHandler::loadFromJson(const std::string
} }
}; };
if (json["alignment"].isString()) if (biome["alignment"].isString())
{ {
os->addAlignment(parseAlignment(json["alignment"].String())); os->addAlignment(parseAlignment(biome["alignment"].String()));
} }
else if (json["alignment"].isVector()) else if (biome["alignment"].isVector())
{ {
auto alignments = json["alignment"].Vector(); auto alignments = biome["alignment"].Vector();
for (const auto & node : alignments) for (const auto & node : alignments)
{ {
os->addAlignment(parseAlignment(node.String())); os->addAlignment(parseAlignment(node.String()));