From f83e869def6608f64606aead24ad1cfbb6f5c72a Mon Sep 17 00:00:00 2001 From: hop311 Date: Tue, 16 Jul 2024 23:57:50 +0100 Subject: Add IndexedMap and use in low key count, high value density cases --- src/openvic-simulation/politics/NationalFocus.cpp | 5 +++-- src/openvic-simulation/politics/NationalFocus.hpp | 12 +++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) (limited to 'src/openvic-simulation/politics') diff --git a/src/openvic-simulation/politics/NationalFocus.cpp b/src/openvic-simulation/politics/NationalFocus.cpp index 85fcdc0..818021e 100644 --- a/src/openvic-simulation/politics/NationalFocus.cpp +++ b/src/openvic-simulation/politics/NationalFocus.cpp @@ -1,5 +1,7 @@ #include "NationalFocus.hpp" +#include "openvic-simulation/politics/Ideology.hpp" + using namespace OpenVic; using namespace OpenVic::NodeTools; @@ -16,13 +18,12 @@ NationalFocus::NationalFocus( Ideology const* new_loyalty_ideology, fixed_point_t new_loyalty_value, ConditionScript&& new_limit -) : HasIdentifier { new_identifier }, +) : Modifier { new_identifier, std::move(new_modifiers), 0 }, group { new_group }, icon { new_icon }, has_flashpoint { new_has_flashpoint }, own_provinces { new_own_provinces }, outliner_show_as_percent { new_outliner_show_as_percent }, - modifiers { std::move(new_modifiers) }, loyalty_ideology { new_loyalty_ideology }, loyalty_value { new_loyalty_value }, limit { std::move(new_limit) } {} diff --git a/src/openvic-simulation/politics/NationalFocus.hpp b/src/openvic-simulation/politics/NationalFocus.hpp index f27af43..04a4100 100644 --- a/src/openvic-simulation/politics/NationalFocus.hpp +++ b/src/openvic-simulation/politics/NationalFocus.hpp @@ -1,9 +1,6 @@ #pragma once -#include "openvic-simulation/economy/GoodDefinition.hpp" #include "openvic-simulation/misc/Modifier.hpp" -#include "openvic-simulation/politics/Ideology.hpp" -#include "openvic-simulation/pop/Pop.hpp" #include "openvic-simulation/scripts/ConditionScript.hpp" #include "openvic-simulation/types/IdentifierRegistry.hpp" #include "openvic-simulation/utility/Getters.hpp" @@ -18,7 +15,9 @@ namespace OpenVic { NationalFocusGroup(std::string_view new_identifier); }; - struct NationalFocus : HasIdentifier { + struct Ideology; + + struct NationalFocus : Modifier { friend struct NationalFocusManager; private: @@ -27,7 +26,6 @@ namespace OpenVic { bool PROPERTY(has_flashpoint); bool PROPERTY(own_provinces); bool PROPERTY(outliner_show_as_percent); - ModifierValue PROPERTY(modifiers); Ideology const* PROPERTY(loyalty_ideology); fixed_point_t PROPERTY(loyalty_value); ConditionScript PROPERTY(limit); @@ -51,6 +49,10 @@ namespace OpenVic { NationalFocus(NationalFocus&&) = default; }; + struct PopManager; + struct IdeologyManager; + struct GoodDefinitionManager; + struct NationalFocusManager { private: IdentifierRegistry IDENTIFIER_REGISTRY(national_focus_group); -- cgit v1.2.3-56-ga3b1