aboutsummaryrefslogtreecommitdiff
path: root/src/openvic/pop/Culture.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/openvic/pop/Culture.hpp')
-rw-r--r--src/openvic/pop/Culture.hpp73
1 files changed, 0 insertions, 73 deletions
diff --git a/src/openvic/pop/Culture.hpp b/src/openvic/pop/Culture.hpp
deleted file mode 100644
index 645e226..0000000
--- a/src/openvic/pop/Culture.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-#pragma once
-
-#include "../Types.hpp"
-
-namespace OpenVic {
-
- struct CultureManager;
-
- struct GraphicalCultureType : HasIdentifier {
- friend struct CultureManager;
-
- private:
- GraphicalCultureType(const std::string_view new_identifier);
-
- public:
- GraphicalCultureType(GraphicalCultureType&&) = default;
- };
-
- struct CultureGroup : HasIdentifier {
- friend struct CultureManager;
-
- private:
- GraphicalCultureType const& unit_graphical_culture_type;
-
- // TODO - leader type, union tag
-
- CultureGroup(const std::string_view new_identifier, GraphicalCultureType const& new_unit_graphical_culture_type);
-
- public:
- CultureGroup(CultureGroup&&) = default;
-
- GraphicalCultureType const& get_unit_graphical_culture_type() const;
- };
-
- struct Culture : HasIdentifierAndColour {
- friend struct CultureManager;
-
- using name_list_t = std::vector<std::string>;
-
- private:
- CultureGroup const& group;
- const name_list_t first_names, last_names;
-
- // TODO - radicalism, primary tag
-
- Culture(const std::string_view new_identifier, colour_t new_colour, CultureGroup const& new_group, name_list_t const& new_first_names, name_list_t const& new_last_names);
-
- public:
- Culture(Culture&&) = default;
-
- CultureGroup const& get_group() const;
- };
-
- struct CultureManager {
- private:
- IdentifierRegistry<GraphicalCultureType> graphical_culture_types;
- IdentifierRegistry<CultureGroup> culture_groups;
- IdentifierRegistry<Culture> cultures;
-
- public:
- CultureManager();
-
- return_t add_graphical_culture_type(const std::string_view identifier);
- void lock_graphical_culture_types();
- GraphicalCultureType const* get_graphical_culture_type_by_identifier(const std::string_view identifier) const;
- return_t add_culture_group(const std::string_view identifier, GraphicalCultureType const* new_graphical_culture_type);
- void lock_culture_groups();
- CultureGroup const* get_culture_group_by_identifier(const std::string_view identifier) const;
- return_t add_culture(const std::string_view identifier, colour_t colour, CultureGroup const* group, Culture::name_list_t const& first_names, Culture::name_list_t const& last_names);
- void lock_cultures();
- Culture const* get_culture_by_identifier(const std::string_view identifier) const;
- };
-}