aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-simulation/pop/Pop.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/openvic-simulation/pop/Pop.cpp')
-rw-r--r--src/openvic-simulation/pop/Pop.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/openvic-simulation/pop/Pop.cpp b/src/openvic-simulation/pop/Pop.cpp
index dd829d9..85730e3 100644
--- a/src/openvic-simulation/pop/Pop.cpp
+++ b/src/openvic-simulation/pop/Pop.cpp
@@ -18,7 +18,7 @@ using enum PopType::income_type_t;
PopBase::PopBase(
PopType const& new_type, Culture const& new_culture, Religion const& new_religion, pop_size_t new_size,
fixed_point_t new_militancy, fixed_point_t new_consciousness, RebelType const* new_rebel_type
-) : type { new_type }, culture { new_culture }, religion { new_religion }, size { new_size }, militancy { new_militancy },
+) : type { &new_type }, culture { new_culture }, religion { new_religion }, size { new_size }, militancy { new_militancy },
consciousness { new_consciousness }, rebel_type { new_rebel_type } {}
Pop::Pop(PopBase const& pop_base, decltype(ideologies)::keys_t const& ideology_keys)
@@ -114,6 +114,16 @@ void Pop::setup_pop_test_values(IssueManager const& issue_manager) {
luxury_needs_fulfilled = test_range();
}
+void Pop::convert_to_equivalent() {
+ PopType const* const equivalent = get_type()->get_equivalent();
+ if(equivalent == nullptr) {
+ //error?
+ }
+ else {
+ type = equivalent;
+ }
+}
+
void Pop::set_location(ProvinceInstance const& new_location) {
if (location != &new_location) {
location = &new_location;
@@ -130,7 +140,7 @@ void Pop::set_location(ProvinceInstance const& new_location) {
void Pop::update_gamestate(
DefineManager const& define_manager, CountryInstance const* owner, fixed_point_t const& pop_size_per_regiment_multiplier
) {
- if (type.get_can_be_recruited()) {
+ if (type->get_can_be_recruited()) {
if (
size < define_manager.get_min_pop_size_for_regiment() || owner == nullptr ||
!RegimentType::allowed_cultures_check_culture_in_country(owner->get_allowed_regiment_cultures(), culture, *owner)