aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-simulation/map/State.cpp
diff options
context:
space:
mode:
author wvpm <24685035+wvpm@users.noreply.github.com>2024-10-30 22:08:36 +0100
committer GitHub <noreply@github.com>2024-10-30 22:08:36 +0100
commit5d8451172fefa93f6f53583fa6b8723f1dd3598e (patch)
tree187df50130475006b404c5ab57f0fa679173ad04 /src/openvic-simulation/map/State.cpp
parent48e4e92682db99239e928a67e6677cdd2c53a375 (diff)
parent0d861669d9e1f5d487c810ae01be50f142790f1e (diff)
Merge pull request #206 from OpenVicProject/prepare_for_rgo
Prepare for rgo
Diffstat (limited to 'src/openvic-simulation/map/State.cpp')
-rw-r--r--src/openvic-simulation/map/State.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/openvic-simulation/map/State.cpp b/src/openvic-simulation/map/State.cpp
index 619f97b..31ea05f 100644
--- a/src/openvic-simulation/map/State.cpp
+++ b/src/openvic-simulation/map/State.cpp
@@ -66,16 +66,19 @@ void State::update_gamestate() {
const int32_t potential_workforce_in_state = 0; // sum of worker pops, regardless of employment
const int32_t potential_employment_in_state = 0; // sum of (factory level * production method base_workforce_size)
- fixed_point_t unclamped_score_per_factory = fixed_point_t::_0();
-
- if (potential_employment_in_state > 0) {
- unclamped_score_per_factory = (fixed_point_t { potential_workforce_in_state } / fixed_point_t::_100()).floor() * 400 / potential_employment_in_state;
+ fixed_point_t workforce_scalar;
+ constexpr fixed_point_t min_workforce_scalar = fixed_point_t::_0_20();
+ constexpr fixed_point_t max_workforce_scalar = fixed_point_t::_4();
+ if (potential_employment_in_state <= 0) {
+ workforce_scalar = min_workforce_scalar;
} else {
- industrial_power = total_factory_levels_in_state * std::clamp(
- unclamped_score_per_factory,
- fixed_point_t::_0_20(), fixed_point_t::_4()
+ workforce_scalar = std::clamp(
+ (fixed_point_t { potential_workforce_in_state } / 100).floor() * 400 / potential_employment_in_state,
+ min_workforce_scalar, max_workforce_scalar
);
}
+
+ industrial_power = total_factory_levels_in_state * workforce_scalar;
}
/* Whether two provinces in the same region should be grouped into the same state or not.