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) |
Equivalent 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 |
Equivalent 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 range 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... | |
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, config_key_type 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, config_key_type key) |
Adds children from cfg. More... | |
void | append_children_by_move (config &cfg, config_key_type 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 (config_key_type key) |
All children with the given key will be merged into the first element with that key. More... | |
void | merge_children_by_attribute (config_key_type key, config_key_type 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... | |
auto | child_name_view () const |
A non-owning view over all child tag names. 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 162 of file config.hpp.
typedef boost::iterator_range<all_children_iterator> config::all_children_itors |
Definition at line 764 of file config.hpp.
typedef boost::iterator_range<attribute_iterator> config::attr_itors |
Definition at line 364 of file config.hpp.
typedef attribute_map::value_type config::attribute |
Definition at line 303 of file config.hpp.
typedef std::map< std::string , attribute_value , std::less<> > config::attribute_map |
Definition at line 302 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 296 of file config.hpp.
typedef boost::iterator_range<child_iterator> config::child_itors |
Definition at line 286 of file config.hpp.
typedef std::vector<std::unique_ptr<config> > config::child_list |
Definition at line 196 of file config.hpp.
typedef std::map<std::string, child_list, std::less<> > config::child_map |
Definition at line 197 of file config.hpp.
typedef boost::iterator_range<const_all_children_iterator> config::const_all_children_itors |
Definition at line 765 of file config.hpp.
typedef boost::iterator_range<const_attribute_iterator> config::const_attr_itors |
Definition at line 363 of file config.hpp.
typedef boost::iterator_range<const_child_iterator> config::const_child_itors |
Definition at line 287 of file config.hpp.
config::config | ( | ) |
Definition at line 75 of file config.cpp.
Referenced by add_child().
config::config | ( | const config & | cfg | ) |
Definition at line 82 of file config.cpp.
References append_children().
config::config | ( | config && | cfg | ) |
Definition at line 114 of file config.cpp.
|
explicit |
Creates a config object with an empty child of name child.
Definition at line 90 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 957 of file config.hpp.
config::~config | ( | ) |
Definition at line 98 of file config.cpp.
References clear().
config & config::add_child | ( | config_key_type | key | ) |
Definition at line 439 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(), saved_game::check_require_scenario(), child_or_add(), replay::clear_labels(), persist_file_context::clear_var(), config(), savegame::convert_old_saves_1_11_0(), savegame::convert_old_saves_1_13_0(), editor::map_context::convert_scenario(), gui2::dialogs::editor_edit_pbl::create_cfg(), default_map_generator::create_scenario(), savegame::save_index_class::data(), addons_client::delete_remote_addon(), gui2::dialogs::story_viewer::display_part(), prefs::do_commit_editor_mru(), 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(), 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(), replay::get_unsent_commands(), persist_file_context::get_var(), campaignd::server::handle_request_campaign_list(), campaignd::server::handle_upload(), 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(), prefs::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(), hotkey::save_hotkeys(), editor::map_context::save_schedule(), gui2::dialogs::editor_edit_unit::save_unit_type(), playmp_controller::send_change_side_controller(), 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(), prefs::set_achievement(), prefs::set_child(), set_global_variable(), gui2::rich_label::set_label(), game_config_manager::set_multiplayer_hashes(), ng::scenario::set_sides(), prefs::set_sub_achievement(), prefs::set_user_servers_list(), 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(), 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(), 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(), tod_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(), prefs::write_preferences(), game_data::write_snapshot(), soundsource::manager::write_sourcespecs(), and prefs::~prefs().
config & config::add_child | ( | config_key_type | key, |
config && | val | ||
) |
Definition at line 458 of file config.cpp.
References children_, config(), and ordered_children.
config & config::add_child | ( | config_key_type | key, |
const config & | val | ||
) |
Definition at line 448 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 468 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(), and display::refresh_report().
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 515 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 305 of file config.cpp.
References ordered_children.
Referenced by savegame::save_index_class::clean_up_index(), gui2::create_widget_builder(), do_replay_handle(), saved_game::expand_mp_events(), get_replay_action_type(), impl_unit_variables_dir(), unit::init(), intf_remove_modifications(), and playmp_controller::process_network_data_impl().
config::all_children_itors config::all_children_range | ( | ) |
Definition at line 906 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 888 of file config.cpp.
References ordered_children.
Referenced by unit::ability_tooltips(), game_events::manager::add_event_handler_from_wml(), unit::advance_to(), append_children(), attack_type::apply_modification(), unit::apply_modifications(), combine_special_notes(), editor::map_context::convert_scenario(), vconfig::count_children(), 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(), get_replay_action_type(), wfl::config_callable::get_value(), unit::halo_or_icon_abilities(), handle_preprocess_command(), unit::has_ability_by_id(), hash(), impl_unit_variables_dir(), unit::init(), addons_client::install_addon(), lua_wml::intf_wml_merge(), game_config_manager::load_addons_cfg(), prefs::load_preferences(), 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(), unit_ability_list::get_extremum< std::greater< int > >(), unit_animation::unit_animation(), schema_validation::schema_self_validator::validate(), and write_internal().
void config::append | ( | config && | cfg | ) |
Definition at line 210 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 202 of file config.cpp.
References append_children(), and values_.
Referenced by unit::apply_builtin_effect(), create_side_engine(), campaignd::server::handle_request_campaign(), gui2::init(), 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 188 of file config.cpp.
References values_.
Referenced by editor::map_context::convert_scenario(), and default_map_generator_job::default_generate_map().
void config::append_children | ( | config && | cfg | ) |
Definition at line 173 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 166 of file config.cpp.
References add_child(), and all_children_range().
Referenced by schema_validation::wml_tag::add_filter(), append(), config(), 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, |
config_key_type | key | ||
) |
Adds children from cfg.
Definition at line 195 of file config.cpp.
References add_child(), and child_range().
void config::append_children_by_move | ( | config & | cfg, |
config_key_type | key | ||
) |
Moves children with the given name from the given config to this one.
Definition at line 227 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 1030 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 310 of file config.cpp.
References values_.
Referenced by impl_unit_variables_dir(), intf_remove_modifications(), gui2::dialogs::editor_edit_unit::update_wml_view(), and game_events::builtin_conditions::variable_matches().
config::attr_itors config::attribute_range | ( | ) |
Definition at line 776 of file config.cpp.
References values_.
config::const_attr_itors config::attribute_range | ( | ) | const |
Definition at line 764 of file config.cpp.
References values_.
Referenced by game_events::manager::add_event_handler_from_wml(), prefs::all_attributes(), 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(), impl_unit_variables_dir(), lua_common::impl_vconfig_dir(), lua_common::impl_vconfig_get(), lua_common::impl_vconfig_pairs(), unit::init(), intf_remove_modifications(), prefs::load_preferences(), luaW_filltable(), matches(), movetype::resistances::merge(), movetype::terrain_info::data::merge(), prefs::migrate_preferences(), operator<<(), gui2::dialogs::editor_edit_unit::pre_show(), playmp_controller::process_network_data_impl(), playturn_network_adapter::read_from_network(), statistics_record::read_str_int_map(), gui2::dialogs::editor_edit_unit::save_unit_type(), gui2::dialogs::editor_edit_unit::update_wml_view(), and write_internal().
std::size_t config::child_count | ( | config_key_type | key | ) | const |
Definition at line 295 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(), gui2::dialogs::campaign_difficulty::pre_show(), 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(), editor::map_context::to_config(), and gui2::dialogs::mp_match_history::update_display().
|
inline |
A non-owning view over all child tag names.
Definition at line 879 of file config.hpp.
References children_.
Referenced by game_lua_kernel::save_game().
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 404 of file config.cpp.
References add_child(), children_, and i.
Referenced by prefs::add_alias(), 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 393 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 271 of file config.cpp.
References children_, dummy, i, and p.
Referenced by unit::ability_active(), unit::ability_affects_adjacent(), about::credits_group::about_group::about_group(), achievement::achievement(), prefs::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::advance_to(), 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::implementation::builder_combobox::builder_combobox(), 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_tab_container::builder_tab_container(), 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(), prefs::do_read_editor_mru(), 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(), help::generate_faction_topics(), 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(), unit::get_modifications_list(), 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(), 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(), savegame::loadgame::load_game(), game_config_manager::load_game_config(), load_language_list(), saved_game::load_non_scenario(), prefs::load_preferences(), 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::editor_edit_pbl::pre_show(), gui2::dialogs::help_browser::pre_show(), gui2::dialogs::unit_advance::pre_show(), prefs::prefs(), 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(), prefs::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(), editor::map_context::save_schedule(), statistics_record::scenario_stats_t::scenario_stats_t(), help::section_is_referenced(), prefs::set_achievement(), saved_game::set_data(), saved_game::set_defaults(), game_events::wmi_manager::set_menu_items(), theme::set_resolution(), ng::scenario::set_sides(), prefs::set_sub_achievement(), show_deprecated_warnings(), attack_type::special_active_impl(), gui2::styled_widget_definition::styled_widget_definition(), prefs::sub_achievement(), editor::map_context::to_config(), 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(), prefs::user_servers_list(), verify(), schema_validation::wml_tag::wml_tag(), write_difference(), prefs::write_preferences(), and scoped_wml_variable::~scoped_wml_variable().
config::const_child_itors config::child_range | ( | config_key_type | key | ) | const |
void config::clear | ( | ) |
Definition at line 832 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(), saved_game::clear(), prefs::clear_preferences(), 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(), prefs::load_preferences(), luaW_toconfig(), ng::side_engine::new_config(), operator=(), prefs::options(), ai::configuration::parse_side_config(), 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(), gui2::dialogs::editor_edit_unit::save_unit_type(), wb::manager::send_network_data(), addons_client::send_request(), saved_game::set_data(), set_global_variable(), gui2::rich_label::set_label(), 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 840 of file config.cpp.
References children_, and ordered_children.
void config::clear_attributes | ( | ) |
Definition at line 847 of file config.cpp.
References values_.
|
inline |
Definition at line 607 of file config.hpp.
References clear_children_impl().
Referenced by schema_validation::wml_tag::add_filter(), unit::apply_modifications(), prefs::clear_hotkeys(), 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(), hotkey::save_hotkeys(), prefs::set_child(), prefs::set_user_servers_list(), persist_file_context::set_var(), gui2::dialogs::team_mode_controller::show_list(), ai::formula_ai::to_config(), unit::write(), and prefs::~prefs().
|
private |
Definition at line 570 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 1091 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 551 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 571 of file config.hpp.
References has_attribute(), and remove_attribute().
Referenced by campaignd::server::handle_upload().
std::string config::debug | ( | ) | const |
Definition at line 1244 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(), playmp_controller::process_network_change_controller_impl(), playmp_controller::process_network_data_impl(), playturn_network_adapter::read_from_network(), gui2::dialogs::mp_match_history::request_history(), user_choice_manager::search_in_replay(), gui2::rich_label::set_label(), mp_game_settings::update_addon_requirements(), and game_events::WML_HANDLER_FUNCTION().
bool config::empty | ( | ) | const |
Definition at line 853 of file config.cpp.
References children_, and values_.
Referenced by unit_animation::add_anims(), schema_validation::wml_tag::add_switch(), ng::campaign::can_launch_game(), saved_game::check_require_scenario(), persist_file_context::clear_var(), prefs::confirm_no_moves(), 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(), prefs::get(), 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(), playmp_controller::process_network_change_controller_impl(), 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(), 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(), ng::connect_engine::update_and_send_diff(), game_events::wml_menu_item::update_command(), gui2::dialogs::mp_create_game::update_details(), gui2::dialogs::editor_edit_unit::update_wml_view(), hotkey::wml_hotkey_record::wml_hotkey_record(), team::team_info::write(), time_of_day::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 642 of file config.cpp.
References i, and remove_child().
Referenced by find_ref(), unit::generate_traits(), vconfig::get_parsed_config(), unit::remove_ability_by_attribute(), and unit::remove_ability_by_id().
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 788 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(), find_child(), find_mandatory_child(), ng::flg_manager::flg_manager(), help::generate_contents_links(), inherit_scenario(), game_config_manager::load_game_config(), editor::map_context::load_scenario(), help::parse_config_internal(), place_village(), campaignd::support_translation(), and write_difference().
|
inline |
Definition at line 592 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 814 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_blank_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 823 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 501 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 689 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(), unit::init(), 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(), saved_game::set_defaults(), schema_validation::schema_validator::validate_mandatory_keys(), 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 734 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 414 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 range 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 425 of file config.cpp.
References children_, deprecated_message(), dummy, 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 914 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 921 of file config.cpp.
References add_child(), b, c, children_, dummy, 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 712 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 695 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 156 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(), utils::config_filters::bool_matches_if_present(), utils::config_filters::bool_or_empty(), 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(), utils::config_filters::double_matches_if_present(), unit_abilities::effect::effect(), 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(), utils::config_filters::int_matches_if_present(), utils::config_filters::int_matches_if_present_or_negative(), 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(), prefs::migrate_preferences(), ng::side_engine::new_config(), ai::target_location_goal::on_create(), gui2::dialogs::mp_lobby::pre_show(), prefs::prefs(), playmp_controller::process_network_data_impl(), ng::random_map::random_map(), wesnothd::banned::read(), team::team_info::read(), preproc_define::read_argument(), game_events::event_handler::read_filters(), resistance_filter_matches_base(), game_events::filter_formula::serialize(), utils::config_filters::set_includes_if_present(), persist_file_context::set_var(), lua_gui2::show_message_dialog(), mp::start_local_game_commandline(), theme::status_item::status_item(), utils::config_filters::string_matches_if_present(), pathfind::teleport_group::teleport_group(), tod_manager::tod_manager(), carryover_info::transfer_all_to(), prefs::ui_sound_on(), prefs::ui_volume(), utils::config_filters::unsigned_matches_if_present(), schema_validation::wml_key::wml_key(), game_events::wml_menu_item::wml_menu_item(), schema_validation::wml_tag::wml_tag(), prefs::write_preferences(), 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 315 of file config.cpp.
Referenced by unit::ability_affects_adjacent(), 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(), gui2::implementation::builder_tab_container::builder_tab_container(), 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(), inherit_scenario(), unit::init(), addons_client::install_addon(), intf_append_ai(), campaignd::server::load_config(), editor::map_context::load_scenario(), ai::configuration::parse_side_config(), gui2::dialogs::editor_edit_pbl::pre_show(), playmp_controller::process_network_data_impl(), 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(), editor::map_context::to_config(), addons_client::upload_addon(), and desktop::user_bookmarks().
std::string config::hash | ( | ) | const |
Definition at line 1287 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 1189 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 1177 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 525 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 347 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 356 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 365 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(), inherit_scenario(), intf_append_ai(), ng::depcheck::manager::is_modification_active(), campaignd::server::load_config(), editor::map_context::load_scenario(), gui2::dialogs::editor_edit_unit::load_unit_type(), 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::editor_edit_pbl::pre_show(), gui2::dialogs::editor_edit_unit::pre_show(), gui2::dialogs::mp_join_game::pre_show(), mp::lobby_info::process_gamelist(), mp::lobby_info::process_gamelist_diff_impl(), playmp_controller::process_network_data_impl(), 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(), gui2::button_definition::resolution::resolution(), user_choice_manager::search_in_replay(), set_global_variable(), gui2::dialogs::mp_join_game::show_flg_select(), editor::map_context::to_config(), ng::depcheck::manager::try_era_by_index(), ng::depcheck::manager::try_scenario_by_index(), gui2::dialogs::mp_match_history::update_display(), gui2::dialogs::editor_edit_unit::update_wml_view(), gui2::dialogs::editor_edit_unit::write(), 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 374 of file config.cpp.
bool config::matches | ( | const config & | filter | ) | const |
Definition at line 1198 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 746 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 | ( | config_key_type | key | ) |
All children with the given key will be merged into the first element with that key.
Definition at line 238 of file config.cpp.
References add_child(), append(), child_count(), child_range(), and clear_children_impl().
void config::merge_children_by_attribute | ( | config_key_type | key, |
config_key_type | 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 253 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 1127 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(), prefs::load_preferences(), 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 121 of file config.cpp.
Definition at line 103 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 701 of file config.cpp.
References values_.
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 678 of file config.cpp.
optional_config config::optional_child | ( | config_key_type | key, |
int | n = 0 |
||
) |
Equivalent to mandatory_child, but returns an empty optional if the nth child was not found.
Definition at line 383 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(), 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(), prefs::get_child(), 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(), unit::init(), ai::configuration::init(), campaignd::server::load_config(), wesnothd::server::load_config(), font::load_font_config(), wb::move::move(), ai::target_location_goal::on_create(), ai::protect_goal::on_create(), ai::formula_ai::on_create(), game_events::filter_attack::operator()(), attack_type::overwrite_special_checking(), help::parse_config(), cave_map_generator::cave_map_generator_job::place_chamber(), game_events::wml_event_pump::process_event(), wb::manager::process_network_data(), playmp_controller::process_network_data_impl(), 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::button_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::rich_label::set_label(), gui2::dialogs::mp_join_game::show_flg_select(), ng::side_engine::side_engine(), theme::status_item::status_item(), help::topic_is_referenced(), 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 |
Equivalent to mandatory_child, but returns an empty optional if the nth child was not found.
Definition at line 388 of file config.cpp.
config::all_children_iterator config::ordered_begin | ( | ) |
Definition at line 896 of file config.cpp.
References ordered_children.
config::const_all_children_iterator config::ordered_begin | ( | ) | const |
Definition at line 868 of file config.cpp.
References ordered_children.
Referenced by gui2::create_widget_builder(), do_replay_handle(), find_total_first_of(), vconfig::ordered_begin(), playturn_network_adapter::read(), unit::remove_ability_by_attribute(), and unit::remove_ability_by_id().
config::const_all_children_iterator config::ordered_cbegin | ( | ) | const |
Definition at line 873 of file config.cpp.
References ordered_children.
config::const_all_children_iterator config::ordered_cend | ( | ) | const |
Definition at line 883 of file config.cpp.
References ordered_children.
config::all_children_iterator config::ordered_end | ( | ) |
Definition at line 901 of file config.cpp.
References ordered_children.
config::const_all_children_iterator config::ordered_end | ( | ) | const |
Definition at line 878 of file config.cpp.
References ordered_children.
Referenced by find_total_first_of(), vconfig::ordered_end(), unit::remove_ability_by_attribute(), and unit::remove_ability_by_id().
void config::recursive_clear_value | ( | config_key_type | key | ) |
Definition at line 607 of file config.cpp.
References children_, p, and values_.
Referenced by get_checksum().
void config::remove_attribute | ( | config_key_type | key | ) |
Definition at line 161 of file config.cpp.
References values_.
Referenced by unit_creator::add_unit(), prefs::clear_countdown_action_bonus(), prefs::clear_countdown_init_time(), prefs::clear_countdown_reservoir_time(), prefs::clear_countdown_turn_bonus(), clear_diff_track(), prefs::clear_mp_alert_prefs(), persist_file_context::clear_var(), savegame::convert_old_saves_1_13_1(), editor::map_context::convert_scenario(), 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(), prefs::set_mp_server_program_name(), 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 542 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 647 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 618 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 658 of file config.cpp.
References children_, utf8::index(), p, and remove_child().
Referenced by unit::add_modification(), savegame::save_index_class::clean_up_index(), team_builder::handle_leader(), campaignd::server::handle_upload(), intf_append_ai(), savegame::save_index_class::remove(), and editor::map_context::to_config().
void config::splice_children | ( | config & | src, |
config_key_type | key | ||
) |
Moves all the children with tag key from src to this.
Definition at line 583 of file config.cpp.
References children_, dst, ordered_children, rect::size(), and src.
Referenced by inherit_scenario(), and game_lua_kernel::save_game().
void config::swap | ( | config & | cfg | ) |
Definition at line 1340 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(), 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(), and carryover::transfer_all_gold_to().
|
static |
Definition at line 151 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 128 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 1352 of file config.cpp.
References children_.
Referenced by lua_wml::intf_wml_valid().
Definition at line 1366 of file config.cpp.
|
private |
A list of all children of this node.
Definition at line 898 of file config.hpp.
Referenced by add_child(), add_child_at(), append_children(), apply_diff(), child_count(), child_name_view(), 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 791 of file config.hpp.
Referenced by apply_diff(), clear_diff_track(), and mp::lobby_info::process_gamelist_diff_impl().
|
private |
Definition at line 900 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 895 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().