aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-simulation/economy/Building.cpp
diff options
context:
space:
mode:
author hop311 <hop3114@gmail.com>2023-10-29 15:11:10 +0100
committer hop311 <hop3114@gmail.com>2023-10-29 21:08:08 +0100
commit1b5e43fa7750cc4025d32f18390593cbce3ba842 (patch)
treed37fcb69766ec029ea4e3e2816c419f9d7e05f7c /src/openvic-simulation/economy/Building.cpp
parent164264b047921dbe1567d2af183e1cffb200a8cb (diff)
Clang-format formatting (with manual cleanup)
Diffstat (limited to 'src/openvic-simulation/economy/Building.cpp')
-rw-r--r--src/openvic-simulation/economy/Building.cpp150
1 files changed, 77 insertions, 73 deletions
diff --git a/src/openvic-simulation/economy/Building.cpp b/src/openvic-simulation/economy/Building.cpp
index 29eb50e..a79741b 100644
--- a/src/openvic-simulation/economy/Building.cpp
+++ b/src/openvic-simulation/economy/Building.cpp
@@ -5,15 +5,16 @@
using namespace OpenVic;
using namespace OpenVic::NodeTools;
-Building::Building(std::string_view identifier, BuildingType const& type, ARGS)
- : HasIdentifier { identifier }, type { type }, modifier { std::move(modifier) }, on_completion { on_completion },
- completion_size { completion_size }, max_level { max_level }, goods_cost { std::move(goods_cost) }, cost { cost },
- build_time { build_time }, visibility { visibility }, on_map { on_map }, default_enabled { default_enabled },
- production_type { production_type }, pop_build_factory { pop_build_factory }, strategic_factory { strategic_factory },
- advanced_factory { advanced_factory }, fort_level { fort_level }, naval_capacity { naval_capacity },
- colonial_points { std::move(colonial_points) }, in_province { in_province }, one_per_state { one_per_state },
- colonial_range { colonial_range }, infrastructure { infrastructure }, spawn_railway_track { spawn_railway_track },
- sail { sail }, steam { steam }, capital { capital }, port { port } {}
+Building::Building(
+ std::string_view identifier, BuildingType const& type, ARGS
+) : HasIdentifier { identifier }, type { type }, modifier { std::move(modifier) }, on_completion { on_completion },
+ completion_size { completion_size }, max_level { max_level }, goods_cost { std::move(goods_cost) }, cost { cost },
+ build_time { build_time }, visibility { visibility }, on_map { on_map }, default_enabled { default_enabled },
+ production_type { production_type }, pop_build_factory { pop_build_factory }, strategic_factory { strategic_factory },
+ advanced_factory { advanced_factory }, fort_level { fort_level }, naval_capacity { naval_capacity },
+ colonial_points { std::move(colonial_points) }, in_province { in_province }, one_per_state { one_per_state },
+ colonial_range { colonial_range }, infrastructure { infrastructure }, spawn_railway_track { spawn_railway_track },
+ sail { sail }, steam { steam }, capital { capital }, port { port } {}
BuildingType const& Building::get_type() const {
return type;
@@ -161,8 +162,7 @@ void BuildingInstance::update_state(Date const& today) {
case ExpansionState::Expanding:
expansion_progress = static_cast<double>(today - start) / static_cast<double>(end - start);
break;
- default:
- expansion_state = _can_expand() ? ExpansionState::CanExpand : ExpansionState::CannotExpand;
+ default: expansion_state = _can_expand() ? ExpansionState::CanExpand : ExpansionState::CannotExpand;
}
}
@@ -206,9 +206,10 @@ bool BuildingManager::add_building(std::string_view identifier, BuildingType con
});
}
-bool BuildingManager::load_buildings_file(GoodManager const& good_manager,
- ProductionTypeManager const& production_type_manager,
- ModifierManager const& modifier_manager, ast::NodeCPtr root) {
+bool BuildingManager::load_buildings_file(
+ GoodManager const& good_manager, ProductionTypeManager const& production_type_manager,
+ ModifierManager const& modifier_manager, ast::NodeCPtr root
+) {
bool ret = expect_dictionary_reserve_length(buildings, [this](std::string_view, ast::NodeCPtr value) -> bool {
return expect_key("type", expect_identifier(
std::bind(&BuildingManager::add_building_type, this, std::placeholders::_1)
@@ -216,65 +217,68 @@ bool BuildingManager::load_buildings_file(GoodManager const& good_manager,
})(root);
lock_building_types();
- ret &= expect_dictionary([this, &good_manager, &production_type_manager, &modifier_manager](
- std::string_view key, ast::NodeCPtr value) -> bool {
- BuildingType const* type = nullptr;
- ProductionType const* production_type = nullptr;
- std::string_view on_completion;
- fixed_point_t completion_size = 0, cost = 0, infrastructure = 0, colonial_range = 0;
- Building::level_t max_level = 0, fort_level = 0;
- Good::good_map_t goods_cost;
- Timespan build_time;
- bool visibility = false, on_map = false, default_enabled = false, pop_build_factory = false;
- bool strategic_factory = false, advanced_factory = false;
- bool in_province = false, one_per_state = false, spawn_railway_track = false, sail = false, steam = false;
- bool capital = false, port = false;
- uint64_t naval_capacity = 0;
- std::vector<fixed_point_t> colonial_points;
- ModifierValue modifier;
-
- bool ret = modifier_manager.expect_modifier_value_and_keys(move_variable_callback(modifier),
- "type", ONE_EXACTLY, expect_building_type_identifier(assign_variable_callback_pointer(type)),
- "on_completion", ZERO_OR_ONE, expect_identifier(assign_variable_callback(on_completion)),
- "completion_size", ZERO_OR_ONE, expect_fixed_point(assign_variable_callback(completion_size)),
- "max_level", ONE_EXACTLY, expect_uint(assign_variable_callback(max_level)),
- "goods_cost", ONE_EXACTLY, good_manager.expect_good_decimal_map(move_variable_callback(goods_cost)),
- "cost", ZERO_OR_MORE, expect_fixed_point(assign_variable_callback(cost)),
- "time", ONE_EXACTLY, expect_days(assign_variable_callback(build_time)),
- "visibility", ONE_EXACTLY, expect_bool(assign_variable_callback(visibility)),
- "onmap", ONE_EXACTLY, expect_bool(assign_variable_callback(on_map)),
- "default_enabled", ZERO_OR_ONE, expect_bool(assign_variable_callback(default_enabled)),
- "production_type", ZERO_OR_ONE, production_type_manager.expect_production_type_identifier(
- assign_variable_callback_pointer(production_type)),
- "pop_build_factory", ZERO_OR_ONE, expect_bool(assign_variable_callback(pop_build_factory)),
- "strategic_factory", ZERO_OR_ONE, expect_bool(assign_variable_callback(strategic_factory)),
- "advanced_factory", ZERO_OR_ONE, expect_bool(assign_variable_callback(advanced_factory)),
- "fort_level", ZERO_OR_ONE, expect_uint(assign_variable_callback(fort_level)),
- "naval_capacity", ZERO_OR_ONE, expect_uint(assign_variable_callback(naval_capacity)),
- "colonial_points", ZERO_OR_ONE, expect_list(expect_fixed_point([&colonial_points](fixed_point_t points) -> bool {
- colonial_points.push_back(points);
- return true;
- })),
- "province", ZERO_OR_ONE, expect_bool(assign_variable_callback(in_province)),
- "one_per_state", ZERO_OR_ONE, expect_bool(assign_variable_callback(one_per_state)),
- "colonial_range", ZERO_OR_ONE, expect_fixed_point(assign_variable_callback(colonial_range)),
- "infrastructure", ZERO_OR_ONE, expect_fixed_point(assign_variable_callback(infrastructure)),
- "spawn_railway_track", ZERO_OR_ONE, expect_bool(assign_variable_callback(spawn_railway_track)),
- "sail", ZERO_OR_ONE, expect_bool(assign_variable_callback(sail)),
- "steam", ZERO_OR_ONE, expect_bool(assign_variable_callback(steam)),
- "capital", ZERO_OR_ONE, expect_bool(assign_variable_callback(capital)),
- "port", ZERO_OR_ONE, expect_bool(assign_variable_callback(port))
- )(value);
-
- ret &= add_building(
- key, type, std::move(modifier), on_completion, completion_size, max_level, std::move(goods_cost),
- cost, build_time, visibility, on_map, default_enabled, production_type, pop_build_factory, strategic_factory,
- advanced_factory, fort_level, naval_capacity, std::move(colonial_points), in_province, one_per_state,
- colonial_range, infrastructure, spawn_railway_track, sail, steam, capital, port
- );
-
- return ret;
- })(root);
+ ret &= expect_dictionary(
+ [this, &good_manager, &production_type_manager, &modifier_manager](std::string_view key, ast::NodeCPtr value) -> bool {
+ BuildingType const* type = nullptr;
+ ProductionType const* production_type = nullptr;
+ std::string_view on_completion;
+ fixed_point_t completion_size = 0, cost = 0, infrastructure = 0, colonial_range = 0;
+ Building::level_t max_level = 0, fort_level = 0;
+ Good::good_map_t goods_cost;
+ Timespan build_time;
+ bool visibility = false, on_map = false, default_enabled = false, pop_build_factory = false;
+ bool strategic_factory = false, advanced_factory = false;
+ bool in_province = false, one_per_state = false, spawn_railway_track = false, sail = false, steam = false;
+ bool capital = false, port = false;
+ uint64_t naval_capacity = 0;
+ std::vector<fixed_point_t> colonial_points;
+ ModifierValue modifier;
+
+ bool ret = modifier_manager.expect_modifier_value_and_keys(move_variable_callback(modifier),
+ "type", ONE_EXACTLY, expect_building_type_identifier(assign_variable_callback_pointer(type)),
+ "on_completion", ZERO_OR_ONE, expect_identifier(assign_variable_callback(on_completion)),
+ "completion_size", ZERO_OR_ONE, expect_fixed_point(assign_variable_callback(completion_size)),
+ "max_level", ONE_EXACTLY, expect_uint(assign_variable_callback(max_level)),
+ "goods_cost", ONE_EXACTLY, good_manager.expect_good_decimal_map(move_variable_callback(goods_cost)),
+ "cost", ZERO_OR_MORE, expect_fixed_point(assign_variable_callback(cost)),
+ "time", ONE_EXACTLY, expect_days(assign_variable_callback(build_time)),
+ "visibility", ONE_EXACTLY, expect_bool(assign_variable_callback(visibility)),
+ "onmap", ONE_EXACTLY, expect_bool(assign_variable_callback(on_map)),
+ "default_enabled", ZERO_OR_ONE, expect_bool(assign_variable_callback(default_enabled)),
+ "production_type", ZERO_OR_ONE, production_type_manager.expect_production_type_identifier(
+ assign_variable_callback_pointer(production_type)),
+ "pop_build_factory", ZERO_OR_ONE, expect_bool(assign_variable_callback(pop_build_factory)),
+ "strategic_factory", ZERO_OR_ONE, expect_bool(assign_variable_callback(strategic_factory)),
+ "advanced_factory", ZERO_OR_ONE, expect_bool(assign_variable_callback(advanced_factory)),
+ "fort_level", ZERO_OR_ONE, expect_uint(assign_variable_callback(fort_level)),
+ "naval_capacity", ZERO_OR_ONE, expect_uint(assign_variable_callback(naval_capacity)),
+ "colonial_points", ZERO_OR_ONE, expect_list(expect_fixed_point(
+ [&colonial_points](fixed_point_t points) -> bool {
+ colonial_points.push_back(points);
+ return true;
+ }
+ )),
+ "province", ZERO_OR_ONE, expect_bool(assign_variable_callback(in_province)),
+ "one_per_state", ZERO_OR_ONE, expect_bool(assign_variable_callback(one_per_state)),
+ "colonial_range", ZERO_OR_ONE, expect_fixed_point(assign_variable_callback(colonial_range)),
+ "infrastructure", ZERO_OR_ONE, expect_fixed_point(assign_variable_callback(infrastructure)),
+ "spawn_railway_track", ZERO_OR_ONE, expect_bool(assign_variable_callback(spawn_railway_track)),
+ "sail", ZERO_OR_ONE, expect_bool(assign_variable_callback(sail)),
+ "steam", ZERO_OR_ONE, expect_bool(assign_variable_callback(steam)),
+ "capital", ZERO_OR_ONE, expect_bool(assign_variable_callback(capital)),
+ "port", ZERO_OR_ONE, expect_bool(assign_variable_callback(port))
+ )(value);
+
+ ret &= add_building(
+ key, type, std::move(modifier), on_completion, completion_size, max_level, std::move(goods_cost), cost,
+ build_time, visibility, on_map, default_enabled, production_type, pop_build_factory, strategic_factory,
+ advanced_factory, fort_level, naval_capacity, std::move(colonial_points), in_province, one_per_state,
+ colonial_range, infrastructure, spawn_railway_track, sail, steam, capital, port
+ );
+
+ return ret;
+ }
+ )(root);
lock_buildings();
return ret;