#include <types.hpp>
Public Types | |
typedef std::map< std::string, unit_type > | unit_type_map |
Public Member Functions | |
unit_type_data (const unit_type_data &)=delete | |
unit_type_data & | operator= (const unit_type_data &)=delete |
unit_type_data () | |
const unit_type_map & | types () const |
const race_map & | races () const |
const movement_type_map & | movement_types () const |
config_array_view | traits () const |
void | set_config (const game_config_view &cfg) |
Resets all data based on the provided config. More... | |
const unit_type * | find (const std::string &key, unit_type::BUILD_STATUS status=unit_type::FULL) const |
Finds a unit_type by its id() and makes sure it is built to the specified level. More... | |
void | check_types (const std::vector< std::string > &types) const |
const unit_race * | find_race (const std::string &) const |
void | build_all (unit_type::BUILD_STATUS status) |
Makes sure the all unit_types are built to the specified level. More... | |
void | build_unit_type (const unit_type &ut, unit_type::BUILD_STATUS status) const |
Makes sure the provided unit_type is built to the specified level. More... | |
bool | hide_help (const std::string &type_id, const std::string &race_id) const |
Checks if the [hide_help] tag contains these IDs. More... | |
void | apply_scenario_fix (const config &cfg) |
void | remove_scenario_fixes () |
Private Member Functions | |
void | read_hide_help (const config &cfg) |
Parses the [hide_help] tag. More... | |
void | clear () |
void | apply_base_unit (unit_type &type, std::vector< std::string > &base_tree) |
Modifies the provided config by merging all base units into it. More... | |
const game_config_view & | units_cfg () const |
Private Attributes | |
unit_type_map | types_ |
movement_type_map | movement_types_ |
race_map | races_ |
bool | hide_help_all_ |
True if [hide_help] contains a 'all=yes' at its root. More... | |
std::vector< std::set< std::string > > | hide_help_type_ |
std::vector< std::set< std::string > > | hide_help_race_ |
game_config_view | units_cfg_ |
unit_type::BUILD_STATUS | build_status_ |
typedef std::map<std::string,unit_type> unit_type_data::unit_type_map |
|
delete |
|
private |
Modifies the provided config by merging all base units into it.
The base_tree parameter is used for detecting and reporting cycles of base units and in particular to prevent infinite loops.
Definition at line 995 of file types.cpp.
References ERR_CF, utils::find(), unit_type::get_cfg(), and types_.
Referenced by set_config().
void unit_type_data::apply_scenario_fix | ( | const config & | cfg | ) |
Definition at line 1432 of file types.cpp.
References types_.
Referenced by play_controller::play_controller().
void unit_type_data::build_all | ( | unit_type::BUILD_STATUS | status | ) |
Makes sure the all unit_types are built to the specified level.
Definition at line 1307 of file types.cpp.
References build_status_, build_unit_type(), gui2::dialogs::loading_screen::progress(), and types_.
Referenced by unit_type::advances_from(), ai::formula_ai::get_value(), help::init_help(), and set_config().
void unit_type_data::build_unit_type | ( | const unit_type & | ut, |
unit_type::BUILD_STATUS | status | ||
) | const |
Makes sure the provided unit_type is built to the specified level.
Definition at line 1257 of file types.cpp.
References unit_type::build(), movement_types_, races_, and units_cfg().
Referenced by unit_type::apply_scenario_fix(), BOOST_AUTO_TEST_CASE(), build_all(), find(), impl_unit_type_next(), help::unit_topic_generator::operator()(), gui2::dialogs::unit_create::pre_show(), and gui2::dialogs::tally().
void unit_type_data::check_types | ( | const std::vector< std::string > & | types | ) | const |
Definition at line 1286 of file types.cpp.
References find(), and types().
Referenced by unit::set_advances_to(), and unit::set_recruits().
|
private |
Definition at line 1295 of file types.cpp.
References build_status_, hide_help_all_, hide_help_race_, hide_help_type_, movement_types_, unit_type::NOT_BUILT, races_, and types_.
Referenced by set_config().
const unit_type * unit_type_data::find | ( | const std::string & | key, |
unit_type::BUILD_STATUS | status = unit_type::FULL |
||
) | const |
Finds a unit_type by its id() and makes sure it is built to the specified level.
Definition at line 1265 of file types.cpp.
References build_unit_type(), DBG_CF, and types_.
Referenced by advancement_tree_internal(), unit::advances_to_translated(), unit::apply_builtin_effect(), events::menu_handler::can_recruit(), check_types(), ai::default_recruitment::recruitment::compare_unit_types(), wb::recruit::create_corresponding_unit(), wfl::gamestate::DEFINE_WFL_FUNCTION(), ai::default_recruitment::recruitment::do_combat_analysis(), events::console_handler::do_create(), ai::recruit_result::do_execute(), ai::default_recruitment::recruitment::do_similarity_penalty(), ai::default_recruitment::recruitment::execute(), unit_filter_impl::unit_filter_compound::fill(), ng::flg_manager::flg_manager(), help::generate_faction_topics(), gui2::dialogs::mp_join_game::generate_side_list(), get_advanced_unit(), ai::default_recruitment::recruitment::get_average_defense(), ai::default_recruitment::recruitment::get_cheapest_unit_cost_for_leader(), ai::default_recruitment::recruitment::get_cost_map_of_side(), actions::undo::get_unit_type(), get_unit_type(), ai::recruit_result::get_unit_type_known(), ai::formula_ai::get_value(), ai::helper_advance_unit(), impl_unit_type_lookup(), intf_add_known_unit(), game_lua_kernel::intf_find_cost_map(), intf_transform_unit(), gui2::dialogs::editor_edit_unit::load_unit_type(), help::make_unit_link(), team::minimum_recruit_price(), gui2::dialogs::faction_select::on_faction_select(), gui2::dialogs::faction_select::on_leader_select(), gui2::dialogs::statistics_dialog::on_primary_list_select(), help::unit_topic_generator::operator()(), gui2::dialogs::faction_select::profile_button_callback(), ai::default_recruitment::recruitment::recall_unit_value(), wb::recruit::recruit(), events::menu_handler::recruit(), ai::default_recruitment::recruitment::recruit_matches_type(), ng::flg_manager::resolve_random(), help::show_unit_description(), statistics_t::sum_cost_str_int_map(), SYNCED_COMMAND_HANDLER_FUNCTION(), editor::mouse_action_unit::up_left(), ng::flg_manager::update_available_genders(), ai::default_recruitment::recruitment::update_average_local_cost(), gui2::dialogs::mp_staging::update_leader_display(), and gui2::dialogs::faction_select::update_leader_image().
const unit_race * unit_type_data::find_race | ( | const std::string & | key | ) | const |
Definition at line 1369 of file types.cpp.
Referenced by help::generate_faction_topics(), help::generate_races_sections(), help::generate_trait_topics(), help::generate_unit_topics(), unit::init(), and luaW_checkrace().
bool unit_type_data::hide_help | ( | const std::string & | type_id, |
const std::string & | race_id | ||
) | const |
Checks if the [hide_help] tag contains these IDs.
Definition at line 1352 of file types.cpp.
References hide_help_all_, hide_help_race_, and hide_help_type_.
Referenced by unit_type::hide_help(), and set_config().
|
inline |
Definition at line 398 of file types.hpp.
References movement_types_.
Referenced by gui2::dialogs::editor_edit_unit::pre_show().
|
delete |
|
inline |
Definition at line 397 of file types.hpp.
References races_.
Referenced by help::generate_unit_topics(), luaW_pushracetable(), gui2::dialogs::editor_edit_unit::pre_show(), read_hide_help(), and editor::unit_palette::setup().
|
private |
Parses the [hide_help] tag.
Definition at line 1323 of file types.cpp.
References hide_help_race_, hide_help_type_, config::optional_child(), races(), utils::split(), types(), and types_.
Referenced by set_config().
void unit_type_data::remove_scenario_fixes | ( | ) |
Definition at line 1467 of file types.cpp.
References types_.
Referenced by play_controller::~play_controller().
void unit_type_data::set_config | ( | const game_config_view & | cfg | ) |
Resets all data based on the provided config.
This includes some processing of the config, such as expanding base units. A pointer to the config is stored, so the config must be persistent.
The data to read from is in [terrain_defaults][subtag], and corresponds to [movetype][subtag]
Deprecated names used in 1.14.0's [terrain_defaults]. For [defense] the name didn't change.
Definition at line 1103 of file types.cpp.
References apply_base_unit(), build_all(), game_config_view::child_range(), clear(), unit_type::CREATED, DBG_CF, DBG_UT, ERR_CF, hide_help(), hide_help_all_, unit_race::id(), lg::info(), LOG_CONFIG, LOG_UT, movement_types_, game_config_view::optional_child(), gui2::dialogs::loading_screen::progress(), races_, read_hide_help(), types_, units_cfg_, and movetype::UNREACHABLE.
Referenced by test_utils::game_config_manager::game_config_manager(), and game_config_manager::set_unit_data().
|
inline |
Definition at line 399 of file types.hpp.
References game_config_view::child_range(), and units_cfg().
Referenced by help::generate_trait_topics(), and impl_race_get().
|
inline |
Definition at line 396 of file types.hpp.
References types_.
Referenced by unit_type::advances_from(), check_types(), events::console_handler::do_discover(), help::generate_ability_topics(), help::generate_races_sections(), help::generate_trait_topics(), help::generate_unit_sections(), help::generate_unit_topics(), help::generate_weapon_special_topics(), impl_unit_type_count(), impl_unit_type_list(), impl_unit_type_next(), gui2::dialogs::unit_create::pre_show(), read_hide_help(), and editor::unit_palette::setup().
|
inlineprivate |
Definition at line 435 of file types.hpp.
References units_cfg_.
Referenced by build_unit_type(), and traits().
|
private |
Definition at line 437 of file types.hpp.
Referenced by build_all(), and clear().
|
private |
True if [hide_help] contains a 'all=yes' at its root.
Definition at line 430 of file types.hpp.
Referenced by clear(), hide_help(), and set_config().
|
private |
Definition at line 433 of file types.hpp.
Referenced by clear(), hide_help(), and read_hide_help().
|
private |
Definition at line 432 of file types.hpp.
Referenced by clear(), hide_help(), and read_hide_help().
|
private |
Definition at line 426 of file types.hpp.
Referenced by build_unit_type(), clear(), movement_types(), and set_config().
|
private |
Definition at line 427 of file types.hpp.
Referenced by build_unit_type(), clear(), find_race(), races(), and set_config().
|
mutableprivate |
Definition at line 425 of file types.hpp.
Referenced by apply_base_unit(), apply_scenario_fix(), build_all(), clear(), find(), read_hide_help(), remove_scenario_fixes(), set_config(), and types().
|
private |
Definition at line 436 of file types.hpp.
Referenced by set_config(), and units_cfg().