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.hpp29
1 files changed, 20 insertions, 9 deletions
diff --git a/src/openvic/pop/Culture.hpp b/src/openvic/pop/Culture.hpp
index 495ba1d..6028fea 100644
--- a/src/openvic/pop/Culture.hpp
+++ b/src/openvic/pop/Culture.hpp
@@ -21,36 +21,39 @@ namespace OpenVic {
friend struct CultureManager;
private:
+ const std::string leader;
GraphicalCultureType const& unit_graphical_culture_type;
- bool is_overseas;
+ const bool is_overseas;
- // TODO - leader type, union tag
+ // TODO - union tag
- CultureGroup(const std::string_view new_identifier, GraphicalCultureType const& new_unit_graphical_culture_type, bool new_is_overseas);
+ CultureGroup(const std::string_view new_identifier, const std::string_view new_leader, GraphicalCultureType const& new_unit_graphical_culture_type, bool new_is_overseas);
public:
CultureGroup(CultureGroup&&) = default;
+ std::string const& get_leader() const;
GraphicalCultureType const& get_unit_graphical_culture_type() const;
+ bool get_is_overseas() 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;
+ const std::vector<std::string> 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);
+ Culture(const std::string_view new_identifier, colour_t new_colour, CultureGroup const& new_group, std::vector<std::string> const& new_first_names, std::vector<std::string> const& new_last_names);
public:
Culture(Culture&&) = default;
CultureGroup const& get_group() const;
+ std::vector<std::string> const& get_first_names() const;
+ std::vector<std::string> const& get_last_names() const;
};
struct CultureManager {
@@ -65,12 +68,20 @@ namespace OpenVic {
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, bool is_overseas);
+ size_t get_graphical_culture_type_count() const;
+ std::vector<GraphicalCultureType> const& get_graphical_culture_types() const;
+
+ return_t add_culture_group(const std::string_view identifier, const std::string_view leader, GraphicalCultureType const* new_graphical_culture_type, bool is_overseas);
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);
+ size_t get_culture_group_count() const;
+ std::vector<CultureGroup> const& get_culture_groups() const;
+
+ return_t add_culture(const std::string_view identifier, colour_t colour, CultureGroup const* group, std::vector<std::string> const& first_names, std::vector<std::string> const& last_names);
void lock_cultures();
Culture const* get_culture_by_identifier(const std::string_view identifier) const;
+ size_t get_culture_count() const;
+ std::vector<Culture> const& get_cultures() const;
return_t load_graphical_culture_type_file(ast::NodeCPtr root);
return_t load_culture_file(ast::NodeCPtr root);