aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-simulation/economy/GoodInstance.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/openvic-simulation/economy/GoodInstance.cpp')
-rw-r--r--src/openvic-simulation/economy/GoodInstance.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/openvic-simulation/economy/GoodInstance.cpp b/src/openvic-simulation/economy/GoodInstance.cpp
index 937706d..6fe3a2f 100644
--- a/src/openvic-simulation/economy/GoodInstance.cpp
+++ b/src/openvic-simulation/economy/GoodInstance.cpp
@@ -6,8 +6,12 @@ GoodInstance::GoodInstance(GoodDefinition const& new_good_definition)
: HasIdentifierAndColour { new_good_definition }, good_definition { new_good_definition },
price { new_good_definition.get_base_price() }, available { new_good_definition.is_available_from_start() } {}
-bool GoodInstanceManager::setup_good_instances(GoodDefinitionManager const& good_definition_manager) {
- good_instances.reset();
+bool GoodInstanceManager::setup(GoodDefinitionManager const& good_definition_manager) {
+ if (good_instances_are_locked()) {
+ Logger::error("Cannot set up good instances - they are already locked!");
+ return false;
+ }
+
good_instances.reserve(good_definition_manager.get_good_definition_count());
bool ret = true;
@@ -16,5 +20,7 @@ bool GoodInstanceManager::setup_good_instances(GoodDefinitionManager const& good
ret &= good_instances.add_item({ good });
}
+ lock_good_instances();
+
return ret;
}