aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-simulation
diff options
context:
space:
mode:
author Hop311 <Hop3114@gmail.com>2024-01-02 19:00:56 +0100
committer GitHub <noreply@github.com>2024-01-02 19:00:56 +0100
commitd893c0ad8c6a0c347dcec72762be49f20886a90a (patch)
treee9fd1890c87340d1fc068c671cbd529d12ed6ea3 /src/openvic-simulation
parent791e64795a5f688e5ae673b88c5f2787d6450ce8 (diff)
parentab3b2b3e9aa502c7b03d30467b7d2eb682416d90 (diff)
Merge pull request #115 from OpenVicProject/promotion-system
Added pop properties (size changes, literacy)
Diffstat (limited to 'src/openvic-simulation')
-rw-r--r--src/openvic-simulation/pop/Pop.cpp9
-rw-r--r--src/openvic-simulation/pop/Pop.hpp13
2 files changed, 12 insertions, 10 deletions
diff --git a/src/openvic-simulation/pop/Pop.cpp b/src/openvic-simulation/pop/Pop.cpp
index be664d5..dd5bd83 100644
--- a/src/openvic-simulation/pop/Pop.cpp
+++ b/src/openvic-simulation/pop/Pop.cpp
@@ -17,16 +17,13 @@ using namespace OpenVic::NodeTools;
Pop::Pop(
PopType const& new_type, Culture const& new_culture, Religion const& new_religion, pop_size_t new_size,
fixed_point_t new_militancy, fixed_point_t new_consciousness, RebelType const* new_rebel_type
-) : type { new_type }, culture { new_culture }, religion { new_religion }, size { new_size }, num_promoted { 0 },
- num_demoted { 0 }, num_migrated { 0 }, militancy { new_militancy }, consciousness { new_consciousness },
+) : type { new_type }, culture { new_culture }, religion { new_religion }, size { new_size }, num_grown { 0 },
+ num_promoted { 0 }, num_demoted { 0 }, num_migrated_internal { 0 }, num_migrated_external { 0 },
+ num_migrated_colonial { 0 }, militancy { new_militancy }, consciousness { new_consciousness },
rebel_type { new_rebel_type } {
assert(size > 0);
}
-Pop::pop_size_t Pop::get_pop_daily_change() const {
- return Pop::get_num_promoted() - (Pop::get_num_demoted() + Pop::get_num_migrated());
-}
-
Strata::Strata(std::string_view new_identifier) : HasIdentifier { new_identifier } {}
PopType::PopType(
diff --git a/src/openvic-simulation/pop/Pop.hpp b/src/openvic-simulation/pop/Pop.hpp
index 2304165..ffef6ea 100644
--- a/src/openvic-simulation/pop/Pop.hpp
+++ b/src/openvic-simulation/pop/Pop.hpp
@@ -5,6 +5,7 @@
#include "openvic-simulation/pop/Culture.hpp"
#include "openvic-simulation/pop/Religion.hpp"
#include "openvic-simulation/scripts/ConditionalWeight.hpp"
+#include "openvic-simulation/types/fixed_point/FixedPoint.hpp"
namespace OpenVic {
@@ -30,12 +31,18 @@ namespace OpenVic {
Culture const& PROPERTY(culture);
Religion const& PROPERTY(religion);
pop_size_t PROPERTY(size);
- pop_size_t PROPERTY(num_promoted);
+
+ /* Last day's size change by source. */
+ pop_size_t PROPERTY(num_grown);
+ pop_size_t PROPERTY(num_promoted); // TODO - detailed promotion/demotion info (what to)
pop_size_t PROPERTY(num_demoted);
- pop_size_t PROPERTY(num_migrated);
+ pop_size_t PROPERTY(num_migrated_internal); // TODO - detailed migration info (where to)
+ pop_size_t PROPERTY(num_migrated_external);
+ pop_size_t PROPERTY(num_migrated_colonial);
fixed_point_t PROPERTY(militancy);
fixed_point_t PROPERTY(consciousness);
+ fixed_point_t PROPERTY(literacy);
RebelType const* PROPERTY(rebel_type);
Pop(
@@ -48,8 +55,6 @@ namespace OpenVic {
Pop(Pop&&) = default;
Pop& operator=(Pop const&) = delete;
Pop& operator=(Pop&&) = delete;
-
- pop_size_t get_pop_daily_change() const;
};
struct Strata : HasIdentifier {