diff options
Diffstat (limited to 'src/openvic-simulation/map')
-rw-r--r-- | src/openvic-simulation/map/ProvinceInstance.cpp | 15 | ||||
-rw-r--r-- | src/openvic-simulation/map/ProvinceInstance.hpp | 2 |
2 files changed, 8 insertions, 9 deletions
diff --git a/src/openvic-simulation/map/ProvinceInstance.cpp b/src/openvic-simulation/map/ProvinceInstance.cpp index 98e8fcb..e8361da 100644 --- a/src/openvic-simulation/map/ProvinceInstance.cpp +++ b/src/openvic-simulation/map/ProvinceInstance.cpp @@ -1,4 +1,5 @@ #include "ProvinceInstance.hpp" +#include <cstddef> #include "openvic-simulation/country/CountryInstance.hpp" #include "openvic-simulation/economy/production/ProductionType.hpp" @@ -27,7 +28,7 @@ ProvinceInstance::ProvinceInstance( cores {}, slave { false }, crime { nullptr }, - rgo { nullptr }, + rgo { ResourceGatheringOperation {} }, buildings { "buildings", false }, armies {}, navies {}, @@ -40,15 +41,15 @@ ProvinceInstance::ProvinceInstance( max_supported_regiments { 0 } {} GoodDefinition const* ProvinceInstance::get_rgo_good() const { - if(rgo == nullptr) { return nullptr; } - return rgo->get_production_type()->get_output_good(); + if(!rgo.is_valid()) { return nullptr; } + return rgo.get_production_type()->get_output_good(); } void ProvinceInstance::set_rgo_production_type(ProductionType const& rgo_production_type) { if(rgo_production_type.get_template_type() != ProductionType::template_type_t::RGO) { //error } convert_rgo_worker_pops_to_equivalent(rgo_production_type); - rgo->set_production_type(&rgo_production_type); + rgo.set_production_type(&rgo_production_type); } bool ProvinceInstance::set_owner(CountryInstance* new_owner) { @@ -362,10 +363,8 @@ bool ProvinceInstance::apply_history_to_province(ProvinceHistoryEntry const& ent void ProvinceInstance::setup_rgo(ProductionType const& rgo_production_type) { convert_rgo_worker_pops_to_equivalent(rgo_production_type); - rgo = new ResourceGatheringOperation { - &rgo_production_type, - calculate_rgo_size(rgo_production_type) - }; + rgo.set_size_multiplier(calculate_rgo_size(rgo_production_type)); + rgo.set_production_type(&rgo_production_type); } void ProvinceInstance::setup_pop_test_values(IssueManager const& issue_manager) { diff --git a/src/openvic-simulation/map/ProvinceInstance.hpp b/src/openvic-simulation/map/ProvinceInstance.hpp index d551f37..6ca7c6b 100644 --- a/src/openvic-simulation/map/ProvinceInstance.hpp +++ b/src/openvic-simulation/map/ProvinceInstance.hpp @@ -76,7 +76,7 @@ namespace OpenVic { bool PROPERTY(slave); Crime const* PROPERTY_RW(crime); - ResourceGatheringOperation* PROPERTY(rgo); + ResourceGatheringOperation PROPERTY(rgo); IdentifierRegistry<BuildingInstance> IDENTIFIER_REGISTRY(building); ordered_set<ArmyInstance*> PROPERTY(armies); ordered_set<NavyInstance*> PROPERTY(navies); |