aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-simulation
diff options
context:
space:
mode:
author Hop311 <Hop3114@gmail.com>2024-09-20 14:17:58 +0200
committer GitHub <noreply@github.com>2024-09-20 14:17:58 +0200
commit7fe8ba2b3bd3bafad374a691280bbf5102b58678 (patch)
tree0b55b428680843e033ed07bd8c7e54eb4456f751 /src/openvic-simulation
parent89b1333b1edff6c08750bd836ae92eccbe06e3bd (diff)
parent00a3121dd43a3b6e8f5a6efa2d3b6560ef78c370 (diff)
Merge pull request #202 from OpenVicProject/issue-modifier
Allow Issue to inherit Modifier directly
Diffstat (limited to 'src/openvic-simulation')
-rw-r--r--src/openvic-simulation/politics/Issue.cpp4
-rw-r--r--src/openvic-simulation/politics/Issue.hpp2
-rw-r--r--src/openvic-simulation/types/HasIdentifier.hpp3
-rw-r--r--src/openvic-simulation/types/IndexedMap.hpp2
4 files changed, 8 insertions, 3 deletions
diff --git a/src/openvic-simulation/politics/Issue.cpp b/src/openvic-simulation/politics/Issue.cpp
index 1dca176..4a08dea 100644
--- a/src/openvic-simulation/politics/Issue.cpp
+++ b/src/openvic-simulation/politics/Issue.cpp
@@ -8,8 +8,8 @@ IssueGroup::IssueGroup(std::string_view new_identifier) : HasIdentifier { new_id
Issue::Issue(
std::string_view new_identifier, colour_t new_colour, ModifierValue&& new_values, IssueGroup const& new_group,
RuleSet&& new_rules, bool new_jingoism
-) : HasIdentifierAndColour { new_identifier, new_colour, false }, ModifierValue { std::move(new_values) },
- group { new_group }, rules { std::move(new_rules) }, jingoism { new_jingoism } {}
+) : Modifier { new_identifier, std::move(new_values) }, HasColour { new_colour, false }, group { new_group },
+ rules { std::move(new_rules) }, jingoism { new_jingoism } {}
ReformType::ReformType(std::string_view new_identifier, bool new_uncivilised)
: HasIdentifier { new_identifier }, uncivilised { new_uncivilised } {}
diff --git a/src/openvic-simulation/politics/Issue.hpp b/src/openvic-simulation/politics/Issue.hpp
index d49f897..3a6daed 100644
--- a/src/openvic-simulation/politics/Issue.hpp
+++ b/src/openvic-simulation/politics/Issue.hpp
@@ -21,7 +21,7 @@ namespace OpenVic {
};
// Issue (i.e. protectionism)
- struct Issue : HasIdentifierAndColour, ModifierValue {
+ struct Issue : Modifier, HasColour {
friend struct IssueManager;
private:
diff --git a/src/openvic-simulation/types/HasIdentifier.hpp b/src/openvic-simulation/types/HasIdentifier.hpp
index 74961e3..bbd9771 100644
--- a/src/openvic-simulation/types/HasIdentifier.hpp
+++ b/src/openvic-simulation/types/HasIdentifier.hpp
@@ -102,6 +102,9 @@ namespace OpenVic {
using HasIdentifierAndColour = _HasIdentifierAndColour<colour_t>;
using HasIdentifierAndAlphaColour = _HasIdentifierAndColour<colour_argb_t>;
+ template<typename T>
+ concept HasGetIdentifierAndGetColour = HasGetIdentifier<T> && HasGetColour<T>;
+
template<std::unsigned_integral T = size_t>
class HasIndex {
public:
diff --git a/src/openvic-simulation/types/IndexedMap.hpp b/src/openvic-simulation/types/IndexedMap.hpp
index 5682c0e..73ff313 100644
--- a/src/openvic-simulation/types/IndexedMap.hpp
+++ b/src/openvic-simulation/types/IndexedMap.hpp
@@ -18,6 +18,8 @@ namespace OpenVic {
using value_const_ref_t = container_t::const_reference;
using keys_t = std::vector<key_t>;
+ using key_type = key_t; // To match tsl::ordered_map's key_type
+
using container_t::operator[];
using container_t::size;
using container_t::begin;