@@ -1367,7 +1367,7 @@ void CountryInstance::_update_budget() {
13671367 administrative_efficiency_from_administrators.set (fixed_point_t ::_1);
13681368 administrator_percentage.set (fixed_point_t ::_0);
13691369 } else {
1370- administrator_percentage.set (fixed_point_t::parse (administrators) / total_non_colonial_population);
1370+ administrator_percentage.set (fixed_point_t (administrators) / total_non_colonial_population);
13711371
13721372 const fixed_point_t desired_administrators = desired_administrator_percentage.get_untracked () * total_non_colonial_population;
13731373 const fixed_point_t administrative_efficiency_from_administrators_unclamped = std::min (
@@ -1563,8 +1563,11 @@ void CountryInstance::_update_military() {
15631563 }
15641564
15651565 military_power_from_land.set (
1566- supply_consumption * fixed_point_t::parse (regular_army_size) * sum_of_regiment_type_stats
1567- / fixed_point_t::parse (7 * (1 + unit_type_manager.get_regiment_type_count ()))
1566+ supply_consumption * fixed_point_t::mul_div (
1567+ sum_of_regiment_type_stats,
1568+ fixed_point_t::parse_raw (regular_army_size),
1569+ fixed_point_t::parse_raw (7 * (1 + unit_type_manager.get_regiment_type_count ()))
1570+ )
15681571 );
15691572
15701573 if (disarmed) {
@@ -1588,7 +1591,12 @@ void CountryInstance::_update_military() {
15881591 military_power_from_sea.set (military_power_from_sea_running_total / 250 );
15891592
15901593 military_power_from_leaders.set (
1591- fixed_point_t::parse (std::min (get_leader_count (), deployed_non_mobilised_regiments))
1594+ fixed_point_t::parse_capped (
1595+ std::min (
1596+ get_leader_count (),
1597+ deployed_non_mobilised_regiments
1598+ )
1599+ )
15921600 );
15931601
15941602 // Mobilisation calculations
@@ -1598,8 +1606,8 @@ void CountryInstance::_update_military() {
15981606
15991607 // TODO - use country_defines.get_min_mobilize_limit(); (wiki: "lowest maximum of brigades you can mobilize. (by default 3)")
16001608
1601- mobilisation_max_regiment_count =
1602- (( fixed_point_t ::_1 + mobilisation_impact) * fixed_point_t::parse (regiment_count)). floor < size_t >( );
1609+ mobilisation_max_regiment_count = regiment_count
1610+ + fixed_point_t::multiply_truncate (regiment_count, mobilisation_impact );
16031611
16041612 mobilisation_potential_regiment_count = 0 ; // TODO - calculate max regiments from poor citizens
16051613 if (mobilisation_potential_regiment_count > mobilisation_max_regiment_count) {
@@ -1626,10 +1634,12 @@ void CountryInstance::_update_military() {
16261634 naval_unit_start_experience += get_modifier_effect_value (*modifier_effect_cache.get_naval_unit_start_experience ());
16271635
16281636 recruit_time = fixed_point_t ::_1 + get_modifier_effect_value (*modifier_effect_cache.get_unit_recruitment_time ());
1629- combat_width = ( //
1630- fixed_point_t::parse (military_defines.get_base_combat_width ()) +
1631- get_modifier_effect_value (*modifier_effect_cache.get_combat_width_additive ())
1632- ).floor <int32_t >();
1637+ combat_width = combat_width_t (
1638+ (
1639+ type_safe::get (military_defines.get_base_combat_width ())
1640+ + get_modifier_effect_value (*modifier_effect_cache.get_combat_width_additive ())
1641+ ).floor <type_safe::underlying_type<combat_width_t >>()
1642+ );
16331643 dig_in_cap = get_modifier_effect_value (*modifier_effect_cache.get_dig_in_cap ()).floor <int32_t >();
16341644 military_tactics = military_defines.get_base_military_tactics () +
16351645 get_modifier_effect_value (*modifier_effect_cache.get_military_tactics ());
0 commit comments