@@ -111,6 +111,11 @@ CountryInstance::CountryInstance(
111111 total_population { 0 },
112112 national_consciousness { 0 },
113113 national_militancy { 0 },
114+ population_by_strata { &strata_keys },
115+ militancy_by_strata { &strata_keys },
116+ life_needs_fulfilled_by_strata { &strata_keys },
117+ everyday_needs_fulfilled_by_strata { &strata_keys },
118+ luxury_needs_fulfilled_by_strata { &strata_keys },
114119 pop_type_distribution { &pop_type_keys },
115120 ideology_distribution { &ideology_keys },
116121 issue_distribution {},
@@ -220,14 +225,6 @@ bool CountryInstance::is_neighbour(CountryInstance const& country) const {
220225 return neighbouring_countries.contains (&country);
221226}
222227
223- fixed_point_t CountryInstance::get_pop_type_proportion (PopType const & pop_type) const {
224- return pop_type_distribution[pop_type];
225- }
226-
227- fixed_point_t CountryInstance::get_ideology_support (Ideology const & ideology) const {
228- return ideology_distribution[ideology];
229- }
230-
231228fixed_point_t CountryInstance::get_issue_support (Issue const & issue) const {
232229 const decltype (issue_distribution)::const_iterator it = issue_distribution.find (&issue);
233230
@@ -915,6 +912,13 @@ void CountryInstance::_update_population() {
915912 national_literacy = 0 ;
916913 national_consciousness = 0 ;
917914 national_militancy = 0 ;
915+
916+ population_by_strata.clear ();
917+ militancy_by_strata.clear ();
918+ life_needs_fulfilled_by_strata.clear ();
919+ everyday_needs_fulfilled_by_strata.clear ();
920+ luxury_needs_fulfilled_by_strata.clear ();
921+
918922 pop_type_distribution.clear ();
919923 ideology_distribution.clear ();
920924 issue_distribution.clear ();
@@ -931,6 +935,18 @@ void CountryInstance::_update_population() {
931935 national_consciousness += state->get_average_consciousness () * state_population;
932936 national_militancy += state->get_average_militancy () * state_population;
933937
938+ population_by_strata += state->get_population_by_strata ();
939+ militancy_by_strata.mul_add (state->get_militancy_by_strata (), state->get_population_by_strata ());
940+ life_needs_fulfilled_by_strata.mul_add (
941+ state->get_life_needs_fulfilled_by_strata (), state->get_population_by_strata ()
942+ );
943+ everyday_needs_fulfilled_by_strata.mul_add (
944+ state->get_everyday_needs_fulfilled_by_strata (), state->get_population_by_strata ()
945+ );
946+ luxury_needs_fulfilled_by_strata.mul_add (
947+ state->get_luxury_needs_fulfilled_by_strata (), state->get_population_by_strata ()
948+ );
949+
934950 pop_type_distribution += state->get_pop_type_distribution ();
935951 ideology_distribution += state->get_ideology_distribution ();
936952 issue_distribution += state->get_issue_distribution ();
@@ -943,6 +959,11 @@ void CountryInstance::_update_population() {
943959 national_literacy /= total_population;
944960 national_consciousness /= total_population;
945961 national_militancy /= total_population;
962+
963+ militancy_by_strata /= population_by_strata;
964+ life_needs_fulfilled_by_strata /= population_by_strata;
965+ everyday_needs_fulfilled_by_strata /= population_by_strata;
966+ luxury_needs_fulfilled_by_strata /= population_by_strata;
946967 }
947968
948969 // TODO - update national focus capacity
0 commit comments