aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-simulation/defines/PopsDefines.hpp
diff options
context:
space:
mode:
author Hop311 <Hop3114@gmail.com>2024-10-31 21:50:36 +0100
committer GitHub <noreply@github.com>2024-10-31 21:50:36 +0100
commitb602c10cf890c5973c1efbe8d958bf9b67499efe (patch)
tree3b34e78831ab11d6333ce2822b10244995a69848 /src/openvic-simulation/defines/PopsDefines.hpp
parent968c60580997d26035496cc675138e580354332f (diff)
parentdbf58b1b1d318b4a82cf22b5b8e720c753388f4b (diff)
Merge pull request #222 from OpenVicProject/defines-variables
Load defines directly into named and typed variables rather than using an IdentifierRegistry
Diffstat (limited to 'src/openvic-simulation/defines/PopsDefines.hpp')
-rw-r--r--src/openvic-simulation/defines/PopsDefines.hpp82
1 files changed, 82 insertions, 0 deletions
diff --git a/src/openvic-simulation/defines/PopsDefines.hpp b/src/openvic-simulation/defines/PopsDefines.hpp
new file mode 100644
index 0000000..50d5b79
--- /dev/null
+++ b/src/openvic-simulation/defines/PopsDefines.hpp
@@ -0,0 +1,82 @@
+#pragma once
+
+#include "openvic-simulation/dataloader/NodeTools.hpp"
+#include "openvic-simulation/map/ProvinceInstance.hpp"
+#include "openvic-simulation/pop/Pop.hpp"
+#include "openvic-simulation/types/fixed_point/FixedPoint.hpp"
+#include "openvic-simulation/utility/Getters.hpp"
+
+namespace OpenVic {
+ struct DefineManager;
+
+ struct PopsDefines {
+ friend struct DefineManager;
+
+ private:
+ fixed_point_t PROPERTY(base_clergy_for_literacy);
+ fixed_point_t PROPERTY(max_clergy_for_literacy);
+ fixed_point_t PROPERTY(literacy_change_speed);
+ fixed_point_t PROPERTY(assimilation_scale);
+ fixed_point_t PROPERTY(conversion_scale);
+ fixed_point_t PROPERTY(immigration_scale);
+ fixed_point_t PROPERTY(promotion_scale);
+ fixed_point_t PROPERTY(promotion_assimilation_chance);
+ fixed_point_t PROPERTY(luxury_threshold);
+ fixed_point_t PROPERTY(base_goods_demand);
+ fixed_point_t PROPERTY(base_popgrowth);
+ ProvinceInstance::life_rating_t PROPERTY(min_life_rating_for_growth);
+ fixed_point_t PROPERTY(life_rating_growth_bonus);
+ fixed_point_t PROPERTY(life_need_starvation_limit);
+ fixed_point_t PROPERTY(mil_lack_everyday_need);
+ fixed_point_t PROPERTY(mil_has_everyday_need);
+ fixed_point_t PROPERTY(mil_has_luxury_need);
+ fixed_point_t PROPERTY(mil_no_life_need);
+ fixed_point_t PROPERTY(mil_require_reform);
+ fixed_point_t PROPERTY(mil_ideology);
+ fixed_point_t PROPERTY(mil_ruling_party);
+ fixed_point_t PROPERTY(mil_reform_impact);
+ fixed_point_t PROPERTY(mil_war_exhaustion);
+ fixed_point_t PROPERTY(mil_non_accepted);
+ fixed_point_t PROPERTY(con_literacy);
+ fixed_point_t PROPERTY(con_luxury_goods);
+ fixed_point_t PROPERTY(con_poor_clergy);
+ fixed_point_t PROPERTY(con_midrich_clergy);
+ fixed_point_t PROPERTY(con_reform_impact);
+ fixed_point_t PROPERTY(con_colonial_factor);
+ fixed_point_t PROPERTY(ruling_party_happy_change);
+ fixed_point_t PROPERTY(ruling_party_angry_change);
+ fixed_point_t PROPERTY(pdef_base_con);
+ fixed_point_t PROPERTY(national_focus_divider);
+ fixed_point_t PROPERTY(pop_savings);
+ fixed_point_t PROPERTY(state_creation_admin_limit);
+ fixed_point_t PROPERTY(mil_to_join_rebel);
+ fixed_point_t PROPERTY(mil_to_join_rising);
+ fixed_point_t PROPERTY(mil_to_autorise);
+ fixed_point_t PROPERTY(reduction_after_riseing);
+ fixed_point_t PROPERTY(reduction_after_defeat);
+ fixed_point_t PROPERTY(pop_to_leadership);
+ fixed_point_t PROPERTY(artisan_min_productivity);
+ fixed_point_t PROPERTY(slave_growth_divisor);
+ fixed_point_t PROPERTY(mil_hit_from_conquest);
+ fixed_point_t PROPERTY(luxury_con_change);
+ fixed_point_t PROPERTY(invention_impact_on_demand);
+ fixed_point_t PROPERTY(artisan_suppressed_colonial_goods_category);
+ fixed_point_t PROPERTY(issue_movement_join_limit);
+ fixed_point_t PROPERTY(issue_movement_leave_limit);
+ fixed_point_t PROPERTY(movement_con_factor);
+ fixed_point_t PROPERTY(movement_lit_factor);
+ fixed_point_t PROPERTY(mil_on_reb_move);
+ fixed_point_t PROPERTY(population_suppression_factor);
+ fixed_point_t PROPERTY(population_movement_radical_factor);
+ fixed_point_t PROPERTY(nationalist_movement_mil_cap);
+ fixed_point_t PROPERTY(movement_support_uh_factor);
+ fixed_point_t PROPERTY(rebel_occupation_strength_bonus);
+ Pop::pop_size_t PROPERTY(large_population_limit);
+ Pop::pop_size_t PROPERTY(large_population_influence_penalty_chunk);
+
+ PopsDefines();
+
+ std::string_view get_name() const;
+ NodeTools::node_callback_t expect_defines();
+ };
+}