Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 17 additions & 17 deletions src/economy/economy_government.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ inline constexpr float base_population_per_admin = 8000.f;
inline constexpr float admin_reform_mult = 100.0f;

// Social issues increase the number of bureaucrats the nation needs per population
float get_nation_administrative_multiplier(sys::state& state, dcon::nation_id nation) {
float get_nation_administrative_multiplier(sys::state const& state, dcon::nation_id nation) {
float admin_mult_sum = 0.0f;
for(auto issue : state.culture_definitions.social_issues) {
admin_mult_sum = admin_mult_sum + state.world.issue_option_get_administrative_multiplier(state.world.nation_get_issues(nation, issue));
Expand All @@ -48,7 +48,7 @@ float get_nation_administrative_multiplier(sys::state& state, dcon::nation_id na
}

// How many bureaucrats do we need to get 1 control scale
float population_per_admin(sys::state& state, dcon::nation_id n) {
float population_per_admin(sys::state const& state, dcon::nation_id n) {
float admin_mult = get_nation_administrative_multiplier(state, n);
float normalized_admin_divisor = admin_mult * admin_reform_mult + 1.0f;
return base_population_per_admin * (1.f + state.world.nation_get_administrative_efficiency(n)) / normalized_admin_divisor;
Expand All @@ -59,7 +59,7 @@ float population_per_admin(sys::state& state, dcon::nation_id n) {
// with the central administration
inline constexpr float base_admin_employment = 250.f;

float count_active_administrations(sys::state& state, dcon::nation_id n) {
float count_active_administrations(sys::state const& state, dcon::nation_id n) {
auto num_of_administrations = 0.f;
{
auto capital = state.world.nation_get_capital(n);
Expand All @@ -76,7 +76,7 @@ float count_active_administrations(sys::state& state, dcon::nation_id n) {
return num_of_administrations;
}

float tax_collection_rate(sys::state& state, dcon::nation_id n, dcon::province_id pid) {
float tax_collection_rate(sys::state const& state, dcon::nation_id n, dcon::province_id pid) {
auto from_control = state.world.province_get_control_ratio(pid);
auto efficiency = nations::tax_efficiency(state, n);
// we can always collect at least some taxes in the capital:
Expand All @@ -88,7 +88,7 @@ float tax_collection_rate(sys::state& state, dcon::nation_id n, dcon::province_i
return std::min(0.5f * from_control * (1.f + efficiency), 1.f);
}

float estimate_spendings_administration_capital(sys::state& state, dcon::nation_id n, float budget) {
float estimate_spendings_administration_capital(sys::state const& state, dcon::nation_id n, float budget) {
auto capital = state.world.nation_get_capital(n);
if(state.world.province_get_nation_from_province_control(capital) != n) {
return 0.f;
Expand All @@ -100,7 +100,7 @@ float estimate_spendings_administration_capital(sys::state& state, dcon::nation_
return demand * wage * state.world.province_get_labor_demand_satisfaction(capital_of_capital_state, economy::labor::high_education_and_accepted);
}

float estimate_spendings_administration_local(sys::state& state, dcon::nation_id n, dcon::administration_id admin, float budget) {
float estimate_spendings_administration_local(sys::state const& state, dcon::nation_id n, dcon::administration_id admin, float budget) {
auto capital = state.world.administration_get_capital(admin);
if(state.world.province_get_nation_from_province_control(capital) != n) {
return 0.f;
Expand All @@ -112,7 +112,7 @@ float estimate_spendings_administration_local(sys::state& state, dcon::nation_id
return demand * wage * state.world.province_get_labor_demand_satisfaction(capital_of_capital_state, economy::labor::high_education_and_accepted);
}

float estimate_spendings_administration(sys::state& state, dcon::nation_id n, float budget) {
float estimate_spendings_administration(sys::state const& state, dcon::nation_id n, float budget) {
float total = 0.f;
auto admin_count = count_active_administrations(state, n);
if(admin_count == 0.f) {
Expand All @@ -127,7 +127,7 @@ float estimate_spendings_administration(sys::state& state, dcon::nation_id n, fl
return total;
}

float full_spendings_administration(sys::state& state, dcon::nation_id n, float budget) {
float full_spendings_administration(sys::state const& state, dcon::nation_id n, float budget) {
auto admin_count = count_active_administrations(state, n);
if(admin_count == 0.f) {
return 0.f;
Expand Down Expand Up @@ -215,7 +215,7 @@ void refund_demand_administration(sys::state& state, dcon::nation_id n) {
});
}

float capital_administration_control_production(sys::state& state, dcon::nation_id n, dcon::province_id capital) {
float capital_administration_control_production(sys::state const& state, dcon::nation_id n, dcon::province_id capital) {
if(state.world.province_get_nation_from_province_control(capital) == n) {
auto capital_state = state.world.province_get_state_membership(capital);
auto capital_of_capital_state = state.world.state_instance_get_capital(capital_state);
Expand All @@ -227,7 +227,7 @@ float capital_administration_control_production(sys::state& state, dcon::nation_
}
return 0.f;
}
float local_administration_control_production(sys::state& state, dcon::nation_id n, dcon::province_id p) {
float local_administration_control_production(sys::state const& state, dcon::nation_id n, dcon::province_id p) {
if(state.world.province_get_nation_from_province_control(p) != n) {
return 0.f;
}
Expand Down Expand Up @@ -359,7 +359,7 @@ void collect_taxes(sys::state& state, ve::vectorizable_buffer<float, dcon::pop_i
});
}

tax_information explain_tax_income_local(sys::state& state, dcon::nation_id n, dcon::province_id province) {
tax_information explain_tax_income_local(sys::state const& state, dcon::nation_id n, dcon::province_id province) {
tax_information result{ };
result.local_multiplier = tax_collection_rate(state, n, province);
result.poor_potential += state.world.province_get_tax_base_poor(province);
Expand All @@ -371,7 +371,7 @@ tax_information explain_tax_income_local(sys::state& state, dcon::nation_id n, d
return result;
}

tax_information explain_tax_income(sys::state& state, dcon::nation_id n) {
tax_information explain_tax_income(sys::state const& state, dcon::nation_id n) {
tax_information result{ };

float total_poor_tax_base = 0.0f;
Expand Down Expand Up @@ -399,7 +399,7 @@ tax_information explain_tax_income(sys::state& state, dcon::nation_id n) {
}


bool non_war_embargo_status(sys::state& state, dcon::nation_id n_a, dcon::nation_id n_b, dcon::nation_id market_leader_a, dcon::nation_id market_leader_b) {
bool non_war_embargo_status(sys::state const& state, dcon::nation_id n_a, dcon::nation_id n_b, dcon::nation_id market_leader_a, dcon::nation_id market_leader_b) {
auto leader_source_tariffs_rel = state.world.get_unilateral_relationship_by_unilateral_pair(market_leader_b, market_leader_a);
auto leader_target_tariffs_rel = state.world.get_unilateral_relationship_by_unilateral_pair(market_leader_a, market_leader_b);
auto nation_source_tariffs_rel = state.world.get_unilateral_relationship_by_unilateral_pair(n_b, n_a);
Expand All @@ -411,7 +411,7 @@ bool non_war_embargo_status(sys::state& state, dcon::nation_id n_a, dcon::nation
return state.world.unilateral_relationship_get_embargo(nation_source_tariffs_rel) || state.world.unilateral_relationship_get_embargo(nation_target_tariffs_rel);
}

bool war_embargo_status(sys::state& state, dcon::nation_id n_a, dcon::nation_id n_b, dcon::nation_id market_leader_a, dcon::nation_id market_leader_b) {
bool war_embargo_status(sys::state const& state, dcon::nation_id n_a, dcon::nation_id n_b, dcon::nation_id market_leader_a, dcon::nation_id market_leader_b) {
auto market_leaders_at_war = military::are_at_war(state, market_leader_a, market_leader_a);
if(market_leaders_at_war) {
return true;
Expand All @@ -420,7 +420,7 @@ bool war_embargo_status(sys::state& state, dcon::nation_id n_a, dcon::nation_id

}

bool has_active_embargo(sys::state& state, dcon::nation_id from, dcon::nation_id to) {
bool has_active_embargo(sys::state const& state, dcon::nation_id from, dcon::nation_id to) {
// Only shows if the diplomatic relationship has an embargo, and dosent show "derived" embargos from spheres and subjects

auto rel_1 = state.world.get_unilateral_relationship_by_unilateral_pair(to, from);
Expand All @@ -433,7 +433,7 @@ bool has_active_embargo(sys::state& state, dcon::nation_id from, dcon::nation_id

// Calculate employment of local administrations in the province for the UI.
// When using, check for capital administration separately
std::vector<employment_record> explain_local_administration_employment(sys::state& state, dcon::province_id p) {
std::vector<employment_record> explain_local_administration_employment(sys::state const& state, dcon::province_id p) {
auto n = state.world.province_get_nation_from_province_ownership(p);
auto record = employment_record{ economy::labor::high_education_and_accepted, 0.f, 0.f, 0.f };

Expand All @@ -452,7 +452,7 @@ std::vector<employment_record> explain_local_administration_employment(sys::stat
}

// Calculate employment of the capital administration for the UI
std::vector<employment_record> explain_capital_administration_employment(sys::state& state, dcon::nation_id n) {
std::vector<employment_record> explain_capital_administration_employment(sys::state const& state, dcon::nation_id n) {
auto capital = state.world.nation_get_capital(n);
auto capital_state = state.world.province_get_state_membership(capital);
auto capital_of_capital_state = state.world.state_instance_get_capital(capital_state);
Expand Down
28 changes: 14 additions & 14 deletions src/economy/economy_government.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,21 @@ inline constexpr float local_administration_efficiency = 0.5f;
// see details about internal workings of the system in cpp file

// ratio of taxes you can collect in a given province
float tax_collection_rate(sys::state& state, dcon::nation_id n, dcon::province_id);
float count_active_administrations(sys::state& state, dcon::nation_id n);
float tax_collection_rate(sys::state const& state, dcon::nation_id n, dcon::province_id);
float count_active_administrations(sys::state const& state, dcon::nation_id n);
// these functions estimate spendings for given budget priority

// estimate "imperial administration" spendings which are based on total population of the realm
float estimate_spendings_administration_capital(sys::state& state, dcon::nation_id n, float budget);
float estimate_spendings_administration_capital(sys::state const& state, dcon::nation_id n, float budget);
// estimate total spendings for your administration
float estimate_spendings_administration(sys::state& state, dcon::nation_id n, float budget);
float estimate_spendings_administration(sys::state const& state, dcon::nation_id n, float budget);
// total current spendings
float full_spendings_administration(sys::state& state, dcon::nation_id n, float budget);
float full_spendings_administration(sys::state const& state, dcon::nation_id n, float budget);
// register demand on labor or produce control
void update_consumption_administration(sys::state& state, dcon::nation_id n, float total_budget);

float capital_administration_control_production(sys::state& state, dcon::nation_id n, dcon::province_id capital);
float local_administration_control_production(sys::state& state, dcon::nation_id n, dcon::province_id p);
float capital_administration_control_production(sys::state const& state, dcon::nation_id n, dcon::province_id capital);
float local_administration_control_production(sys::state const& state, dcon::nation_id n, dcon::province_id p);
void update_production_administration(sys::state& state, dcon::nation_id n);
void refund_demand_administration(sys::state& state, dcon::nation_id n);

Expand All @@ -46,13 +46,13 @@ struct tax_information {
};

// sums up all tax income all over the nation
tax_information explain_tax_income(sys::state& state, dcon::nation_id n);
tax_information explain_tax_income_local(sys::state& state, dcon::nation_id n, dcon::province_id sid);
tax_information explain_tax_income(sys::state const& state, dcon::nation_id n);
tax_information explain_tax_income_local(sys::state const& state, dcon::nation_id n, dcon::province_id sid);

bool war_embargo_status(sys::state& state, dcon::nation_id n_a, dcon::nation_id n_b, dcon::nation_id market_leader_a, dcon::nation_id market_leader_b);
bool non_war_embargo_status(sys::state& state, dcon::nation_id n_a, dcon::nation_id n_b, dcon::nation_id market_leader_a, dcon::nation_id market_leader_b);
bool has_active_embargo(sys::state& state, dcon::nation_id from, dcon::nation_id to);
bool war_embargo_status(sys::state const& state, dcon::nation_id n_a, dcon::nation_id n_b, dcon::nation_id market_leader_a, dcon::nation_id market_leader_b);
bool non_war_embargo_status(sys::state const& state, dcon::nation_id n_a, dcon::nation_id n_b, dcon::nation_id market_leader_a, dcon::nation_id market_leader_b);
bool has_active_embargo(sys::state const& state, dcon::nation_id from, dcon::nation_id to);

std::vector<employment_record> explain_local_administration_employment(sys::state& state, dcon::province_id p);
std::vector<employment_record> explain_capital_administration_employment(sys::state& state, dcon::nation_id n);
std::vector<employment_record> explain_local_administration_employment(sys::state const& state, dcon::province_id p);
std::vector<employment_record> explain_capital_administration_employment(sys::state const& state, dcon::nation_id n);
}
8 changes: 4 additions & 4 deletions src/economy/economy_pops.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1786,7 +1786,7 @@ float estimate_pop_demand_internal_luxury(
* invention_factor;
}

float estimate_pop_spending_life(sys::state& state, dcon::pop_id pop, dcon::commodity_id cid) {
float estimate_pop_spending_life(sys::state const& state, dcon::pop_id pop, dcon::commodity_id cid) {
auto pid = state.world.pop_get_province_from_pop_location(pop);
auto nation = state.world.province_get_nation_from_province_ownership(pid);
auto zone = state.world.province_get_state_membership(pid);
Expand Down Expand Up @@ -1814,7 +1814,7 @@ float estimate_pop_spending_life(sys::state& state, dcon::pop_id pop, dcon::comm
return demand * actually_bought * cost;
}

float estimate_pop_spending_everyday(sys::state& state, dcon::pop_id pop, dcon::commodity_id cid) {
float estimate_pop_spending_everyday(sys::state const& state, dcon::pop_id pop, dcon::commodity_id cid) {
auto pid = state.world.pop_get_province_from_pop_location(pop);
auto nation = state.world.province_get_nation_from_province_ownership(pid);
auto zone = state.world.province_get_state_membership(pid);
Expand Down Expand Up @@ -1842,7 +1842,7 @@ float estimate_pop_spending_everyday(sys::state& state, dcon::pop_id pop, dcon::
return demand * actually_bought * cost;
}

float estimate_pop_spending_luxury(sys::state& state, dcon::pop_id pop, dcon::commodity_id cid) {
float estimate_pop_spending_luxury(sys::state const& state, dcon::pop_id pop, dcon::commodity_id cid) {
auto pid = state.world.pop_get_province_from_pop_location(pop);
auto nation = state.world.province_get_nation_from_province_ownership(pid);
auto zone = state.world.province_get_state_membership(pid);
Expand Down Expand Up @@ -1876,7 +1876,7 @@ vectorized_pops_budget<float> prepare_pop_budget(const sys::state& state, dcon::

}

float estimate_pops_consumption(sys::state& state, dcon::commodity_id c, dcon::province_id p) {
float estimate_pops_consumption(sys::state const& state, dcon::commodity_id c, dcon::province_id p) {
auto zone = state.world.province_get_state_membership(p);
auto market = state.world.state_instance_get_market_from_local_market(zone);

Expand Down
8 changes: 4 additions & 4 deletions src/economy/economy_pops.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,11 @@ float estimate_artisan_income(sys::state const& state, dcon::pop_id pop);
money_from_nation estimate_income_from_nation(sys::state const& state, dcon::pop_id pop);
float estimate_trade_spending(sys::state const& state, dcon::pop_id pop);
float estimate_tax_spending(sys::state const& state, dcon::pop_id pop, float tax_rate);
float estimate_pop_spending_life(sys::state& state, dcon::pop_id pop, dcon::commodity_id cid);
float estimate_pop_spending_everyday(sys::state& state, dcon::pop_id pop, dcon::commodity_id cid);
float estimate_pop_spending_luxury(sys::state& state, dcon::pop_id pop, dcon::commodity_id cid);
float estimate_pop_spending_life(sys::state const& state, dcon::pop_id pop, dcon::commodity_id cid);
float estimate_pop_spending_everyday(sys::state const& state, dcon::pop_id pop, dcon::commodity_id cid);
float estimate_pop_spending_luxury(sys::state const& state, dcon::pop_id pop, dcon::commodity_id cid);
}

float estimate_pops_consumption(sys::state& state, dcon::commodity_id c, dcon::province_id p);
float estimate_pops_consumption(sys::state const& state, dcon::commodity_id c, dcon::province_id p);

}
Loading
Loading