From f57343d6f116c42107245c7ac001f7323bf251f2 Mon Sep 17 00:00:00 2001 From: Celtic Minstrel Date: Sat, 27 Feb 2016 03:36:23 -0500 Subject: [PATCH] Minor simplification of AI config parsing --- src/ai/configuration.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/ai/configuration.cpp b/src/ai/configuration.cpp index 3c65ad59c70b..0485ecd589c8 100644 --- a/src/ai/configuration.cpp +++ b/src/ai/configuration.cpp @@ -25,11 +25,14 @@ #include "serialization/parser.hpp" #include "serialization/preprocessor.hpp" #include "wml_exception.hpp" +#include "config_assign.hpp" #include +#include #include #include +#include namespace ai { @@ -235,6 +238,10 @@ bool configuration::parse_side_config(side_number side, const config& original_c return true; } + +static const std::set non_aspect_attributes = boost::assign::list_of("turns")("time_of_day")("engine")("ai_algorithm")("id")("description"); +static const std::set just_copy_tags = boost::assign::list_of("engine")("stage")("aspect")("goal")("modify_ai"); +static const std::set old_goal_tags = boost::assign::list_of("target")("target_location")("protect_unit")("protect_location"); void configuration::expand_simplified_aspects(side_number side, config &cfg) { std::string algorithm; @@ -264,7 +271,7 @@ void configuration::expand_simplified_aspects(side_number side, config &cfg) { } std::deque > facet_configs; BOOST_FOREACH(const config::attribute &attr, aiparam.attribute_range()) { - if (attr.first == "turns" || attr.first == "time_of_day" || attr.first == "engine" || attr.first == "ai_algorithm" || attr.first == "id" || attr.first == "description") { + if (non_aspect_attributes.count(attr.first)) { continue; } config facet_config; @@ -276,11 +283,11 @@ void configuration::expand_simplified_aspects(side_number side, config &cfg) { facet_configs.push_back(std::make_pair(attr.first, facet_config)); } BOOST_FOREACH(const config::any_child &child, aiparam.all_children_range()) { - if (child.key == "engine" || child.key == "stage" || child.key == "aspect" || child.key == "goal" || child.key == "modify_ai") { + if (just_copy_tags.count(child.key)) { // These aren't simplified, so just copy over unchanged. parsed_config.add_child(child.key, child.cfg); continue; - } else if(child.key == "protect_unit" || child.key == "protect_location" || child.key == "target" || child.key == "target_location") { + } else if(old_goal_tags.count(child.key)) { // A simplified goal, mainly kept around just for backwards compatibility. config goal_config, criteria_config = child.cfg; goal_config["name"] = child.key;