浏览代码

Fix alignments check

Tomasz Zieliński 1 年之前
父节点
当前提交
6899acc1d7
共有 1 个文件被更改,包括 12 次插入8 次删除
  1. 12 8
      lib/mapObjects/ObstacleSetHandler.cpp

+ 12 - 8
lib/mapObjects/ObstacleSetHandler.cpp

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