A config object defines a single node in a WML file, with access to child nodes. More...
#include <config.hpp>
Classes | |
struct | all_children_iterator |
struct | any_child |
struct | attribute_iterator |
struct | child_iterator |
struct | child_pos |
struct | const_all_children_iterator |
struct | const_attribute_iterator |
struct | const_child_iterator |
struct | error |
Public Types | |
typedef std::vector< std::unique_ptr< config > > | child_list |
typedef std::map< std::string, child_list, std::less<> > | child_map |
typedef boost::iterator_range< child_iterator > | child_itors |
typedef boost::iterator_range< const_child_iterator > | const_child_itors |
using | attribute_value = config_attribute_value |
Variant for storing WML attributes. More... | |
typedef std::map< std::string, attribute_value, std::less<> > | attribute_map |
typedef attribute_map::value_type | attribute |
typedef boost::iterator_range< const_attribute_iterator > | const_attr_itors |
typedef boost::iterator_range< attribute_iterator > | attr_itors |
typedef boost::iterator_range< all_children_iterator > | all_children_itors |
typedef boost::iterator_range< const_all_children_iterator > | const_all_children_itors |
Public Member Functions | |
config () | |
config (const config &) | |
config & | operator= (const config &) |
config (config &&) | |
config & | operator= (config &&) |
config (config_key_type child) | |
Creates a config object with an empty child of name child. More... | |
template<typename... T> | |
config (config_key_type first, T &&... args) | |
Creates a config with several attributes and children. More... | |
~config () | |
child_itors | child_range (config_key_type key) |
const_child_itors | child_range (config_key_type key) const |
std::size_t | child_count (config_key_type key) const |
std::size_t | all_children_count () const |
std::size_t | attribute_count () const |
Count the number of non-blank attributes. More... | |
bool | has_child (config_key_type key) const |
Determine whether a config has a child or not. More... | |
const config & | child_or_empty (config_key_type key) const |
Returns the first child with the given key, or an empty config if there is none. More... | |
config & | mandatory_child (config_key_type key, int n=0) |
Returns the nth child with the given key, or throws an error if there is none. More... | |
const config & | mandatory_child (config_key_type key, int n=0) const |
Returns the nth child with the given key, or throws an error if there is none. More... | |
optional_config_impl< config > | optional_child (config_key_type key, int n=0) |
Euivalent to mandatory_child, but returns an empty optional if the nth child was not found. More... | |
optional_config_impl< const config > | optional_child (config_key_type key, int n=0) const |
Euivalent to mandatory_child, but returns an empty optional if the nth child was not found. More... | |
config & | mandatory_child (config_key_type key, const std::string &parent) |
Returns a mandatory child node. More... | |
const config & | mandatory_child (config_key_type key, const std::string &parent) const |
Returns a mandatory child node. More... | |
optional_config_impl< const config > | get_deprecated_child (config_key_type old_key, const std::string &in_tag, DEP_LEVEL level, const std::string &message) const |
Get a deprecated child and log a deprecation message. More... | |
const_child_itors | get_deprecated_child_range (config_key_type old_key, const std::string &in_tag, DEP_LEVEL level, const std::string &message) const |
Get a deprecated child rangw and log a deprecation message. More... | |
config & | add_child (config_key_type key) |
config & | add_child (config_key_type key, const config &val) |
config & | add_child_at (config_key_type key, const config &val, std::size_t index) |
config & | add_child (config_key_type key, config &&val) |
attribute_value & | operator[] (config_key_type key) |
Returns a reference to the attribute with the given key. More... | |
const attribute_value & | operator[] (config_key_type key) const |
Returns a reference to the attribute with the given key or to a dummy empty attribute if it does not exist. More... | |
attribute_value & | operator[] (const std::string &key) |
Returns a reference to the attribute with the given key. More... | |
const attribute_value & | operator[] (const std::string &key) const |
Returns a reference to the attribute with the given key or to a dummy empty attribute if it does not exist. More... | |
attribute_value & | operator[] (const char *key) |
Returns a reference to the attribute with the given key. More... | |
const attribute_value & | operator[] (const char *key) const |
Returns a reference to the attribute with the given key or to a dummy empty attribute if it does not exist. More... | |
const attribute_value * | get (config_key_type key) const |
Returns a pointer to the attribute with the given key or nullptr if it does not exist. More... | |
const attribute_value & | get_or (const config_key_type key, const config_key_type default_key) const |
Chooses a value. More... | |
const attribute_value & | get_old_attribute (config_key_type key, const std::string &old_key, const std::string &in_tag, const std::string &message="") const |
Function to handle backward compatibility Get the value of key and if missing try old_key and log a deprecation message. More... | |
const attribute_value & | get_deprecated_attribute (config_key_type old_key, const std::string &in_tag, DEP_LEVEL level, const std::string &message) const |
Get a deprecated attribute without a direct substitute, and log a deprecation message. More... | |
template<typename T > | |
void | insert (config_key_type key, T &&value) |
Inserts an attribute into the config. More... | |
config & | child_or_add (config_key_type key) |
Returns a reference to the first child with the given key. More... | |
bool | has_attribute (config_key_type key) const |
void | remove_attribute (config_key_type key) |
void | merge_attributes (const config &) |
template<typename... T> | |
void | remove_attributes (T... keys) |
template<typename... T> | |
void | copy_attributes (const config &from, T... keys) |
Copies attributes that exist in the source config. More... | |
template<typename... T> | |
void | copy_or_remove_attributes (const config &from, T... keys) |
Copies or deletes attributes to match the source config. More... | |
const_attr_itors | attribute_range () const |
attr_itors | attribute_range () |
optional_config_impl< config > | find_child (config_key_type key, const std::string &name, const std::string &value) |
Returns the first child of tag key with a name attribute containing value. More... | |
optional_config_impl< const config > | find_child (config_key_type key, const std::string &name, const std::string &value) const |
config & | find_mandatory_child (config_key_type key, const std::string &name, const std::string &value) |
const config & | find_mandatory_child (config_key_type key, const std::string &name, const std::string &value) const |
template<typename... T> | |
void | clear_children (T... keys) |
void | splice_children (config &src, const std::string &key) |
Moves all the children with tag key from src to this. More... | |
void | remove_child (config_key_type key, std::size_t index) |
void | remove_children (config_key_type key, std::function< bool(const config &)> p=[](config){return true;}) |
Removes all children with tag key for which p returns true. More... | |
void | recursive_clear_value (config_key_type key) |
void | clear () |
void | clear_all_children () |
void | clear_attributes () |
bool | empty () const |
std::string | debug () const |
std::string | hash () const |
config & | add_child_at_total (config_key_type key, const config &val, std::size_t pos) |
std::size_t | find_total_first_of (config_key_type key, std::size_t start=0) |
const_all_children_itors | all_children_range () const |
In-order iteration over all children. More... | |
all_children_itors | all_children_range () |
const_all_children_iterator | ordered_cbegin () const |
const_all_children_iterator | ordered_cend () const |
const_all_children_iterator | ordered_begin () const |
const_all_children_iterator | ordered_end () const |
all_children_iterator | ordered_begin () |
all_children_iterator | ordered_end () |
all_children_iterator | erase (const all_children_iterator &i) |
config | get_diff (const config &c) const |
A function to get the differences between this object, and 'c', as another config object. More... | |
void | get_diff (const config &c, config &res) const |
void | apply_diff (const config &diff, bool track=false) |
A function to apply a diff config onto this config object. More... | |
void | clear_diff_track (const config &diff) |
Clear any tracking info from a previous apply_diff call with tracking. More... | |
void | merge_with (const config &c) |
Merge config 'c' into this config, overwriting this config's values. More... | |
void | inherit_from (const config &c) |
Merge config 'c' into this config, preserving this config's values. More... | |
void | inherit_attributes (const config &c) |
Merge the attributes of config 'c' into this config, preserving this config's values. More... | |
bool | matches (const config &filter) const |
void | append (const config &cfg) |
Append data from another config object to this one. More... | |
void | append (config &&cfg) |
void | append_children (const config &cfg) |
Adds children from cfg. More... | |
void | append_children (config &&cfg) |
void | append_children (const config &cfg, const std::string &key) |
Adds children from cfg. More... | |
void | append_children_by_move (config &cfg, const std::string &key) |
Moves children with the given name from the given config to this one. More... | |
void | append_attributes (const config &cfg) |
Adds attributes from cfg. More... | |
void | merge_children (const std::string &key) |
All children with the given key will be merged into the first element with that key. More... | |
void | merge_children_by_attribute (const std::string &key, const std::string &attribute) |
All children with the given key and with equal values of the specified attribute will be merged into the element with that key and that value of the attribute. More... | |
void | swap (config &cfg) |
bool | validate_wml () const |
Returns true if this object represents valid WML, i.e. More... | |
Static Public Member Functions | |
static bool | valid_tag (config_key_type name) |
static bool | valid_attribute (config_key_type name) |
Static Public Attributes | |
static const char * | diff_track_attribute = "__diff_track" |
The name of the attribute used for tracking diff changes. More... | |
Private Member Functions | |
void | clear_children_impl (config_key_type key) |
std::vector< child_pos >::iterator | remove_child (const child_map::iterator &l, std::size_t pos) |
Removes the child at position pos of l. More... | |
Private Attributes | |
attribute_map | values_ |
All the attributes of this node. More... | |
child_map | children_ |
A list of all children of this node. More... | |
std::vector< child_pos > | ordered_children |
Friends | |
bool | operator== (const config &a, const config &b) |
A config object defines a single node in a WML file, with access to child nodes.
Definition at line 160 of file config.hpp.
typedef boost::iterator_range<all_children_iterator> config::all_children_itors |
Definition at line 805 of file config.hpp.
typedef boost::iterator_range<attribute_iterator> config::attr_itors |
Definition at line 362 of file config.hpp.
typedef attribute_map::value_type config::attribute |
Definition at line 301 of file config.hpp.
typedef std::map< std::string , attribute_value , std::less<> > config::attribute_map |
Definition at line 300 of file config.hpp.
Variant for storing WML attributes.
The most efficient type is used when assigning a value. For instance, strings "yes", "no", "true", "false" will be detected and stored as boolean.
Definition at line 294 of file config.hpp.
typedef boost::iterator_range<child_iterator> config::child_itors |
Definition at line 284 of file config.hpp.
typedef std::vector<std::unique_ptr<config> > config::child_list |
Definition at line 194 of file config.hpp.
typedef std::map<std::string, child_list, std::less<> > config::child_map |
Definition at line 195 of file config.hpp.
typedef boost::iterator_range<const_all_children_iterator> config::const_all_children_itors |
Definition at line 806 of file config.hpp.
typedef boost::iterator_range<const_attribute_iterator> config::const_attr_itors |
Definition at line 361 of file config.hpp.
typedef boost::iterator_range<const_child_iterator> config::const_child_itors |
Definition at line 285 of file config.hpp.
config::config | ( | ) |
Definition at line 78 of file config.cpp.
Referenced by add_child().
config::config | ( | const config & | cfg | ) |
Definition at line 85 of file config.cpp.
References append_children().
config::config | ( | config && | cfg | ) |
Definition at line 117 of file config.cpp.
|
explicit |
Creates a config object with an empty child of name child.
Definition at line 93 of file config.cpp.
References add_child().
|
inlineexplicit |
Creates a config with several attributes and children.
Pass the keys/tags and values/children alternately. For example: config("key", 42, "value", config())
Definition at line 988 of file config.hpp.
config::~config | ( | ) |
Definition at line 101 of file config.cpp.
References clear().
config & config::add_child | ( | config_key_type | key | ) |
Definition at line 445 of file config.cpp.
References children_, config(), and ordered_children.
Referenced by unit_animation::add_anims(), add_child_at_total(), replay::add_countdown_update(), game_events::manager::add_event_handler_from_wml(), add_image(), replay::add_label(), campaignd::add_license(), replay::add_log_data(), unit::add_modification(), terrain_builder::add_off_map_rule(), replay::add_rename(), replay::add_start(), replay::add_surrender(), schema_validation::wml_tag::add_switch(), replay::add_synced_command(), add_text(), replay::add_unit_checksum(), desktop::add_user_bookmark(), append_children(), append_children_by_move(), unit::apply_builtin_effect(), attack_type::apply_modification(), archive_addon(), archive_dir(), BOOST_AUTO_TEST_CASE(), unit_type::build_help_index(), cave_map_generator::cave_map_generator_job::cave_map_generator_job(), turn_info::change_side_controller(), saved_game::check_require_scenario(), child_or_add(), replay::clear_labels(), persist_file_context::clear_var(), replay_network_sender::commit_and_sync(), config(), savegame::convert_old_saves_1_11_0(), savegame::convert_old_saves_1_13_0(), default_map_generator::create_scenario(), savegame::save_index_class::data(), addons_client::delete_remote_addon(), gui2::dialogs::story_viewer::display_part(), events::chat_command_handler::do_info(), do_resolve_rects(), addons_client::download_addon(), gui2::dialogs::story_viewer::draw_floating_image(), gui2::dialogs::attack_predictions::draw_hp_graph(), replay::end_turn(), gui2::dialogs::mp_lobby::enter_game(), expand_partialresolution(), ai::configuration::expand_simplified_aspects(), savegame::extract_summary_from_config(), help::generate_contents(), unit::generate_traits(), replay_helper::get_attack(), ai::readonly_context_impl::get_avoid(), get_checksum(), variable_info_implementation::vi_policy_create::get_child_at(), replay::get_data_range(), get_diff(), replay_helper::get_event(), gui2::dialogs::mp_options_helper::get_options_config(), vconfig::get_parsed_config(), replay_helper::get_recall(), replay_helper::get_recruit(), persist_file_context::get_var(), campaignd::server::handle_request_campaign_list(), campaignd::server::handle_upload(), game_lua_kernel::impl_current_get(), inherit_scenario(), unit::init(), replay::init_side(), ai::default_recruitment::recruitment::integrate_recruitment_pattern_in_recruitment_instructions(), intf_append_ai(), intf_debug_ai(), game_lua_kernel::intf_get_achievement(), intf_invoke_synced_command(), intf_modify_ai(), editor::editor_display::layout(), gui2::dialogs::addon_manager::load_addon_list(), game_config_manager::load_game_config(), saved_game::load_non_scenario(), synced_checkup::local_checkup(), luaW_toconfig(), wb::side_actions::make_net_cmd_insert(), wb::side_actions::make_net_cmd_refresh(), wb::side_actions::make_net_cmd_replace(), make_updatepack(), ng::depcheck::manager::manager(), animation_branch::merge(), merge_children(), merge_children_by_attribute(), merge_with(), variable_info_implementation::merge_range_h::operator()(), ai::configuration::parse_side_config(), cave_map_generator::cave_map_generator_job::place_chamber(), saved_game::post_scenario_generation(), ai::ai_composite::preparse_cfg(), ng::connect_engine::process_network_data(), playmp_controller::process_oos(), preferences::progress_achievement(), persist_choice::query_user(), playturn_network_adapter::read(), ai::default_recruitment::recruitment_aspect::recalculate(), ai::default_recruitment::recruitment_aspect::recruitment_aspect(), display::refresh_report(), gui2::dialogs::mp_match_history::request_history(), preferences::save_acquaintances(), hotkey::save_hotkeys(), ng::connect_engine::send_level_data(), wb::manager::send_network_data(), addons_client::send_simple_request(), game_events::filter_condition::serialize(), game_events::filter_side::serialize(), game_events::filter_unit::serialize(), game_events::filter_attack::serialize(), game_events::filter_dynamic::serialize(), lua_event_filter::serialize(), about::set_about(), set_global_variable(), game_config_manager::set_multiplayer_hashes(), ng::scenario::set_sides(), preferences::set_sub_achievement(), persist_file_context::set_var(), setup_test_config(), gui2::dialogs::mp_join_game::show_flg_select(), ng::side_engine::side_engine(), replay::speak(), attack_type::special_active_impl(), scoped_wml_variable::store(), campaignd::support_translation(), replay_network_sender::sync_non_undoable(), carryover_info::to_config(), editor::map_context::to_config(), ai::ai_composite::to_config(), ai::composite_aspect< T >::to_config(), ai::lua_aspect< T >::to_config(), ai::candidate_action::to_config(), ai::ai_default_rca::aspect_attacks::to_config(), ai::aspect_attacks_lua::to_config(), ai::ai_default_rca::candidate_action_evaluation_loop::to_config(), ai::formula_ai::to_config(), ai::engine_fai::to_config(), ai::lua_candidate_action_wrapper_base::to_config(), ai::lua_stage_wrapper::to_config(), ai::engine_lua::to_config(), mp_game_settings::to_config(), pathfind::manager::to_config(), play_controller::to_config(), saved_game::to_config(), statistics_record::campaign_stats_t::to_config(), team::to_config(), tod_manager::to_config(), wb::attack::to_config(), wb::move::to_config(), wb::recall::to_config(), wb::recruit::to_config(), wb::suppose_dead::to_config(), carryover::to_config(), game_events::wml_menu_item::to_config(), game_events::wmi_manager::to_config(), ai::readonly_context_impl::to_readonly_context_config(), carryover::transfer_all_recalls_to(), ng::connect_engine::update_and_send_diff(), addons_client::upload_addon(), replay::user_input(), ai::config_value_translator< config >::value_to_cfg(), ai::config_value_translator< terrain_filter >::value_to_cfg(), detail::config_construct_unpacker< T, config, Rest... >::visit(), detail::config_construct_unpacker< T, config &, Rest... >::visit(), wesnothd::ban_manager::write(), statistics_record::stats_t::write(), statistics_record::scenario_stats_t::write(), mp_game_settings::addon_version_info::write(), unit_formula_manager::write(), actions::shroud_clearing_action::write(), actions::undo_list::write(), actions::undo::dismiss_action::write(), actions::undo::recall_action::write(), actions::undo::recruit_action::write(), actions::clearer_info::write(), addon_info::write(), display::write(), game_state::write(), team::team_info::write(), team::write(), attack_type::write(), movetype::write(), unit::write(), replay_recorder_base::write(), movetype::terrain_info::data::write(), movetype::resistances::write(), sound::music_track::write(), map_labels::write(), write_addon_install_info(), statistics_record::write_battle_result_map(), statistics_record::write_by_cth_map(), game_board::write_config(), game_events::event_handler::write_config(), write_difference(), actions::undo_action::write_event_vector(), game_events::manager::write_events(), write_hashlist(), game_data::write_snapshot(), soundsource::manager::write_sourcespecs(), and preferences::manager::~manager().
config & config::add_child | ( | config_key_type | key, |
config && | val | ||
) |
Definition at line 462 of file config.cpp.
References children_, config(), and ordered_children.
config & config::add_child | ( | config_key_type | key, |
const config & | val | ||
) |
Definition at line 453 of file config.cpp.
References children_, config(), and ordered_children.
config & config::add_child_at | ( | config_key_type | key, |
const config & | val, | ||
std::size_t | index | ||
) |
key | the tag name |
val | the contents of the tag |
index | is the index of the new child within all children of type key. |
Definition at line 471 of file config.cpp.
References children_, utf8::index(), ordered_children, and config::child_pos::pos.
Referenced by unit_animation::add_anims(), apply_diff(), ng::depcheck::manager::insert_element(), ng::side_engine::new_config(), variable_info_implementation::replace_range_h::operator()(), ai::configuration::parse_side_config(), display::refresh_report(), and replay::undo_cut().
config & config::add_child_at_total | ( | config_key_type | key, |
const config & | val, | ||
std::size_t | pos | ||
) |
key | the tag name |
val | the contents of the tag |
pos | is the index of the new child in all children. |
Definition at line 517 of file config.cpp.
References add_child(), utf8::index(), ordered_children, and p.
Referenced by saved_game::load_non_scenario().
std::size_t config::all_children_count | ( | ) | const |
Definition at line 311 of file config.cpp.
References ordered_children.
Referenced by savegame::save_index_class::clean_up_index(), do_replay_handle(), saved_game::expand_mp_events(), unit::init(), intf_remove_modifications(), and turn_info::process_network_data().
config::all_children_itors config::all_children_range | ( | ) |
Definition at line 909 of file config.cpp.
References ordered_children.
config::const_all_children_itors config::all_children_range | ( | ) | const |
In-order iteration over all children.
Definition at line 891 of file config.cpp.
References ordered_children.
Referenced by unit::ability_matches_filter(), unit::ability_tooltips(), game_events::manager::add_event_handler_from_wml(), append_children(), attack_type::apply_modification(), unit::apply_modifications(), combine_special_notes(), vconfig::count_children(), gui2::create_widget_builder(), gui2::dialogs::mp_options_helper::display_custom_options(), do_replay_handle(), do_resolve_rects(), ai::configuration::expand_simplified_aspects(), find_next_scenarios(), find_ref(), unit::get_ability_list(), vconfig::get_children(), vconfig::get_parsed_config(), wfl::config_callable::get_value(), handle_preprocess_command(), unit::has_ability_by_id(), hash(), addons_client::install_addon(), lua_wml::intf_wml_merge(), game_config_manager::load_addons_cfg(), luaW_filltable(), matches(), attack_type::matches_filter(), operator<<(), gui2::canvas::parse_cfg(), game_config::config_cache::read_defines_file(), game_events::event_handler::read_filters(), attack_type::special_tooltips(), unit_ability_list::get_extremum< std::greater< int > >(), unit_animation::unit_animation(), schema_validation::schema_self_validator::validate(), attack_type::weapon_specials(), attack_type::weapon_specials_value(), and write_internal().
void config::append | ( | config && | cfg | ) |
Definition at line 216 of file config.cpp.
References append_children(), and values_.
void config::append | ( | const config & | cfg | ) |
Append data from another config object to this one.
Attributes in the latter config object will clobber attributes in this one.
Definition at line 208 of file config.cpp.
References append_children(), and values_.
Referenced by unit::apply_builtin_effect(), create_side_engine(), campaignd::server::handle_request_campaign(), unit::init(), game_config_manager::load_game_config(), merge_children(), ng::side_engine::new_config(), ai::configuration::parse_side_config(), persist_file_context::set_var(), editor::map_context::to_config(), ai::stage_side_formulas::to_config(), addons_client::upload_addon(), game_events::WML_HANDLER_FUNCTION(), unit::write(), and game_events::event_handler::write_config().
void config::append_attributes | ( | const config & | cfg | ) |
Adds attributes from cfg.
Definition at line 194 of file config.cpp.
References values_.
Referenced by default_map_generator_job::default_generate_map().
void config::append_children | ( | config && | cfg | ) |
Definition at line 176 of file config.cpp.
References add_child(), children_, and ordered_children.
void config::append_children | ( | const config & | cfg | ) |
Adds children from cfg.
Definition at line 169 of file config.cpp.
References add_child(), and all_children_range().
Referenced by schema_validation::wml_tag::add_filter(), append(), config(), copy_persistent(), gui2::dialogs::generate_difficulty_config(), inherit_scenario(), unit::init(), game_lua_kernel::initialize(), lua_wml::intf_wml_merge(), and playsingle_controller::play_scenario().
void config::append_children | ( | const config & | cfg, |
const std::string & | key | ||
) |
Adds children from cfg.
Definition at line 201 of file config.cpp.
References add_child(), and child_range().
void config::append_children_by_move | ( | config & | cfg, |
const std::string & | key | ||
) |
Moves children with the given name from the given config to this one.
Definition at line 233 of file config.cpp.
References add_child(), child_range(), and clear_children_impl().
Referenced by game_config_manager::load_addons_cfg().
void config::apply_diff | ( | const config & | diff, |
bool | track = false |
||
) |
A function to apply a diff config onto this config object.
If the "track" parameter is true, the changes made will be marked in a magic attribute (defined above) of this and child nodes of this config, with "new" value indicating an added child, "modified" a modified one, and "deleted" for the deleted items, which will not be actually deleted (so calling code can easily see what they are). Use clear_diff_track with the same diff object to clear the tracking info and actually delete the nodes.
Definition at line 1033 of file config.cpp.
References add_child_at(), child_range(), children_, diff_track_attribute, i, utf8::index(), optional_child(), remove_child(), and values_.
Referenced by lua_wml::intf_wml_patch(), gui2::dialogs::mp_join_game::network_handler(), process_command_args(), and mp::lobby_info::process_gamelist_diff_impl().
std::size_t config::attribute_count | ( | ) | const |
Count the number of non-blank attributes.
Definition at line 316 of file config.cpp.
References values_.
Referenced by intf_remove_modifications(), and game_events::builtin_conditions::variable_matches().
config::attr_itors config::attribute_range | ( | ) |
Definition at line 779 of file config.cpp.
References values_.
config::const_attr_itors config::attribute_range | ( | ) | const |
Definition at line 767 of file config.cpp.
References values_.
Referenced by game_events::manager::add_event_handler_from_wml(), vconfig::attribute_range(), movetype::terrain_info::data::config_has_changes(), campaignd::format_addon_feedback_url(), wfl::config_callable::get_inputs(), vconfig::get_parsed_config(), wfl::unit_callable::get_value(), wfl::config_callable::get_value(), lua_common::impl_vconfig_dir(), lua_common::impl_vconfig_get(), lua_common::impl_vconfig_pairs(), unit::init(), intf_remove_modifications(), luaW_filltable(), matches(), movetype::resistances::merge(), movetype::terrain_info::data::merge(), operator<<(), turn_info::process_network_data(), playturn_network_adapter::read_from_network(), statistics_record::read_str_int_map(), and write_internal().
std::size_t config::child_count | ( | config_key_type | key | ) | const |
Definition at line 301 of file config.cpp.
Referenced by about::credits_group::about_group::about_group(), desktop::add_user_bookmark(), count_pack_files(), about::credits_group::credits_group(), saved_game::expand_mp_events(), unit::expire_modifications(), variable_info_implementation::vi_policy_create::get_child_at(), get_global_variable(), persist_file_context::get_var(), campaignd::server::load_config(), synced_checkup::local_checkup(), pathfind::manager::manager(), merge_children(), merge_children_by_attribute(), variable_info_implementation::append_range_h::operator()(), ai::configuration::parse_side_config(), desktop::remove_user_bookmark(), gui2::dialogs::mp_match_history::request_history(), wb::manager::send_network_data(), set_global_variable(), theme::set_resolution(), pathfind::teleport_group::teleport_group(), and gui2::dialogs::mp_match_history::update_display().
config & config::child_or_add | ( | config_key_type | key | ) |
Returns a reference to the first child with the given key.
Creates the child if it does not yet exist.
Definition at line 410 of file config.cpp.
References add_child(), children_, and i.
Referenced by replay::add_log_data(), persist_file_context::clear_var(), saved_game::expand_mp_options(), persist_context::get_node(), intf_invoke_synced_command(), persist_file_context::set_var(), attack_type::special_active_impl(), and carryover::transfer_all_gold_to().
const config & config::child_or_empty | ( | config_key_type | key | ) | const |
Returns the first child with the given key, or an empty config if there is none.
Definition at line 399 of file config.cpp.
Referenced by unit_type::abilities_cfg(), ai::lua_goal::add_targets(), ai::config_value_translator< config >::cfg_to_value(), savegame::convert_old_saves_1_11_0(), savegame::convert_old_saves_1_13_0(), savegame::convert_old_saves_1_15_3(), actions::undo_list::create_action(), default_map_generator::create_scenario(), ai::engine_lua::engine_lua(), saved_game::expand_random_scenario(), savegame::extract_summary_from_config(), pathfind::teleport_group::get_teleport_pair(), campaignd::server::handle_request_campaign_list(), unit::init(), game_config_manager::load_addons_cfg(), saved_game::load_non_scenario(), team::team_info::read(), campaignd::server::server_info(), saved_game::set_data(), and ng::configure_engine::side_cfg().
config::child_itors config::child_range | ( | config_key_type | key | ) |
Definition at line 277 of file config.cpp.
References children_, i, and p.
Referenced by unit::ability_active(), unit::ability_affects_adjacent(), about::credits_group::about_group::about_group(), achievement::achievement(), achievement_group::achievement_group(), game_classification::active_addons(), unit_animation::add_anims(), gui2::dialogs::campaign_selection::add_campaign_to_tree(), replay::add_config(), schema_validation::wml_tag::add_filter(), terrain_builder::add_images_from_config(), unit::add_modification(), theme::add_object(), schema_validation::wml_tag::add_switch(), mp_game_settings::addon_version_info::addon_version_info(), unit_type::advancements(), ai::holder::append_ai(), append_children(), append_children_by_move(), unit::apply_builtin_effect(), apply_diff(), editor::brush::brush(), team::build(), unit_type::build_help_index(), gui2::builder_grid::builder_grid(), gui2::implementation::builder_menu_button::builder_menu_button(), gui2::implementation::builder_multi_page::builder_multi_page(), gui2::implementation::builder_multimenu_button::builder_multimenu_button(), gui2::implementation::builder_stacked_widget::builder_stacked_widget(), gui2::implementation::builder_tree_view::builder_tree_view(), saved_game::cancel_orders(), carryover::carryover(), carryover_info::carryover_info(), ng::depcheck::manager::change_era(), ng::depcheck::manager::change_modifications(), ng::depcheck::manager::change_scenario(), vconfig::child(), game_config_view::child_range(), clear_diff_track(), ai::composite_aspect< T >::composite_aspect(), ng::connect_engine::connect_engine(), contains_hashlist(), savegame::convert_old_saves_1_11_0(), savegame::convert_old_saves_1_13_1(), count_pack_files(), about::credits_group::credits_group(), campaignd::data_apply_addlist(), campaignd::data_apply_removelist(), default_map_generator_job::default_generate_map(), gui2::dialogs::mp_options_helper::display_custom_options(), gui2::dialogs::game_load::display_savegame_internal(), events::console_handler::do_choose_level(), do_gameloop(), display::draw_report(), unit_type::events(), gui2::dialogs::sp_options_configure::execute(), wb::side_actions::execute_net_cmd(), ng::depcheck::manager::exists(), saved_game::expand_mp_options(), ai::configuration::expand_simplified_aspects(), savegame::extract_summary_from_config(), gui2::dialogs::mp_join_game::fetch_game_config(), find_next_scenarios(), campaignd::find_translations(), savegame::save_index_class::fix_leader_image_path(), ng::flg_manager::flg_manager(), schema_validation::wml_type::from_config(), mp::game_info::game_info(), cave_map_generator::cave_map_generator_job::generate_chambers(), help::generate_contents(), gui2::dialogs::mp_join_game::generate_side_list(), unit::generate_traits(), help::generate_weapon_special_topics(), unit::get_abilities(), unit::get_ability_bool(), get_checksum(), ng::depcheck::manager::get_era_index(), ai::default_recruitment::recruitment::get_most_important_job(), gui2::dialogs::addon_manager::get_name_filter_visibility(), get_resolution(), ng::depcheck::manager::get_scenario_index(), ng::side_engine::get_side_children(), attack_type::get_specials(), unit::get_traits_list(), wfl::config_callable::get_value(), campaignd::get_version_map(), gui2::gui_definition::gui_definition(), campaignd::server::handle_request_campaign(), campaignd::server::handle_request_campaign_list(), campaignd::server::handle_upload(), unit::has_ability_type(), vconfig::has_child(), impl_music_get(), inherit_scenario(), gui2::init(), unit::init(), ai::configuration::init(), ai::holder::init(), editor::editor_controller::init_music(), editor::editor_controller::init_tods(), game_lua_kernel::initialize(), gui2::dialogs::preferences_dialog::initialize_callbacks(), intf_remove_modifications(), replay_recorder_base::is_ancestor(), team_builder::leader(), gui2::tip_of_the_day::load(), campaignd::server::load_config(), wesnothd::server::load_config(), wesnothd::ban_manager::load_config(), game_config::load_config(), savegame::loadgame::load_game(), game_config_manager::load_game_config(), preferences::load_game_prefs(), load_language_list(), saved_game::load_non_scenario(), gui2::styled_widget_definition::load_resolutions(), editor::map_context::load_scenario(), ng::campaign::mark_if_completed(), matches(), movetype::merge(), merge_children(), merge_children_by_attribute(), game_config_view::merged_children_view(), unit_type::modification_advancements(), unit::modification_count(), theme::modify(), wb::move::move(), movetype::movetype(), mp_game_settings::mp_game_settings(), unit_type::musthave_status(), ng::side_engine::new_config(), ai::ai_composite::on_create(), ai::ai_default_rca::candidate_action_evaluation_loop::on_create(), ai::formula_ai::on_create(), ai::readonly_context_impl::on_readonly_context_create(), terrain_builder::parse_config(), gui2::parse_linked_group_definitions(), ai::configuration::parse_side_config(), time_of_day::parse_times(), unit_animation::particle::particle(), play_controller::play_controller(), unit_type::possible_traits(), saved_game::post_scenario_generation(), gui2::dialogs::campaign_difficulty::pre_show(), gui2::dialogs::help_browser::pre_show(), gui2::dialogs::unit_advance::pre_show(), prepare_animation(), team_builder::prepare_units(), achievements::process_achievements_file(), mp::lobby_info::process_gamelist(), mp::lobby_info::process_gamelist_diff_impl(), wb::manager::process_network_data(), mp::lobby_info::process_userlist(), preferences::progress_achievement(), purge_dir(), wesnothd::ban_manager::read(), preproc_define::read(), actions::undo_list::read(), addon_info::read(), gui2::builder_window::read(), map_labels::read(), statistics_record::campaign_stats_t::read(), read_addons_list(), statistics_record::read_battle_result_map(), statistics_record::read_by_cth_map(), schema_validation::schema_validator::read_config_file(), actions::undo_action::read_event_vector(), game_events::manager::read_scenario(), ai::default_recruitment::recruitment_aspect::recruitment_aspect(), replay::redo(), unit_type::resistance_against(), gui2::toggle_button_definition::resolution::resolution(), gui2::toggle_panel_definition::resolution::resolution(), statistics_record::scenario_stats_t::scenario_stats_t(), help::section_is_referenced(), saved_game::set_data(), saved_game::set_defaults(), game_events::wmi_manager::set_menu_items(), theme::set_resolution(), ng::scenario::set_sides(), preferences::set_sub_achievement(), show_deprecated_warnings(), attack_type::special_active_impl(), gui2::styled_widget_definition::styled_widget_definition(), help::topic_is_referenced(), saved_game::unify_controllers(), unit_animation::unit_animation(), gui2::dialogs::mp_match_history::update_display(), gui2::dialogs::mp_options_helper::update_options_data_map_menu_button(), desktop::user_bookmarks(), verify(), schema_validation::wml_tag::wml_tag(), write_difference(), and scoped_wml_variable::~scoped_wml_variable().
config::const_child_itors config::child_range | ( | config_key_type | key | ) | const |
Definition at line 289 of file config.cpp.
void config::clear | ( | ) |
Definition at line 835 of file config.cpp.
References children_, ordered_children, and values_.
Referenced by attack_type::apply_modification(), BOOST_AUTO_TEST_CASE(), unit_type::build_help_index(), ai::config_value_translator< config >::cfg_to_value(), unit_animation_component::choose_animation(), saved_game::clear(), saved_game::convert_to_start_save(), savegame::save_index_class::data(), addons_client::download_addon(), gui2::dialogs::attack_predictions::draw_hp_graph(), saved_game::expand_scenario(), get_addon_install_info(), campaignd::server::handle_upload(), unit::init(), ai::configuration::init(), luaW_toconfig(), ng::side_engine::new_config(), operator=(), preferences::options(), ai::configuration::parse_side_config(), turn_info::process_network_data_from_reader(), ng::random_map::random_map(), savegame::read_save_file(), ai::default_recruitment::recruitment::remove_job_if_no_blocker(), saved_game::remove_snapshot(), addons_client::request_addons_list(), wb::manager::send_network_data(), addons_client::send_request(), saved_game::set_data(), set_global_variable(), turn_info::sync_network(), ai::formula_ai::to_config(), carryover::transfer_all_gold_to(), carryover_info::transfer_to(), game_events::wml_menu_item::update_command(), campaignd::server::validate_addon(), game_events::WML_HANDLER_FUNCTION(), unit_formula_manager::write(), and ~config().
void config::clear_all_children | ( | ) |
Definition at line 843 of file config.cpp.
References children_, and ordered_children.
void config::clear_attributes | ( | ) |
Definition at line 850 of file config.cpp.
References values_.
|
inline |
Definition at line 644 of file config.hpp.
References clear_children_impl().
Referenced by schema_validation::wml_tag::add_filter(), unit::apply_modifications(), persist_file_context::clear_var(), savegame::convert_old_saves_1_11_0(), savegame::convert_old_saves_1_13_0(), create_side_engine(), unit_type::create_sub_type(), ai::configuration::expand_simplified_aspects(), savegame::extract_summary_from_config(), help::generate_contents(), campaignd::server::handle_upload(), unit::init(), ai::holder::init(), lua_wml::intf_wml_merge(), campaignd::server::load_config(), ng::side_engine::new_config(), ai::default_recruitment::recruitment_aspect::recruitment_aspect(), preferences::save_acquaintances(), hotkey::save_hotkeys(), persist_file_context::set_var(), gui2::dialogs::team_mode_controller::show_list(), ai::formula_ai::to_config(), and unit::write().
|
private |
Definition at line 572 of file config.cpp.
References children_, i, and ordered_children.
Referenced by append_children_by_move(), clear_children(), merge_children(), and merge_children_by_attribute().
void config::clear_diff_track | ( | const config & | diff | ) |
Clear any tracking info from a previous apply_diff call with tracking.
This also removes the nodes that are to be deleted, in effect making apply_diff(c, true); clear_diff_tracking(c); equivalent to apply_diff(c, false);
Definition at line 1094 of file config.cpp.
References child_range(), children_, diff_track_attribute, i, utf8::index(), p, remove_attribute(), and remove_child().
Referenced by mp::lobby_info::process_gamelist_diff_impl().
|
inline |
Copies attributes that exist in the source config.
from | Source config to copy attributes from. |
keys | Attribute names. |
Definition at line 588 of file config.hpp.
References get().
|
inline |
Copies or deletes attributes to match the source config.
Attributes that do not exist in the source are fully erased rather than set to the unspecified/default attribute value.
from | Source config to copy attributes from. |
keys | Attribute names. |
Definition at line 608 of file config.hpp.
References has_attribute(), and remove_attribute().
Referenced by campaignd::server::handle_upload().
std::string config::debug | ( | ) | const |
Definition at line 1248 of file config.cpp.
Referenced by game_events::manager::add_event_handler_from_wml(), replay::add_synced_command(), synced_context::ask_server_choice(), set_scontext_synced::do_final_checkup(), do_replay_handle(), help::generate_era_sections(), team_builder::handle_unit(), lua_map_generator::lua_map_generator(), turn_info::process_network_data(), playturn_network_adapter::read_from_network(), gui2::dialogs::mp_match_history::request_history(), user_choice_manager::search_in_replay(), mp_game_settings::update_addon_requirements(), and game_events::WML_HANDLER_FUNCTION().
bool config::empty | ( | ) | const |
Definition at line 856 of file config.cpp.
References children_, and values_.
Referenced by unit_animation::add_anims(), unit::add_modification(), schema_validation::wml_tag::add_switch(), ng::campaign::can_launch_game(), saved_game::check_require_scenario(), persist_file_context::clear_var(), ng::connect_engine::connect_engine(), savegame::convert_old_saves_1_11_0(), savegame::convert_old_saves_1_13_0(), default_map_generator_job::default_generate_map(), gui2::dialogs::story_viewer::display_part(), gui2::dialogs::game_load::display_savegame_internal(), unit_abilities::effect::effect(), game_events::event_handler::empty(), movetype::terrain_info::data::empty(), unit_filter::empty(), vconfig::empty(), gui2::dialogs::mp_lobby::enter_game(), unit_filter_impl::unit_filter_compound::fill(), game_events::wml_menu_item::finish_handler(), campaignd::format_addon_feedback_url(), gui2::dialogs::generate_difficulty_config(), get_heal_sound(), saved_game::get_replay_starting_point(), saved_game::get_scenario_id(), ai::lua_ai_action_handler::handle(), campaignd::server::handle_request_campaign(), campaignd::server::handle_request_campaign_list(), unit::init(), game_events::wml_menu_item::init_handler(), game_lua_kernel::initialize(), installed_addons_and_versions(), game_config_manager::load_addons_cfg(), campaignd::server::load_config(), wesnothd::server::load_config(), game_config_manager::load_game_config_with_loadscreen(), synced_checkup::local_checkup(), ignored_checkup::local_checkup(), mp_debug_checkup::local_checkup(), schema_validation::wml_condition::matches(), ng::side_engine::new_config(), ai::configuration::parse_side_config(), unit_animation::particle::particle(), playsingle_controller::play_scenario(), playsingle_controller::play_scenario_init(), gui2::dialogs::mp_create_game::post_show(), gui2::dialogs::faction_select::pre_show(), playturn_network_adapter::read(), read_config(), playturn_network_adapter::read_from_network(), savegame::read_save_file(), refresh_addon_version_info_cache(), display::refresh_report(), persist_file_context::save_context(), wb::manager::send_network_data(), about::set_about(), lua_gui2::show_message_dialog(), gui2::dialogs::show_wml_message(), ai::lua_aspect< T >::to_config(), ai::aspect_attacks_lua::to_config(), saved_game::to_config(), game_events::wml_menu_item::to_config(), carryover_info::transfer_all_to(), replay::undo_cut(), ng::connect_engine::update_and_send_diff(), game_events::wml_menu_item::update_command(), gui2::dialogs::mp_create_game::update_details(), hotkey::wml_hotkey_record::wml_hotkey_record(), team::team_info::write(), movetype::terrain_info::data::write(), saved_game::write_config(), and game_events::manager::write_events().
config::all_children_iterator config::erase | ( | const all_children_iterator & | i | ) |
Definition at line 644 of file config.cpp.
References i, and remove_child().
Referenced by find_ref(), unit::generate_traits(), vconfig::get_parsed_config(), intf_append_ai(), unit::remove_ability_by_attribute(), unit::remove_ability_by_id(), and game_lua_kernel::save_game().
optional_config config::find_child | ( | config_key_type | key, |
const std::string & | name, | ||
const std::string & | value | ||
) |
Returns the first child of tag key with a name attribute containing value.
Definition at line 791 of file config.cpp.
References children_, DBG_CF, and i.
Referenced by contains_hashlist(), savegame::save_index_class::data(), default_map_generator_job::default_generate_map(), saved_game::expand_mp_options(), find_child(), find_mandatory_child(), ng::flg_manager::flg_manager(), help::generate_contents_links(), inherit_scenario(), game_config_manager::load_game_config(), help::parse_config_internal(), place_village(), campaignd::support_translation(), and write_difference().
|
inline |
Definition at line 629 of file config.hpp.
References find_child().
config & config::find_mandatory_child | ( | config_key_type | key, |
const std::string & | name, | ||
const std::string & | value | ||
) |
Definition at line 817 of file config.cpp.
References find_child().
Referenced by ng::depcheck::manager::change_era_dialog(), ng::depcheck::manager::change_scenario_dialog(), editor::context_manager::create_default_context(), default_map_generator_job::default_generate_map(), ng::depcheck::manager::disable_mods_dialog(), ng::depcheck::manager::does_conflict(), ng::depcheck::manager::does_require(), ng::depcheck::manager::enable_mods_dialog(), gui2::dialogs::game_load::evaluate_summary_string(), ng::depcheck::manager::find_name_for(), ng::depcheck::manager::get_required(), and editor::context_manager::new_map().
const config & config::find_mandatory_child | ( | config_key_type | key, |
const std::string & | name, | ||
const std::string & | value | ||
) | const |
Definition at line 825 of file config.cpp.
References find_child().
size_t config::find_total_first_of | ( | config_key_type | key, |
std::size_t | start = 0 |
||
) |
Definition at line 503 of file config.cpp.
References config::any_child::key, ordered_begin(), ordered_children, ordered_end(), and editor::start().
Referenced by saved_game::expand_mp_events().
const config::attribute_value * config::get | ( | config_key_type | key | ) | const |
Returns a pointer to the attribute with the given key or nullptr if it does not exist.
Definition at line 691 of file config.cpp.
Referenced by unit_creator::add_unit(), unit::apply_builtin_effect(), unit_type::apply_scenario_fix(), BOOST_AUTO_TEST_CASE(), copy_attributes(), unit_abilities::effect::effect(), unit::expire_modifications(), frame_builder::frame_builder(), gui2::dialogs::generate_user_description(), get_addon_pbl_info(), unit::init(), lua_wml::intf_load_wml(), lua_wml::intf_parse_wml(), game_config_manager::load_addons_cfg(), game_config::load_config(), game_config_manager::load_game_config(), editor::map_context::load_scenario(), matches(), ai::target_unit_goal::on_create(), ai::protect_goal::on_create(), ai::configuration::parse_side_config(), team_builder::previous_recruits(), schema_validation::schema_validator::read_config_file(), saved_game::set_defaults(), schema_validation::schema_validator::validate(), and game_events::WML_HANDLER_FUNCTION().
const config::attribute_value & config::get_deprecated_attribute | ( | config_key_type | old_key, |
const std::string & | in_tag, | ||
DEP_LEVEL | level, | ||
const std::string & | message | ||
) | const |
Get a deprecated attribute without a direct substitute, and log a deprecation message.
old_key | The deprecated attribute to return if present |
in_tag | The name of the tag this attribute appears in |
level | The deprecation level |
message | An explanation of the deprecation, possibly mentioning an alternative |
Definition at line 736 of file config.cpp.
References deprecated_message(), i, game_config::images::level, and values_.
optional_config_impl< const config > config::get_deprecated_child | ( | config_key_type | old_key, |
const std::string & | in_tag, | ||
DEP_LEVEL | level, | ||
const std::string & | message | ||
) | const |
Get a deprecated child and log a deprecation message.
old_key | The deprecated child to return if present |
in_tag | The name of the tag this child appears in |
level | The deprecation level |
message | An explanation of the deprecation, possibly mentioning an alternative |
Definition at line 420 of file config.cpp.
References deprecated_message(), game_config::images::level, and optional_child().
config::const_child_itors config::get_deprecated_child_range | ( | config_key_type | old_key, |
const std::string & | in_tag, | ||
DEP_LEVEL | level, | ||
const std::string & | message | ||
) | const |
Get a deprecated child rangw and log a deprecation message.
old_key | The deprecated child to return if present |
in_tag | The name of the tag this child appears in |
level | The deprecation level |
message | An explanation of the deprecation, possibly mentioning an alternative |
Definition at line 431 of file config.cpp.
References children_, deprecated_message(), i, game_config::images::level, and p.
A function to get the differences between this object, and 'c', as another config object.
I.e. calling cfg2.apply_diff(cfg1.get_diff(cfg2)) will make cfg2 identical to cfg1.
Definition at line 917 of file config.cpp.
References c.
Referenced by get_diff(), lua_wml::intf_wml_diff(), process_command_args(), and ng::connect_engine::update_and_send_diff().
Definition at line 924 of file config.cpp.
References a, add_child(), b, c, children_, get_diff(), and values_.
const config::attribute_value & config::get_old_attribute | ( | config_key_type | key, |
const std::string & | old_key, | ||
const std::string & | in_tag, | ||
const std::string & | message = "" |
||
) | const |
Function to handle backward compatibility Get the value of key and if missing try old_key and log a deprecation message.
key | The non-deprecated attribute to return |
old_key | The deprecated attribute to return if key is missing |
in_tag | The name of the tag these attributes appear in |
message | An explanation of the deprecation, to be output if old_key is present. |
Definition at line 714 of file config.cpp.
References deprecated_message(), has_attribute(), i, INDEFINITE, wfl::msg(), and values_.
Referenced by default_map_generator_job::default_generate_map().
const config::attribute_value & config::get_or | ( | const config_key_type | key, |
const config_key_type | default_key | ||
) | const |
Chooses a value.
If the value specified by key is blank, then default_key is chosen instead. If both values are blank or not set, then an empty value is returned.
Definition at line 697 of file config.cpp.
References config_attribute_value::blank(), and operator[]().
Referenced by gender_value().
bool config::has_attribute | ( | config_key_type | key | ) | const |
Definition at line 159 of file config.cpp.
References values_.
Referenced by name_generator_factory::add_name_generator_from_config(), ai::aspect_attacks_lua::aspect_attacks_lua(), storyscreen::background_layer::background_layer(), gui2::implementation::builder_addon_list::builder_addon_list(), ng::campaign::campaign(), mp::game_info::check_addon_version_compatibility(), persist_file_context::clear_var(), copy_or_remove_attributes(), default_map_generator_job::default_generate_map(), ai::engine_lua::do_parse_candidate_action_from_config(), ng::depcheck::manager::does_conflict(), ai::configuration::expand_simplified_aspects(), gui2::dialogs::mp_join_game::fetch_game_config(), unit_creator::find_location(), frame_builder::frame_builder(), schema_validation::wml_type::from_config(), get_addon_tracking_info(), ai::engine_lua::get_engine_code(), get_old_attribute(), wfl::config_callable::get_value(), ai::vector_property_handler< T >::handle_change(), ai::aspect_property_handler< T >::handle_change(), team::team_info::handle_legacy_share_vision(), vconfig::has_attribute(), unit::init(), intf_default_generate(), intf_default_generate_height_map(), theme::label::label(), ai::lua_aspect< T >::lua_aspect(), ai::lua_candidate_action_wrapper_external::lua_candidate_action_wrapper_external(), ai::lua_goal::lua_goal(), lua_map_generator::lua_map_generator(), ng::side_engine::new_config(), ai::target_location_goal::on_create(), gui2::dialogs::mp_lobby::pre_show(), turn_info::process_network_data(), ng::random_map::random_map(), wesnothd::banned::read(), team::team_info::read(), preproc_define::read_argument(), game_events::event_handler::read_filters(), game_events::filter_formula::serialize(), persist_file_context::set_var(), lua_gui2::show_message_dialog(), theme::status_item::status_item(), pathfind::teleport_group::teleport_group(), tod_manager::tod_manager(), carryover_info::transfer_all_to(), schema_validation::wml_key::wml_key(), game_events::wml_menu_item::wml_menu_item(), schema_validation::wml_tag::wml_tag(), and statistics_record::write_str_int_map().
bool config::has_child | ( | config_key_type | key | ) | const |
Determine whether a config has a child or not.
key | The key of the child to find. |
Definition at line 321 of file config.cpp.
Referenced by unit::ability_affects_weapon(), replay::add_chat_message_location(), replay::add_config(), schema_validation::wml_tag::add_filter(), replay::add_start_if_not_there_yet(), schema_validation::wml_tag::add_switch(), unit::apply_builtin_effect(), unit::apply_modifications(), synced_context::ask_server_choice(), gui2::implementation::builder_grid_listbox::builder_grid_listbox(), gui2::implementation::builder_horizontal_listbox::builder_horizontal_listbox(), gui2::implementation::builder_listbox::builder_listbox(), gui2::implementation::builder_size_lock::builder_size_lock(), gui2::implementation::builder_stacked_widget::builder_stacked_widget(), persist_file_context::clear_var(), savegame::convert_old_saves_1_11_0(), savegame::convert_old_saves_1_13_0(), ng::create_engine::current_level_has_side_data(), default_map_generator_job::default_generate_map(), gui2::dialogs::mp_options_helper::display_custom_options(), do_replay_handle(), saved_game::expand_mp_events(), ai::configuration::expand_simplified_aspects(), savegame::extract_summary_from_config(), gui2::dialogs::mp_join_game::fetch_game_config(), schema_validation::wml_type::from_config(), persist_context::get_node(), wfl::event_callable::get_value(), wfl::config_callable::get_value(), persist_file_context::get_var(), vconfig::has_child(), unit::init(), addons_client::install_addon(), intf_append_ai(), campaignd::server::load_config(), ai::configuration::parse_side_config(), turn_info::process_network_data(), ng::random_map::random_map(), game_data::read_phase(), ai::default_recruitment::recruitment_aspect::recruitment_aspect(), user_choice_manager::search_in_replay(), ng::scenario::set_sides(), attack_type::special_active_impl(), addons_client::upload_addon(), and desktop::user_bookmarks().
std::string config::hash | ( | ) | const |
Definition at line 1291 of file config.cpp.
References all_children_range(), c, hash_str(), i, and values_.
Referenced by wfl::config_callable::do_compare(), get_checksum(), gui2::dialogs::mp_create_game::post_show(), ng::create_engine::prepare_for_other(), and game_config_manager::set_multiplayer_hashes().
void config::inherit_attributes | ( | const config & | c | ) |
Merge the attributes of config 'c' into this config, preserving this config's values.
Definition at line 1193 of file config.cpp.
References config_attribute_value::blank(), and values_.
Referenced by inherit_scenario().
void config::inherit_from | ( | const config & | c | ) |
Merge config 'c' into this config, preserving this config's values.
Definition at line 1181 of file config.cpp.
References c, merge_with(), and swap().
Referenced by unit_type::create_sub_type().
|
inline |
Inserts an attribute into the config.
key | The name of the attribute |
value | The attribute value |
Definition at line 559 of file config.hpp.
References operator[]().
Referenced by detail::config_construct_unpacker< K, V, Rest... >::visit().
config & config::mandatory_child | ( | config_key_type | key, |
const std::string & | parent | ||
) |
Returns a mandatory child node.
If the child is not found a wml_exception is thrown.
key | The key of the child item to return. |
parent | The section in which the child should reside. This is only used for error reporting. |
Definition at line 353 of file config.cpp.
References children_.
const config & config::mandatory_child | ( | config_key_type | key, |
const std::string & | parent | ||
) | const |
Returns a mandatory child node.
If the child is not found a wml_exception is thrown.
key | The key of the child item to return. |
parent | The section in which the child should reside. This is only used for error reporting. |
Definition at line 362 of file config.cpp.
References children_.
config & config::mandatory_child | ( | config_key_type | key, |
int | n = 0 |
||
) |
Returns the nth child with the given key, or throws an error if there is none.
Definition at line 371 of file config.cpp.
Referenced by unit::ability_affects_weapon(), schema_validation::wml_tag::add_filter(), schema_validation::wml_tag::add_switch(), ai::protect_goal::add_targets(), synced_context::ask_server_choice(), BOOST_AUTO_TEST_CASE(), replay::build_chat_log(), gui2::implementation::builder_grid_listbox::builder_grid_listbox(), gui2::implementation::builder_horizontal_listbox::builder_horizontal_listbox(), gui2::implementation::builder_listbox::builder_listbox(), gui2::implementation::builder_size_lock::builder_size_lock(), gui2::implementation::builder_stacked_widget::builder_stacked_widget(), persist_file_context::clear_var(), ng::connect_engine::connect_engine(), savegame::convert_old_saves_1_11_0(), actions::undo_list::create_action(), create_side_engine(), default_map_generator_job::default_generate_map(), wb::side_actions::execute_net_cmd(), saved_game::expand_mp_events(), saved_game::expand_random_scenario(), unit::expire_modifications(), savegame::extract_summary_from_config(), gui2::dialogs::mp_join_game::fetch_game_config(), schema_validation::wml_type::from_config(), test_utils::game_config_manager::game_config_manager(), variable_info_implementation::vi_policy_create::get_child_at(), get_global_variable(), persist_context::get_node(), wfl::event_callable::get_value(), persist_file_context::get_var(), gui2::gui_definition::gui_definition(), intf_append_ai(), ng::depcheck::manager::is_modification_active(), campaignd::server::load_config(), synced_checkup::local_checkup(), pathfind::manager::manager(), variable_info_implementation::replace_range_h::operator()(), ai::configuration::parse_side_config(), gui2::dialogs::campaign_difficulty::post_show(), gui2::dialogs::mp_join_game::pre_show(), mp::lobby_info::process_gamelist(), mp::lobby_info::process_gamelist_diff_impl(), turn_info::process_network_data(), ng::random_map::random_map(), ai::default_recruitment::recruitment_aspect::recruitment_aspect(), display::refresh_report(), addons_client::request_addons_list(), gui2::dialogs::mp_match_history::request_history(), user_choice_manager::search_in_replay(), set_global_variable(), gui2::dialogs::mp_join_game::show_flg_select(), ng::depcheck::manager::try_era_by_index(), ng::depcheck::manager::try_modification_by_index(), ng::depcheck::manager::try_scenario_by_index(), gui2::dialogs::mp_match_history::update_display(), actions::undo::move_action::write(), and actions::undo::recruit_action::write().
const config & config::mandatory_child | ( | config_key_type | key, |
int | n = 0 |
||
) | const |
Returns the nth child with the given key, or throws an error if there is none.
Definition at line 380 of file config.cpp.
bool config::matches | ( | const config & | filter | ) | const |
Definition at line 1202 of file config.cpp.
References all_children_range(), attribute_range(), child_range(), get(), i, config_attribute_value::str(), and utils::wildcard_string_match().
Referenced by lua_wml::intf_wml_matches_filter(), schema_validation::wml_condition::matches(), and attack_type::special_active_impl().
void config::merge_attributes | ( | const config & | cfg | ) |
Definition at line 748 of file config.cpp.
References values_.
Referenced by do_resolve_rects(), expand_partialresolution(), lua_wml::intf_wml_merge(), and merge_with().
void config::merge_children | ( | const std::string & | key | ) |
All children with the given key will be merged into the first element with that key.
Definition at line 244 of file config.cpp.
References add_child(), append(), child_count(), child_range(), and clear_children_impl().
void config::merge_children_by_attribute | ( | const std::string & | key, |
const std::string & | attribute | ||
) |
All children with the given key and with equal values of the specified attribute will be merged into the element with that key and that value of the attribute.
Definition at line 259 of file config.cpp.
References add_child(), child_count(), child_range(), clear_children_impl(), and i.
Referenced by ai::configuration::parse_side_config().
void config::merge_with | ( | const config & | c | ) |
Merge config 'c' into this config, overwriting this config's values.
Definition at line 1130 of file config.cpp.
References add_child(), c, i, merge_attributes(), ordered_children, and remove_child().
Referenced by inherit_from(), lua_wml::intf_wml_merge(), variable_info_implementation::merge_range_h::operator()(), ai::holder::to_config(), game_state::write(), movetype::terrain_info::data::write(), and movetype::resistances::write().
Definition at line 124 of file config.cpp.
Definition at line 106 of file config.cpp.
References swap().
config::attribute_value & config::operator[] | ( | config_key_type | key | ) |
Returns a reference to the attribute with the given key.
Creates it if it does not exist.
Definition at line 703 of file config.cpp.
References values_.
Referenced by get_or(), insert(), and operator[]().
const config::attribute_value & config::operator[] | ( | config_key_type | key | ) | const |
Returns a reference to the attribute with the given key or to a dummy empty attribute if it does not exist.
Definition at line 680 of file config.cpp.
|
inline |
Returns a reference to the attribute with the given key.
Creates it if it does not exist.
Definition at line 504 of file config.hpp.
References operator[]().
|
inline |
Returns a reference to the attribute with the given key or to a dummy empty attribute if it does not exist.
Definition at line 513 of file config.hpp.
References operator[]().
|
inline |
Returns a reference to the attribute with the given key.
Creates it if it does not exist.
Definition at line 486 of file config.hpp.
References operator[]().
|
inline |
Returns a reference to the attribute with the given key or to a dummy empty attribute if it does not exist.
Definition at line 495 of file config.hpp.
References operator[]().
optional_config config::optional_child | ( | config_key_type | key, |
int | n = 0 |
||
) |
Euivalent to mandatory_child, but returns an empty optional if the nth child was not found.
Definition at line 389 of file config.cpp.
Referenced by unit::ability_active(), unit::ability_affects_self(), ai::component_manager::add_component(), campaignd::add_license(), theme::add_object(), replay_controller::add_replay_theme(), ai::target_unit_goal::add_targets(), ai::protect_goal::add_targets(), unit::apply_builtin_effect(), apply_diff(), attack_type::apply_modification(), ai::ai_default_rca::aspect_attacks::aspect_attacks(), team::build(), unit_type::build_help_index(), gui2::implementation::builder_grid_listbox::builder_grid_listbox(), gui2::implementation::builder_horizontal_listbox::builder_horizontal_listbox(), gui2::implementation::builder_listbox::builder_listbox(), gui2::implementation::builder_matrix::builder_matrix(), gui2::implementation::builder_multi_page::builder_multi_page(), gui2::implementation::builder_panel::builder_panel(), gui2::implementation::builder_scrollbar_panel::builder_scrollbar_panel(), gui2::implementation::builder_slider::builder_slider(), gui2::implementation::builder_toggle_panel::builder_toggle_panel(), ai::candidate_action::candidate_action(), wfl::candidate_action_with_filters::candidate_action_with_filters(), ai::config_value_translator< terrain_filter >::cfg_to_value(), ai::config_value_translator< config >::cfg_to_value(), ai::component_manager::change_component(), vconfig::child(), ai::composite_aspect< T >::composite_aspect(), default_map_generator::config_name(), addons_client::connect(), ng::connect_engine::connect_engine(), savegame::convert_old_saves_1_11_0(), savegame::convert_old_saves_1_13_0(), savegame::convert_old_saves_1_13_1(), savegame::loadgame::copy_era(), gui2::create_widget_builder(), default_map_generator_job::default_generate_map(), addons_client::delete_remote_addon(), do_replay_handle(), savegame::extract_summary_from_config(), gui2::dialogs::mp_join_game::fetch_game_config(), unit_abilities::filter_base_matches(), unit_type::get_ability_list(), get_addon_install_info(), variable_info_implementation::vi_policy_throw::get_child_at(), variable_info_implementation::vi_policy_const::get_child_at(), ng::flg_manager::get_default_faction(), get_deprecated_child(), gui2::dialogs::mp_join_game::get_scenario(), campaignd::server::handle_upload(), game_lua_kernel::impl_current_get(), unit::init(), ai::configuration::init(), campaignd::server::load_config(), wesnothd::server::load_config(), game_config::load_config(), font::load_font_config(), matches_ability_filter(), wb::move::move(), ai::target_location_goal::on_create(), ai::protect_goal::on_create(), ai::formula_ai::on_create(), game_events::filter_attack::operator()(), help::parse_config(), cave_map_generator::cave_map_generator_job::place_chamber(), game_events::wml_event_pump::process_event(), wb::manager::process_network_data(), turn_info::process_network_data(), wesnothd::ban_manager::read(), preproc_define::read(), statistics_record::stats_t::read(), unit_type_data::read_hide_help(), addons_client::request_distribution_terms(), gui2::addon_list_definition::resolution::resolution(), gui2::multi_page_definition::resolution::resolution(), gui2::size_lock_definition::resolution::resolution(), gui2::stacked_widget_definition::resolution::resolution(), gui2::window_definition::resolution::resolution(), lua_kernel_base::run_lua_tag(), ng::connect_engine::scenario(), help::section_is_referenced(), saved_game::set_data(), gui2::dialogs::mp_join_game::show_flg_select(), ng::side_engine::side_engine(), theme::status_item::status_item(), help::topic_is_referenced(), gui2::implementation::tree_node::tree_node(), unit_type::unit_type(), addons_client::update_last_error(), addons_client::upload_addon(), campaignd::server::validate_addon(), and gui2::builder_window::window_resolution::window_resolution().
optional_const_config config::optional_child | ( | config_key_type | key, |
int | n = 0 |
||
) | const |
Euivalent to mandatory_child, but returns an empty optional if the nth child was not found.
Definition at line 394 of file config.cpp.
config::all_children_iterator config::ordered_begin | ( | ) |
Definition at line 899 of file config.cpp.
References ordered_children.
config::const_all_children_iterator config::ordered_begin | ( | ) | const |
Definition at line 871 of file config.cpp.
References ordered_children.
Referenced by gui2::create_widget_builder(), do_replay_handle(), find_total_first_of(), intf_append_ai(), vconfig::ordered_begin(), playturn_network_adapter::read(), unit::remove_ability_by_attribute(), unit::remove_ability_by_id(), and game_lua_kernel::save_game().
config::const_all_children_iterator config::ordered_cbegin | ( | ) | const |
Definition at line 876 of file config.cpp.
References ordered_children.
config::const_all_children_iterator config::ordered_cend | ( | ) | const |
Definition at line 886 of file config.cpp.
References ordered_children.
config::all_children_iterator config::ordered_end | ( | ) |
Definition at line 904 of file config.cpp.
References ordered_children.
config::const_all_children_iterator config::ordered_end | ( | ) | const |
Definition at line 881 of file config.cpp.
References ordered_children.
Referenced by find_total_first_of(), intf_append_ai(), vconfig::ordered_end(), unit::remove_ability_by_attribute(), unit::remove_ability_by_id(), and game_lua_kernel::save_game().
void config::recursive_clear_value | ( | config_key_type | key | ) |
Definition at line 609 of file config.cpp.
References children_, p, and values_.
Referenced by get_checksum().
void config::remove_attribute | ( | config_key_type | key | ) |
Definition at line 164 of file config.cpp.
References values_.
Referenced by unit_creator::add_unit(), clear_diff_track(), persist_file_context::clear_var(), savegame::convert_old_saves_1_13_1(), copy_or_remove_attributes(), ai::configuration::expand_simplified_aspects(), team_builder::handle_leader(), ng::side_engine::new_config(), playturn_network_adapter::read_from_network(), remove_attributes(), saved_game::set_defaults(), persist_file_context::set_var(), ng::side_engine::side_engine(), editor::map_context::to_config(), and game_events::WML_HANDLER_FUNCTION().
|
inline |
Definition at line 575 of file config.hpp.
References remove_attribute().
Referenced by carryover::carryover(), create_side_engine(), and ng::side_engine::new_config().
void config::remove_child | ( | config_key_type | key, |
std::size_t | index | ||
) |
Definition at line 649 of file config.cpp.
References children_, ERR_CF, i, and utf8::index().
Referenced by apply_diff(), clear_diff_track(), persist_file_context::clear_var(), erase(), saved_game::expand_mp_events(), unit::expire_modifications(), merge_with(), variable_info_implementation::replace_range_h::operator()(), ai::configuration::parse_side_config(), remove_children(), and desktop::remove_user_bookmark().
|
private |
Removes the child at position pos of l.
Definition at line 620 of file config.cpp.
References utf8::index(), ordered_children, and p.
void config::remove_children | ( | config_key_type | key, |
std::function< bool(const config &)> | p = [](config){return true;} |
||
) |
Removes all children with tag key for which p returns true.
Definition at line 660 of file config.cpp.
References children_, utf8::index(), p, and remove_child().
Referenced by savegame::save_index_class::clean_up_index(), team_builder::handle_leader(), campaignd::server::handle_upload(), and savegame::save_index_class::remove().
void config::splice_children | ( | config & | src, |
const std::string & | key | ||
) |
Moves all the children with tag key from src to this.
Definition at line 585 of file config.cpp.
References children_, and ordered_children.
Referenced by inherit_scenario(), and game_lua_kernel::save_game().
void config::swap | ( | config & | cfg | ) |
Definition at line 1344 of file config.cpp.
References children_, ordered_children, and values_.
Referenced by replay_recorder_base::append_config(), gui2::dialogs::mp_join_game::fetch_game_config(), inherit_from(), variable_info_implementation::replace_range_h::operator()(), variable_info_implementation::merge_range_h::operator()(), operator=(), playturn_network_adapter::read(), read_config(), wesnothd_connection::receive_data(), saved_game::set_carryover_sides_start(), saved_game::set_data(), saved_game::set_scenario(), saved_game::set_snapshot(), swap(), replay_recorder_base::swap(), saved_game::swap(), carryover::transfer_all_gold_to(), and replay::undo_cut().
|
static |
Definition at line 154 of file config.cpp.
References valid_tag().
Referenced by variable_info_implementation::get_variable_key_visitor< V >::get_variable_key_visitor(), luaW_toconfig(), and write_internal().
|
static |
Definition at line 131 of file config.cpp.
References c.
Referenced by luaW_toconfig(), valid_attribute(), and write_internal().
bool config::validate_wml | ( | ) | const |
Returns true if this object represents valid WML, i.e.
can be saved to disk and again loaded by the WML parser.
Definition at line 1356 of file config.cpp.
References children_.
Referenced by lua_wml::intf_wml_valid().
Definition at line 1370 of file config.cpp.
|
private |
A list of all children of this node.
Definition at line 929 of file config.hpp.
Referenced by add_child(), add_child_at(), append_children(), apply_diff(), child_count(), child_or_add(), child_or_empty(), child_range(), clear(), clear_all_children(), clear_children_impl(), clear_diff_track(), empty(), find_child(), get_deprecated_child_range(), get_diff(), has_child(), mandatory_child(), optional_child(), recursive_clear_value(), remove_child(), remove_children(), splice_children(), swap(), and validate_wml().
|
static |
The name of the attribute used for tracking diff changes.
Definition at line 832 of file config.hpp.
Referenced by apply_diff(), clear_diff_track(), and mp::lobby_info::process_gamelist_diff_impl().
|
private |
Definition at line 931 of file config.hpp.
Referenced by add_child(), add_child_at(), add_child_at_total(), all_children_count(), all_children_range(), append_children(), clear(), clear_all_children(), clear_children_impl(), find_total_first_of(), merge_with(), ordered_begin(), ordered_cbegin(), ordered_cend(), ordered_end(), remove_child(), splice_children(), and swap().
|
private |
All the attributes of this node.
Definition at line 926 of file config.hpp.
Referenced by append(), append_attributes(), apply_diff(), attribute_count(), attribute_range(), clear(), clear_attributes(), empty(), get(), get_deprecated_attribute(), get_diff(), get_old_attribute(), has_attribute(), hash(), inherit_attributes(), merge_attributes(), operator[](), recursive_clear_value(), remove_attribute(), and swap().