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... Args> | |
config (config_key_type first, Args &&... 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={}) |
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) |
auto | all_children_view () const |
In-order iteration over all children. More... | |
auto | all_children_view () |
In-order iteration over all children. More... | |
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... | |
Static Private Member Functions | |
template<typename Res > | |
static auto | any_tag_view (const child_pos &elem) -> std::pair< const child_map::key_type &, Res > |
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 171 of file config.hpp.
typedef boost::iterator_range<all_children_iterator> config::all_children_itors |
Definition at line 776 of file config.hpp.
typedef boost::iterator_range<attribute_iterator> config::attr_itors |
Definition at line 373 of file config.hpp.
typedef attribute_map::value_type config::attribute |
Definition at line 312 of file config.hpp.
typedef std::map< std::string , attribute_value , std::less<> > config::attribute_map |
Definition at line 311 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 305 of file config.hpp.
typedef boost::iterator_range<child_iterator> config::child_itors |
Definition at line 295 of file config.hpp.
typedef std::vector<std::unique_ptr<config> > config::child_list |
Definition at line 205 of file config.hpp.
typedef std::map<std::string, child_list, std::less<> > config::child_map |
Definition at line 206 of file config.hpp.
typedef boost::iterator_range<const_all_children_iterator> config::const_all_children_itors |
Definition at line 777 of file config.hpp.
typedef boost::iterator_range<const_attribute_iterator> config::const_attr_itors |
Definition at line 372 of file config.hpp.
typedef boost::iterator_range<const_child_iterator> config::const_child_itors |
Definition at line 296 of file config.hpp.
config::config | ( | ) |
Definition at line 76 of file config.cpp.
Referenced by add_child().
config::config | ( | const config & | cfg | ) |
Definition at line 83 of file config.cpp.
References append_children().
config::config | ( | config && | cfg | ) |
Definition at line 115 of file config.cpp.
|
explicit |
Creates a config object with an empty child of name child.
Definition at line 91 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 975 of file config.hpp.
References detail::config_construct_unpack().
config::~config | ( | ) |
Definition at line 99 of file config.cpp.
References clear().
config & config::add_child | ( | config_key_type | key | ) |
Definition at line 440 of file config.cpp.
References children_, config(), and ordered_children.
Referenced by unit_animation::add_anims(), gui2::rich_label::add_attribute(), 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(), detail::config_construct_unpack(), 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(), gui2::rich_label::get_parsed_text(), 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(), markup::parse_tag_contents(), markup::parse_text(), markup::parse_text_until(), 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(), 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(), 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(), 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 459 of file config.cpp.
References children_, config(), and ordered_children.
config & config::add_child | ( | config_key_type | key, |
const config & | val | ||
) |
Definition at line 449 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 469 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 516 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 306 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(), markup::parse_attribute(), markup::parse_tag(), markup::parse_tag_contents(), and playmp_controller::process_network_data_impl().
config::all_children_itors config::all_children_range | ( | ) |
Definition at line 902 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 884 of file config.cpp.
References ordered_children.
Referenced by find_ref().
|
inline |
In-order iteration over all children.
Definition at line 818 of file config.hpp.
References ordered_children.
|
inline |
In-order iteration over all children.
Definition at line 810 of file config.hpp.
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(), unit::get_ability_list(), vconfig::get_children(), vconfig::get_parsed_config(), gui2::rich_label::get_parsed_text(), 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().
|
inlinestaticprivate |
Definition at line 793 of file config.hpp.
void config::append | ( | config && | cfg | ) |
Definition at line 211 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 203 of file config.cpp.
References append_children(), and values_.
Referenced by unit::apply_builtin_effect(), create_side_engine(), gui2::rich_label::get_parsed_text(), 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(), markup::parse_tag(), 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 189 of file config.cpp.
References values_.
Referenced by editor::map_context::convert_scenario(), default_map_generator_job::default_generate_map(), and gui2::rich_label::get_parsed_text().
void config::append_children | ( | config && | cfg | ) |
Definition at line 174 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 167 of file config.cpp.
References add_child(), and all_children_view().
Referenced by schema_validation::wml_tag::add_filter(), append(), config(), gui2::dialogs::generate_difficulty_config(), gui2::rich_label::get_parsed_text(), inherit_scenario(), unit::init(), game_lua_kernel::initialize(), lua_wml::intf_wml_merge(), markup::parse_tag_contents(), markup::parse_text(), and playsingle_controller::play_scenario().
void config::append_children | ( | const config & | cfg, |
config_key_type | key | ||
) |
Adds children from cfg.
Definition at line 196 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 228 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 1026 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 311 of file config.cpp.
References values_.
Referenced by impl_unit_variables_dir(), intf_remove_modifications(), markup::parse_tag(), markup::parse_tag_contents(), gui2::dialogs::editor_edit_unit::update_wml_view(), and game_events::builtin_conditions::variable_matches().
config::attr_itors config::attribute_range | ( | ) |
Definition at line 772 of file config.cpp.
References values_.
config::const_attr_itors config::attribute_range | ( | ) | const |
Definition at line 760 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 296 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 927 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 405 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(), 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 394 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 272 of file config.cpp.
References children_, dummy, i, and p.
Referenced by unit::ability_active_impl(), 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(), ai::holder::append_ai(), append_children(), append_children_by_move(), unit::apply_builtin_effect(), apply_diff(), unit_type::apply_scenario_fix(), 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(), gui2::text_shape::draw(), 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(), gui2::rich_label::get_parsed_text(), 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::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(), 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::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::remove_scenario_fixes(), 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(), editor::item_palette::setup(), 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 828 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(), 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 836 of file config.cpp.
References children_, and ordered_children.
void config::clear_attributes | ( | ) |
Definition at line 843 of file config.cpp.
References values_.
|
inline |
Definition at line 616 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 571 of file config.cpp.
References children_, utils::erase_if(), 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 1087 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 560 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 580 of file config.hpp.
References has_attribute(), and remove_attribute().
Referenced by campaignd::server::handle_upload().
std::string config::debug | ( | ) | const |
Definition at line 1240 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(), gui2::rich_label::get_parsed_text(), 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_topic(), mp_game_settings::update_addon_requirements(), and game_events::WML_HANDLER_FUNCTION().
bool config::empty | ( | ) | const |
Definition at line 849 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 638 of file config.cpp.
References i, and remove_child().
Referenced by animation_cursor::animation_cursor(), find_ref(), unit::generate_traits(), vconfig::get_parsed_config(), unit::remove_ability_by_attribute(), unit::remove_ability_by_id(), and attack_type::remove_special_by_filter().
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 784 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 601 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 810 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 819 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 502 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 685 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 730 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 415 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 426 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 910 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 917 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 708 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 691 of file config.cpp.
References config_attribute_value::blank(), and operator[]().
Referenced by gender_value(), attack_type::special_tooltips(), and attack_type::weapon_specials().
bool config::has_attribute | ( | config_key_type | key | ) | const |
Definition at line 157 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(), markup::parse_tag(), markup::parse_tag_contents(), 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(), 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 316 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(), unit_type::apply_scenario_fix(), 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(), markup::parse_attribute(), ai::configuration::parse_side_config(), markup::parse_tag_contents(), 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(), editor::map_context::to_config(), addons_client::upload_addon(), and desktop::user_bookmarks().
std::string config::hash | ( | ) | const |
Definition at line 1283 of file config.cpp.
References all_children_view(), 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 1185 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 1173 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 534 of file config.hpp.
References operator[]().
Referenced by detail::config_construct_unpack().
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 348 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 357 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 366 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(), markup::parse_tag_contents(), 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 375 of file config.cpp.
bool config::matches | ( | const config & | filter | ) | const |
Definition at line 1194 of file config.cpp.
References all_children_view(), attribute_range(), child_range(), get(), 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 742 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 239 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 254 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 1123 of file config.cpp.
References add_child(), c, i, merge_attributes(), ordered_children, remove_child(), and markup::tag().
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 122 of file config.cpp.
Definition at line 104 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 697 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 674 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 384 of file config.cpp.
Referenced by unit::ability_active_impl(), 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(), unit_type::apply_scenario_fix(), 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(), matches_simple_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()(), attack_type::overwrite_special_checking(), markup::parse_attribute(), 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::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 389 of file config.cpp.
config::all_children_iterator config::ordered_begin | ( | ) |
Definition at line 892 of file config.cpp.
References ordered_children.
config::const_all_children_iterator config::ordered_begin | ( | ) | const |
Definition at line 864 of file config.cpp.
References ordered_children.
Referenced by gui2::create_widget_builder(), find_total_first_of(), vconfig::ordered_begin(), playturn_network_adapter::read(), unit::remove_ability_by_attribute(), unit::remove_ability_by_id(), and attack_type::remove_special_by_filter().
config::const_all_children_iterator config::ordered_cbegin | ( | ) | const |
Definition at line 869 of file config.cpp.
References ordered_children.
config::const_all_children_iterator config::ordered_cend | ( | ) | const |
Definition at line 879 of file config.cpp.
References ordered_children.
config::all_children_iterator config::ordered_end | ( | ) |
Definition at line 897 of file config.cpp.
References ordered_children.
config::const_all_children_iterator config::ordered_end | ( | ) | const |
Definition at line 874 of file config.cpp.
References ordered_children.
Referenced by find_total_first_of(), vconfig::ordered_end(), unit::remove_ability_by_attribute(), unit::remove_ability_by_id(), and attack_type::remove_special_by_filter().
void config::recursive_clear_value | ( | config_key_type | key | ) |
Definition at line 603 of file config.cpp.
References children_, p, and values_.
Referenced by get_checksum().
void config::remove_attribute | ( | config_key_type | key | ) |
Definition at line 162 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(), statistics_record::read_battle_result_map(), 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 551 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 643 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 614 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 = {} |
||
) |
Removes all children with tag key for which p returns true.
If no predicate is provided, all key tags will be removed.
Definition at line 654 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 581 of file config.cpp.
References children_, dst, utils::erase_if(), ordered_children, rect::size(), and src.
Referenced by inherit_scenario(), and game_lua_kernel::save_game().
void config::swap | ( | config & | cfg | ) |
Definition at line 1336 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 152 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 129 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 1348 of file config.cpp.
References children_.
Referenced by lua_wml::intf_wml_valid().
Definition at line 1362 of file config.cpp.
|
private |
A list of all children of this node.
Definition at line 946 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 839 of file config.hpp.
Referenced by apply_diff(), clear_diff_track(), and mp::lobby_info::process_gamelist_diff_impl().
|
private |
Definition at line 948 of file config.hpp.
Referenced by add_child(), add_child_at(), add_child_at_total(), all_children_count(), all_children_range(), all_children_view(), 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 943 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().