9 float total_army_weight = 0.f;
10 for(
auto army : list) {
12 if(ar.get_black_flag() ==
false && ar.get_is_retreating() ==
false && !
bool(ar.get_navy_from_army_transport())) {
13 for(
auto rg : ar.get_army_membership()) {
14 total_army_weight += 3.0f * rg.get_regiment().get_strength();
18 for(
auto ar :
state.world.province_get_army_location(prov)) {
19 if(ar.get_army().get_black_flag() ==
false && ar.get_army().get_is_retreating() ==
false && !
bool(ar.get_army().get_navy_from_army_transport())) {
20 for(
auto rg : ar.get_army().get_army_membership()) {
21 total_army_weight += 3.0f * rg.get_regiment().get_strength();
25 auto prov_attrition_mod =
state.world.province_get_modifier_values(prov, sys::provincial_mod_offsets::attrition);
28 auto attrition_mod = 1.0f + army_controller.get_modifier_values(sys::national_mod_offsets::land_attrition);
29 float greatest_hostile_fort = 0.0f;
30 for(
auto adj :
state.world.province_get_province_adjacency(prov)) {
32 auto other = adj.get_connected_provinces(0) != prov ? adj.get_connected_provinces(0) : adj.get_connected_provinces(1);
40 return total_army_weight * attrition_mod - (supply_limit + prov_attrition_mod + greatest_hostile_fort) > 0;
45 auto owner = fat.get_nation_from_province_ownership();
48 if(
state.cheat_data.show_province_id_tooltip) {
80 if(
state.selected_armies.size() > 0) {
85 for(
const auto a :
state.selected_armies) {
89 auto tag_str = std::string(
"@") +
nations::int_to_tag(controller.get_identity_from_identity_holder().get_identifying_int()) +
"@(A)";
100 }
else if(
state.selected_navies.size() > 0) {
118 if(fat.get_terrain().id) {
125 if(
auto n =
state.world.province_get_nation_from_province_control(prov); n && n !=
state.world.province_get_nation_from_province_ownership(prov)) {
132 }
else if(
auto rf =
state.world.province_get_rebel_faction_from_province_rebel_control(prov); rf) {
147 if(prov.value <
state.province_definitions.first_sea_province.value) {
160 if(prov.value <
state.province_definitions.first_sea_province.value) {
162 dcon::nation_fat_id nationundermouse = fat.get_nation_from_province_ownership();
164 if(nationundermouse) {
165 dcon::nation_fat_id selectednation = (
dcon::fatten(
state.world,
state.map_state.selected_province).get_nation_from_province_ownership().is_valid()) ?
170 if(nationundermouse.get_overlord_as_subject().get_ruler() == selectednation && nationundermouse.get_is_substate()) {
173 }
else if(selectednation.get_overlord_as_subject().get_ruler() == nationundermouse && selectednation.get_is_substate()) {
176 }
else if(nationundermouse.get_overlord_as_subject().get_ruler() == selectednation && !nationundermouse.get_is_substate()) {
179 }
else if(selectednation.get_overlord_as_subject().get_ruler() == nationundermouse && !selectednation.get_is_substate()) {
182 }
else if(selectednation.get_is_great_power() && nationundermouse != selectednation) {
191 for(
auto c : fat.get_core()) {
206 if(prov.value <
state.province_definitions.first_sea_province.value) {
221 if(prov.value <
state.province_definitions.first_sea_province.value) {
236 if(prov.value <
state.province_definitions.first_sea_province.value) {
238 if(fat.get_is_coast()) {
249 if(fat.get_life_rating() >
state.world.nation_get_modifier_values(
state.local_player_nation, sys::national_mod_offsets::colonial_life_rating)) {
267 for(
auto coloniser : fat.get_state_from_abstract_state_membership().get_colonization()) {
282 if(prov.value <
state.province_definitions.first_sea_province.value) {
286 if(fat.get_crime()) {
298 if(prov.value <
state.province_definitions.first_sea_province.value) {
305 if(fat.get_nation_from_province_ownership().id.value ==
state.local_player_nation.value) {
306 if(max_regiments == 0) {
308 }
else if(created_regiments < max_regiments) {
330 if(prov.value <
state.province_definitions.first_sea_province.value) {
332 if(fat.get_state_membership().get_owner_focus()) {
345 if(prov.value <
state.province_definitions.first_sea_province.value) {
356 if(prov.value <
state.province_definitions.first_sea_province.value) {
374 if(prov.value <
state.province_definitions.first_sea_province.value) {
379 std::vector<dcon::culture_fat_id> cultures;
380 for(
auto pop : fat.get_pop_location()) {
381 if(std::find(cultures.begin(), cultures.end(), pop.get_pop().get_culture()) == cultures.end()) {
382 cultures.push_back(pop.get_pop().get_culture());
385 std::sort(cultures.begin(), cultures.end(), [&](
auto a,
auto b) {return fat.get_demographics(demographics::to_key(state, a.id)) > fat.get_demographics(demographics::to_key(state, b.id)); });
386 for(
size_t i = 0; i < cultures.size(); i++) {
404 if(prov.value <
state.province_definitions.first_sea_province.value) {
406 if(fat.get_nation_from_province_ownership().get_is_great_power()) {
409 if(fat.get_nation_from_province_ownership().get_in_sphere_of().is_valid()) {
416 bool bHasDisplayedHeader =
false;
417 for(
auto gpr : fat.get_nation_from_province_ownership().get_gp_relationship_as_influence_target()) {
418 if(!bHasDisplayedHeader) {
422 bHasDisplayedHeader =
true;
441 if(prov.value <
state.province_definitions.first_sea_province.value) {
452 auto prov_controller =
state.world.province_get_nation_from_province_control(prov);
453 auto self_controlled = prov_controller ==
state.local_player_nation;
454 if(
state.world.province_get_nation_from_province_ownership(prov) ==
state.local_player_nation && self_controlled) {
459 }
else if(
auto dip_rel =
state.world.get_diplomatic_relation_by_diplomatic_pair(prov_controller,
state.local_player_nation);
state.world.diplomatic_relation_get_are_allied(dip_rel) || fat.get_nation_from_province_control().get_overlord_as_subject().get_ruler() ==
state.local_player_nation) {
464 }
else if(
auto uni_rel =
state.world.get_unilateral_relationship_by_unilateral_pair(prov_controller,
state.local_player_nation);
state.world.unilateral_relationship_get_military_access(uni_rel)) {
469 }
else if(
bool(
state.world.get_core_by_prov_tag_key(prov,
state.world.nation_get_identity_from_identity_holder(
state.local_player_nation)))) {
474 }
else if(
state.world.province_get_siege_progress(prov) > 0.0f) {
488 if(prov.value <
state.province_definitions.first_sea_province.value) {
491 std::vector<dcon::political_party_id> active_parties;
493 for(
auto party : active_parties) {
495 auto loyalty =
state.world.province_get_party_loyalty(prov,
dcon::fatten(
state.world, party).get_ideology().id);
517 if(prov.value <
state.province_definitions.first_sea_province.value) {
545 auto owner = fat.get_nation_from_province_ownership();
556 struct nation_and_value {
561 static dcon::nation_id last_owner;
563 static std::vector<float> last_value;
564 static std::vector<nation_and_value> positive_vals;
565 static std::vector<nation_and_value> neg_vals;
566 static float total_pos = 0.0f;
567 static float total_neg = 0.0f;
569 auto d =
state.ui_date;
570 if(d != last_checked || last_owner != owner) {
577 positive_vals.clear();
580 dcon::nation_id in{ dcon::nation_id::value_base_t(i) };
581 if(last_value[i] > 0.0f) {
582 positive_vals.push_back(nation_and_value{ last_value[i],in });
583 total_pos += last_value[i];
584 }
else if(last_value[i] < 0.0f) {
585 neg_vals.push_back(nation_and_value{ last_value[i],in });
586 total_neg += last_value[i];
590 std::sort(positive_vals.begin(), positive_vals.end(), [](nation_and_value
const& a, nation_and_value
const& b) {
593 std::sort(neg_vals.begin(), neg_vals.end(), [](nation_and_value
const& a, nation_and_value
const& b) {
600 float total_accounted_for = 0.0f;
601 for(
uint32_t i = 0; i < positive_vals.size() && i < 10; ++i) {
602 total_accounted_for += positive_vals[i].v;
613 if(total_pos - total_accounted_for >= 1.0f) {
623 total_accounted_for = 0.0f;
624 for(
uint32_t i = 0; i < neg_vals.size() && i < 10; ++i) {
625 total_accounted_for += neg_vals[i].v;
636 if(total_neg - total_accounted_for <= -1.0f) {
652 if(prov.value <
state.province_definitions.first_sea_province.value) {
676 auto civpro =
state.world.nation_get_modifier_values(fat.get_nation_from_province_ownership().id, sys::national_mod_offsets::civilization_progress_modifier);
686 auto civpro =
state.world.nation_get_modifier_values(fat.get_nation_from_province_ownership().id, sys::national_mod_offsets::civilization_progress_modifier);
696 auto civpro =
state.world.nation_get_modifier_values(fat.get_nation_from_province_ownership().id, sys::national_mod_offsets::civilization_progress_modifier);
714 if(prov.value <
state.province_definitions.first_sea_province.value) {
718 &&
dcon::fatten(
state.world,
state.map_state.selected_province).get_nation_from_province_ownership() != fat.get_nation_from_province_ownership()) {
720 auto rel =
state.world.get_diplomatic_relation_by_diplomatic_pair(fat.get_nation_from_province_ownership().id,
dcon::fatten(
state.world,
state.map_state.selected_province).get_nation_from_province_ownership());
730 auto rel =
state.world.get_diplomatic_relation_by_diplomatic_pair(fat.get_nation_from_province_ownership().id,
state.local_player_nation);
746 if(prov.value <
state.province_definitions.first_sea_province.value) {
757 if(prov.value <
state.province_definitions.first_sea_province.value
758 && fat.get_nation_from_province_ownership().id.value ==
state.local_player_nation.value
759 && fat.get_is_coast()) {
762 dcon::province_id navalprov{};
763 for(
auto p : fat.get_state_from_abstract_state_membership().get_abstract_state_membership()) {
765 navalprov = p.get_province().id;
800 if(prov.value <
state.province_definitions.first_sea_province.value) {
805 std::vector<dcon::religion_fat_id> religions;
806 for(
auto pop : fat.get_pop_location()) {
807 if(std::find(religions.begin(), religions.end(), pop.get_pop().get_religion()) == religions.end()) {
808 religions.push_back(pop.get_pop().get_religion());
811 std::sort(religions.begin(), religions.end(), [&](
auto a,
auto b) {return fat.get_demographics(demographics::to_key(state, a.id)) > fat.get_demographics(demographics::to_key(state, b.id)); });
813 for(
size_t i = 0; i < religions.size(); i++) {
831 if(prov.value <
state.province_definitions.first_sea_province.value) {
836 std::vector<dcon::issue_option_fat_id>
issues;
837 state.world.for_each_issue_option([&](dcon::issue_option_id
id) {
839 issues.push_back(dcon::fatten(state.world, id));
842 std::sort(
issues.begin(),
issues.end(), [&](
auto a,
auto b) {return fat.get_demographics(demographics::to_key(state, a)) > fat.get_demographics(demographics::to_key(state, b)); });
843 for(
size_t i = 0; i < std::min(static_cast<size_t>(5),
issues.size()); i++) {
861 if(prov.value <
state.province_definitions.first_sea_province.value) {
864 for(
auto pop : fat.get_pop_location()) {
865 savings += pop.get_pop().get_savings();
877 if(prov.value <
state.province_definitions.first_sea_province.value) {
882 std::vector<dcon::ideology_fat_id> ideologies;
884 state.world.for_each_ideology([&](dcon::ideology_id
id) {
886 ideologies.push_back(dcon::fatten(state.world, id));
889 std::sort(ideologies.begin(), ideologies.end(), [&](
auto a,
auto b) {return fat.get_demographics(demographics::to_key(state, a.id)) > fat.get_demographics(demographics::to_key(state, b.id)); });
890 for(
size_t i = 0; i < ideologies.size(); i++) {
908 if(prov.value <
state.province_definitions.first_sea_province.value) {
922 if(prov.value <
state.province_definitions.first_sea_province.value) {
938 if(prov.value <
state.province_definitions.first_sea_province.value) {
954 if(prov.value <
state.province_definitions.first_sea_province.value && fat.get_nation_from_province_ownership()) {
957 auto region = fat.get_state_membership();
961 std::vector<dcon::factory_fat_id>
factories;
962 for(
auto m : fat.get_state_from_abstract_state_membership().get_abstract_state_membership()) {
963 auto p = m.get_province();
964 if(p.get_nation_from_province_ownership() == fat.get_nation_from_province_ownership()) {
965 for(
auto f : p.get_factory_location()) {
970 std::sort(
factories.begin(),
factories.end(), [&](
auto a,
auto b) {return a.get_level() > b.get_level(); });
973 for(
size_t i = 0; i <
factories.size(); i++) {
992 if(prov.value <
state.province_definitions.first_sea_province.value) {
1016 if(prov.value <
state.province_definitions.first_sea_province.value) {
1030 if(prov.value <
state.province_definitions.first_sea_province.value) {
1031 auto total_rebels = 0.f;
1032 std::vector<std::pair<dcon::rebel_faction_id, float>> rebel_factions;
1033 for(
auto pop : fat.get_pop_location()) {
1034 if(pop.get_pop().get_pop_rebellion_membership().get_rebel_faction()) {
1035 auto fid = pop.get_pop().get_pop_rebellion_membership().get_rebel_faction().id;
1036 auto rebel_pop = pop.get_pop().get_size();
1037 auto f = std::find_if(rebel_factions.begin(), rebel_factions.end(), [fid](
const auto& pair) {
1038 return pair.first == fid;
1040 if(f != rebel_factions.end()) {
1041 f->second += rebel_pop;
1043 rebel_factions.push_back(std::make_pair(fid, rebel_pop));
1045 total_rebels += pop.get_pop().get_size();
1048 std::sort(rebel_factions.begin(), rebel_factions.end(), [&](
auto a,
auto b) {return a.second > b.second; });
1052 if(total_rebels <= 0.f) {
1058 for(
size_t i = 0; i < rebel_factions.size(); i++) {
1076 if(prov.value <
state.province_definitions.first_sea_province.value) {
1077 auto n =
state.world.province_get_nation_from_province_ownership(prov);
1082 if(n ==
state.local_player_nation) {
1088 }
else if(
state.world.nation_get_is_player_controlled(n)) {
1091 if(!
state.world.nation_get_is_player_controlled(n)) {
1101 if(prov.value <
state.province_definitions.first_sea_province.value) {
1104 for(
const auto pl :
state.world.province_get_pop_location_as_province(prov)) {
1106 total += pl.get_pop().get_size();
1109 float ratio = value / total;
1121 if(prov.value <
state.province_definitions.first_sea_province.value) {
1124 for(
const auto pl :
state.world.province_get_pop_location_as_province(prov)) {
1126 total += pl.get_pop().get_size();
1129 float ratio = value / total;
1141 if(prov.value <
state.province_definitions.first_sea_province.value) {
1144 for(
const auto pl :
state.world.province_get_pop_location_as_province(prov)) {
1146 total += pl.get_pop().get_size();
1149 float ratio = value / total;
1161 if(prov.value <
state.province_definitions.first_sea_province.value) {
1164 float ratio = value / std::max(1.f, total);
1177 if(prov.value <
state.province_definitions.first_sea_province.value) {
1180 float ratio = total_pw / std::max(1.f, total_pw + total_sw);
1194 if(prov.value <
state.province_definitions.first_sea_province.value) {
1205 if(prov.value <
state.province_definitions.first_sea_province.value &&
state.world.province_get_crime(prov)) {
1217 if(prov.value <
state.province_definitions.first_sea_province.value) {
1225 if(prov.value <
state.province_definitions.first_sea_province.value) {
1232 for(
const auto pt :
state.world.in_pop_type) {
1252 if(prov.value <
state.province_definitions.first_sea_province.value) {
1270 if(
auto n =
state.world.province_get_nation_from_province_ownership(prov); n) {
1308 if(fat_id.get_primary_culture()) {
1314 if(fat_id.get_religion()) {
1320 if(fat_id.get_dominant_religion()) {
1326 if(fat_id.get_dominant_ideology()) {
1338 if(
state.current_scene.overwrite_map_tooltip) {
1343 switch(
state.map_state.active_map_mode) {
dcon::text_key get_name() noexcept
pop_satisfaction_wrapper_fat fatten(data_container const &c, pop_satisfaction_wrapper_id id) noexcept
void estimate_directed_immigration(sys::state &state, dcon::nation_id n, std::vector< float > &national_amounts)
constexpr dcon::demographics_key middle_total(21)
constexpr dcon::demographics_key total(0)
dcon::demographics_key to_key(sys::state const &state, dcon::pop_type_id v)
constexpr dcon::demographics_key employable(1)
constexpr dcon::demographics_key consciousness(3)
constexpr dcon::demographics_key rich_total(22)
constexpr dcon::demographics_key poor_total(20)
constexpr dcon::demographics_key employed(2)
float get_monthly_pop_increase(sys::state &state, dcon::pop_id ids)
constexpr dcon::demographics_key literacy(5)
@ clerk_to_craftsmen_ratio
int32_t regiments_under_construction_in_province(sys::state &state, dcon::province_id p)
int32_t mobilized_regiments_created_from_province(sys::state &state, dcon::province_id p)
uint32_t naval_supply_from_naval_base(sys::state &state, dcon::province_id prov, dcon::nation_id nation)
int32_t regiments_created_from_province(sys::state &state, dcon::province_id p)
int32_t mobilized_regiments_possible_from_province(sys::state &state, dcon::province_id p)
bool are_at_war(sys::state const &state, dcon::nation_id a, dcon::nation_id b)
int32_t supply_limit_in_province(sys::state &state, dcon::nation_id n, dcon::province_id p)
int32_t regiments_max_possible_from_province(sys::state &state, dcon::province_id p)
int32_t naval_supply_points(sys::state &state, dcon::nation_id n)
constexpr uint8_t level_mask
int32_t get_level(sys::state &state, dcon::nation_id gp, dcon::nation_id target)
status get_status(sys::state &state, dcon::nation_id n)
std::string int_to_tag(uint32_t v)
void get_active_political_parties(sys::state &state, dcon::nation_id n, std::vector< dcon::political_party_id > &parties)
float get_luxury_needs(sys::state const &state, dcon::pop_id p)
float get_life_needs(sys::state const &state, dcon::pop_id p)
float get_everyday_needs(sys::state const &state, dcon::pop_id p)
constexpr uint8_t impassible_bit
constexpr uint8_t coastal_bit
float direct_distance(sys::state &state, dcon::province_id a, dcon::province_id b)
float sorting_distance(sys::state &state, dcon::province_id a, dcon::province_id b)
bool has_an_owner(sys::state &state, dcon::province_id id)
bool has_naval_base_being_built(sys::state &state, dcon::province_id id)
bool is_overseas(sys::state const &state, dcon::province_id ids)
bool can_build_fort(sys::state &state, dcon::province_id id, dcon::nation_id n)
bool can_start_colony(sys::state &state, dcon::nation_id n, dcon::state_definition_id d)
bool has_fort_being_built(sys::state &state, dcon::province_id id)
float revolt_risk(sys::state &state, dcon::province_id id)
float state_admin_efficiency(sys::state &state, dcon::state_instance_id id)
std::string rebel_name(sys::state &state, dcon::rebel_faction_id reb)
void add_line_break_to_layout_box(sys::state &state, layout_base &dest, layout_box &box)
void add_to_layout_box(sys::state &state, layout_base &dest, layout_box &box, embedded_flag ico)
std::string resolve_string_substitution(sys::state &state, dcon::text_key source_text, substitution_map const &mp)
layout_box open_layout_box(layout_base &dest, int32_t indent)
void add_unparsed_text_to_layout_box(sys::state &state, layout_base &dest, layout_box &box, std::string_view sv, substitution_map const &mp)
void localised_single_sub_box(sys::state &state, layout_base &dest, layout_box &box, std::string_view key, variable_type subkey, substitution value)
void localised_format_box(sys::state &state, layout_base &dest, layout_box &box, std::string_view key, text::substitution_map const &sub)
std::string prettify(int64_t num)
std::string format_float(float num, size_t digits)
void add_line(sys::state &state, layout_base &dest, dcon::text_key txt, int32_t indent)
void add_line_with_condition(sys::state &state, layout_base &dest, std::string_view key, bool condition_met, int32_t indent)
void add_line_break_to_layout(sys::state &state, columnar_layout &dest)
void add_to_substitution_map(substitution_map &mp, variable_type key, substitution value)
void add_divider_to_layout_box(sys::state &state, layout_base &dest, layout_box &box)
ankerl::unordered_dense::map< uint32_t, substitution > substitution_map
std::string produce_simple_string(sys::state const &state, dcon::text_key id)
dcon::text_key get_name(sys::state &state, dcon::nation_id id)
std::string format_percentage(float num, size_t digits)
std::string get_influence_level_name(sys::state const &state, uint8_t v)
void add_space_to_layout_box(sys::state &state, layout_base &dest, layout_box &box)
std::string get_province_state_name(sys::state &state, dcon::province_id prov_id)
std::string prettify_currency(float num)
void close_layout_box(columnar_layout &dest, layout_box &box)
void terrain_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void life_needs_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void colonial_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void workforce_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void modifier_description(sys::state &state, text::layout_base &layout, dcon::modifier_id mid, int32_t indentation=0)
void recruitment_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void picking_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void country_name_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void populate_map_tooltip(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void income_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void factory_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void diplomatic_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void employment_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void party_loyalty_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void rally_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void fort_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void ideology_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void life_rating_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void crime_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
unitamounts calc_amounts_from_army(sys::state &state, dcon::army_fat_id army)
void officers_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void political_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void admin_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void population_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void literacy_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void relation_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void naval_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void mobilization_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void con_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void nationalfocus_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void civilsation_level_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void issues_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void supply_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void infrastructure_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void militancy_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void revolt_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void ctc_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void nationality_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void region_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void growth_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void luxury_needs_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void rank_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void crisis_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void sphere_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void rgooutput_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void religion_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void migration_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void players_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)
void active_modifiers_description(sys::state &state, text::layout_base &layout, dcon::nation_id n, int32_t identation, dcon::national_modifier_value nmid, bool header)
float selected_relative_attrition_amount(sys::state &state, dcon::nation_id n, std::vector< dcon::army_id > &list, dcon::province_id prov)
void everyday_needs_map_tt_box(sys::state &state, text::columnar_layout &contents, dcon::province_id prov)