diff options
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 |
commit | 5d8451172fefa93f6f53583fa6b8723f1dd3598e (patch) | |
tree | 187df50130475006b404c5ab57f0fa679173ad04 /src/openvic-simulation/map/State.cpp | |
parent | 48e4e92682db99239e928a67e6677cdd2c53a375 (diff) | |
parent | 0d861669d9e1f5d487c810ae01be50f142790f1e (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.cpp | 17 |
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. |