diff --git a/src/openvic-simulation/country/CountryInstance.hpp b/src/openvic-simulation/country/CountryInstance.hpp index 7910baca..5db2d2a2 100644 --- a/src/openvic-simulation/country/CountryInstance.hpp +++ b/src/openvic-simulation/country/CountryInstance.hpp @@ -146,12 +146,12 @@ namespace OpenVic { // The total/resultant modifier affecting this country, including owned province contributions. ModifierSum PROPERTY(modifier_sum); - memory::vector PROPERTY(event_modifiers); + memory::vector SPAN_PROPERTY(event_modifiers); /* Production */ OV_STATE_PROPERTY(fixed_point_t, industrial_power); - memory::vector> PROPERTY(industrial_power_from_states); - memory::vector> PROPERTY(industrial_power_from_investments); + memory::vector> SPAN_PROPERTY(industrial_power_from_states); + memory::vector> SPAN_PROPERTY(industrial_power_from_investments); size_t PROPERTY(industrial_rank, 0); fixed_point_map_t PROPERTY(foreign_investments); OV_IFLATMAP_PROPERTY(BuildingType, technology_unlock_level_t, building_type_unlock_levels); @@ -390,7 +390,7 @@ namespace OpenVic { OV_IFLATMAP_PROPERTY(ShipType, technology_unlock_level_t, ship_type_unlock_levels); technology_unlock_level_t PROPERTY(gas_attack_unlock_level, 0); technology_unlock_level_t PROPERTY(gas_defence_unlock_level, 0); - memory::vector PROPERTY(unit_variant_unlock_levels); + memory::vector SPAN_PROPERTY(unit_variant_unlock_levels); public: //pointers instead of references to allow construction via std::tuple diff --git a/src/openvic-simulation/dataloader/ModManager.hpp b/src/openvic-simulation/dataloader/ModManager.hpp index b51d3132..b0969458 100644 --- a/src/openvic-simulation/dataloader/ModManager.hpp +++ b/src/openvic-simulation/dataloader/ModManager.hpp @@ -15,8 +15,8 @@ namespace OpenVic { ModManager const& mod_manager; const memory::string PROPERTY(dataloader_root_path); const std::optional PROPERTY(user_dir); - const memory::vector PROPERTY(replace_paths); - const memory::vector PROPERTY(dependencies); + const memory::vector SPAN_PROPERTY(replace_paths); + const memory::vector SPAN_PROPERTY(dependencies); public: Mod( diff --git a/src/openvic-simulation/economy/BuildingType.hpp b/src/openvic-simulation/economy/BuildingType.hpp index a2893121..ac9bc547 100644 --- a/src/openvic-simulation/economy/BuildingType.hpp +++ b/src/openvic-simulation/economy/BuildingType.hpp @@ -60,7 +60,7 @@ namespace OpenVic { building_level_t PROPERTY(fort_level); // fort bonus step-per-level naval_capacity_t PROPERTY(naval_capacity); - memory::vector PROPERTY(colonial_points); + memory::vector SPAN_PROPERTY(colonial_points); bool PROPERTY_CUSTOM_PREFIX(in_province, is); // province bool PROPERTY(one_per_state); fixed_point_t PROPERTY(colonial_range); diff --git a/src/openvic-simulation/economy/GoodDefinition.hpp b/src/openvic-simulation/economy/GoodDefinition.hpp index 5510d237..b298c8f2 100644 --- a/src/openvic-simulation/economy/GoodDefinition.hpp +++ b/src/openvic-simulation/economy/GoodDefinition.hpp @@ -14,7 +14,7 @@ namespace OpenVic { friend struct GoodDefinitionManager; private: - memory::vector PROPERTY(good_definitions); + memory::vector SPAN_PROPERTY(good_definitions); public: GoodCategory(std::string_view new_identifier); GoodCategory(GoodCategory&&) = default; diff --git a/src/openvic-simulation/economy/production/ProductionType.hpp b/src/openvic-simulation/economy/production/ProductionType.hpp index 1b51cdba..3a6e2dbf 100644 --- a/src/openvic-simulation/economy/production/ProductionType.hpp +++ b/src/openvic-simulation/economy/production/ProductionType.hpp @@ -52,10 +52,10 @@ namespace OpenVic { private: GameRulesManager const& game_rules_manager; const std::optional PROPERTY(owner); - memory::vector PROPERTY(jobs); + memory::vector SPAN_PROPERTY(jobs); fixed_point_map_t PROPERTY(input_goods); - memory::vector PROPERTY(bonuses); + memory::vector SPAN_PROPERTY(bonuses); fixed_point_map_t PROPERTY(maintenance_requirements); const bool PROPERTY_CUSTOM_PREFIX(coastal, is); diff --git a/src/openvic-simulation/economy/production/ResourceGatheringOperation.hpp b/src/openvic-simulation/economy/production/ResourceGatheringOperation.hpp index d8928627..d4ea3a3b 100644 --- a/src/openvic-simulation/economy/production/ResourceGatheringOperation.hpp +++ b/src/openvic-simulation/economy/production/ResourceGatheringOperation.hpp @@ -31,7 +31,7 @@ namespace OpenVic { fixed_point_t PROPERTY(output_quantity_yesterday); fixed_point_t PROPERTY(unsold_quantity_yesterday); fixed_point_t PROPERTY_RW(size_multiplier); - memory::vector PROPERTY(employees); + memory::vector SPAN_PROPERTY(employees); pop_size_t PROPERTY(max_employee_count_cache, 0); pop_size_t PROPERTY(total_employees_count_cache, 0); pop_size_t PROPERTY(total_paid_employees_count_cache, 0); diff --git a/src/openvic-simulation/history/DiplomaticHistory.hpp b/src/openvic-simulation/history/DiplomaticHistory.hpp index 4be8d306..f376980a 100644 --- a/src/openvic-simulation/history/DiplomaticHistory.hpp +++ b/src/openvic-simulation/history/DiplomaticHistory.hpp @@ -58,9 +58,9 @@ namespace OpenVic { /* Edge cases where this is empty/undef for some reason, * probably need to just generate war names like usual for that. */ memory::string PROPERTY(war_name); - memory::vector PROPERTY(attackers); - memory::vector PROPERTY(defenders); - memory::vector PROPERTY(wargoals); + memory::vector SPAN_PROPERTY(attackers); + memory::vector SPAN_PROPERTY(defenders); + memory::vector SPAN_PROPERTY(wargoals); }; struct AllianceHistory { diff --git a/src/openvic-simulation/history/ProvinceHistory.hpp b/src/openvic-simulation/history/ProvinceHistory.hpp index 110bb9e1..1f434235 100644 --- a/src/openvic-simulation/history/ProvinceHistory.hpp +++ b/src/openvic-simulation/history/ProvinceHistory.hpp @@ -39,7 +39,7 @@ namespace OpenVic { ordered_map PROPERTY(province_buildings); ordered_map PROPERTY(state_buildings); fixed_point_map_t PROPERTY(party_loyalties); - memory::vector PROPERTY(pops); + memory::vector SPAN_PROPERTY(pops); bool _load_province_pop_history( DefinitionManager const& definition_manager, ast::NodeCPtr root, bool *non_integer_size diff --git a/src/openvic-simulation/interface/GFXObject.hpp b/src/openvic-simulation/interface/GFXObject.hpp index 49ad61c4..38fc89fc 100644 --- a/src/openvic-simulation/interface/GFXObject.hpp +++ b/src/openvic-simulation/interface/GFXObject.hpp @@ -60,7 +60,7 @@ namespace OpenVic::GFX { std::optional PROPERTY(idle_animation); std::optional PROPERTY(move_animation); std::optional PROPERTY(attack_animation); - memory::vector PROPERTY(attachments); + memory::vector SPAN_PROPERTY(attachments); bool _set_animation(std::string_view name, std::string_view file, fixed_point_t scroll_time); diff --git a/src/openvic-simulation/map/MapDefinition.hpp b/src/openvic-simulation/map/MapDefinition.hpp index 89ce860a..e6841d1d 100644 --- a/src/openvic-simulation/map/MapDefinition.hpp +++ b/src/openvic-simulation/map/MapDefinition.hpp @@ -27,7 +27,7 @@ namespace OpenVic { friend struct MapDefinition; private: - memory::vector PROPERTY(points); + memory::vector SPAN_PROPERTY(points); public: const uint8_t size; @@ -59,11 +59,11 @@ namespace OpenVic { ProvinceSet water_provinces; TerrainTypeManager PROPERTY_REF(terrain_type_manager); - memory::vector PROPERTY(rivers); // TODO: calculate provinces affected by crossing + memory::vector SPAN_PROPERTY(rivers); // TODO: calculate provinces affected by crossing void _trace_river(BMP& rivers_bmp, ivec2_t start, river_t& river); ivec2_t PROPERTY(dims, { 0, 0 }); - memory::vector PROPERTY(province_shape_image); + memory::vector SPAN_PROPERTY(province_shape_image); colour_index_map_t colour_index_map; ProvinceDefinition::index_t PROPERTY(max_provinces); diff --git a/src/openvic-simulation/map/ProvinceDefinition.hpp b/src/openvic-simulation/map/ProvinceDefinition.hpp index 9e5c8876..4aacf978 100644 --- a/src/openvic-simulation/map/ProvinceDefinition.hpp +++ b/src/openvic-simulation/map/ProvinceDefinition.hpp @@ -101,7 +101,7 @@ namespace OpenVic { /* Terrain type calculated from terrain image */ TerrainType const* PROPERTY(default_terrain_type, nullptr); - memory::vector PROPERTY(adjacencies); + memory::vector SPAN_PROPERTY(adjacencies); /* Calculated mean pixel position. */ fvec2_t PROPERTY(centre); province_positions_t positions {}; diff --git a/src/openvic-simulation/map/ProvinceInstance.hpp b/src/openvic-simulation/map/ProvinceInstance.hpp index bf39908b..bf11de90 100644 --- a/src/openvic-simulation/map/ProvinceInstance.hpp +++ b/src/openvic-simulation/map/ProvinceInstance.hpp @@ -84,7 +84,7 @@ namespace OpenVic { // The total/resultant modifier of local effects on this province (global effects come from the province's owner) ModifierSum PROPERTY(modifier_sum); - memory::vector PROPERTY(event_modifiers); + memory::vector SPAN_PROPERTY(event_modifiers); bool PROPERTY(slave, false); // Used for "minorities = yes/no" condition @@ -92,7 +92,7 @@ namespace OpenVic { bool PROPERTY_RW(connected_to_capital, false); bool PROPERTY_RW(is_overseas, false); bool PROPERTY(has_empty_adjacent_province, false); - memory::vector PROPERTY(adjacent_nonempty_land_provinces); + memory::vector SPAN_PROPERTY(adjacent_nonempty_land_provinces); Crime const* PROPERTY_RW(crime, nullptr); ResourceGatheringOperation PROPERTY(rgo); IdentifierRegistry IDENTIFIER_REGISTRY(building, false); diff --git a/src/openvic-simulation/map/Region.hpp b/src/openvic-simulation/map/Region.hpp index 734da594..8c6833d6 100644 --- a/src/openvic-simulation/map/Region.hpp +++ b/src/openvic-simulation/map/Region.hpp @@ -12,7 +12,7 @@ namespace OpenVic { struct ProvinceSet { private: - memory::vector PROPERTY(provinces); + memory::vector SPAN_PROPERTY(provinces); bool locked = false; public: diff --git a/src/openvic-simulation/map/State.hpp b/src/openvic-simulation/map/State.hpp index d426c38c..0bb39822 100644 --- a/src/openvic-simulation/map/State.hpp +++ b/src/openvic-simulation/map/State.hpp @@ -94,7 +94,7 @@ namespace OpenVic { /* Contains all current states.*/ struct StateManager { private: - memory::vector PROPERTY(state_sets); + memory::vector SPAN_PROPERTY(state_sets); bool add_state_set( MapInstance& map_instance, Region const& region, diff --git a/src/openvic-simulation/map/TerrainType.hpp b/src/openvic-simulation/map/TerrainType.hpp index 0857f0a0..802eef40 100644 --- a/src/openvic-simulation/map/TerrainType.hpp +++ b/src/openvic-simulation/map/TerrainType.hpp @@ -37,7 +37,7 @@ namespace OpenVic { using index_t = uint8_t; private: - memory::vector PROPERTY(terrain_indices); + memory::vector SPAN_PROPERTY(terrain_indices); public: TerrainType const& type; diff --git a/src/openvic-simulation/military/Deployment.hpp b/src/openvic-simulation/military/Deployment.hpp index 17c80b6f..5f6ad07e 100644 --- a/src/openvic-simulation/military/Deployment.hpp +++ b/src/openvic-simulation/military/Deployment.hpp @@ -62,7 +62,7 @@ namespace OpenVic { private: memory::string PROPERTY(name); ProvinceDefinition const* PROPERTY(location); - memory::vector<_Unit> PROPERTY(units); + memory::vector<_Unit> SPAN_PROPERTY(units); std::optional PROPERTY(leader_index); public: @@ -78,9 +78,9 @@ namespace OpenVic { struct Deployment : HasIdentifier { private: - memory::vector PROPERTY(armies); - memory::vector PROPERTY(navies); - memory::vector PROPERTY(leaders); + memory::vector SPAN_PROPERTY(armies); + memory::vector SPAN_PROPERTY(navies); + memory::vector SPAN_PROPERTY(leaders); public: Deployment( diff --git a/src/openvic-simulation/military/LeaderTrait.hpp b/src/openvic-simulation/military/LeaderTrait.hpp index 184a602e..8bc4c93e 100644 --- a/src/openvic-simulation/military/LeaderTrait.hpp +++ b/src/openvic-simulation/military/LeaderTrait.hpp @@ -41,8 +41,8 @@ namespace OpenVic { struct LeaderTraitManager { private: IdentifierRegistry IDENTIFIER_REGISTRY(leader_trait); - memory::vector PROPERTY(personality_traits); - memory::vector PROPERTY(background_traits); + memory::vector SPAN_PROPERTY(personality_traits); + memory::vector SPAN_PROPERTY(background_traits); // As well as their background and personality traits, leaders get this modifier scaled by their prestige Modifier PROPERTY(leader_prestige_modifier); diff --git a/src/openvic-simulation/military/Wargoal.hpp b/src/openvic-simulation/military/Wargoal.hpp index 5b114ab8..f8dbdcc6 100644 --- a/src/openvic-simulation/military/Wargoal.hpp +++ b/src/openvic-simulation/military/Wargoal.hpp @@ -101,7 +101,7 @@ namespace OpenVic { struct WargoalTypeManager { private: IdentifierRegistry IDENTIFIER_REGISTRY(wargoal_type); - memory::vector PROPERTY(peace_priorities); + memory::vector SPAN_PROPERTY(peace_priorities); public: bool add_wargoal_type( diff --git a/src/openvic-simulation/misc/Event.hpp b/src/openvic-simulation/misc/Event.hpp index 370e57a5..7ca60672 100644 --- a/src/openvic-simulation/misc/Event.hpp +++ b/src/openvic-simulation/misc/Event.hpp @@ -58,7 +58,7 @@ namespace OpenVic { ConditionalWeightTime PROPERTY(mean_time_to_happen); EffectScript PROPERTY(immediate); - memory::vector PROPERTY(options); + memory::vector SPAN_PROPERTY(options); bool parse_scripts(DefinitionManager const& definition_manager); diff --git a/src/openvic-simulation/modifier/ModifierSum.hpp b/src/openvic-simulation/modifier/ModifierSum.hpp index e43f58bf..5e5c7881 100644 --- a/src/openvic-simulation/modifier/ModifierSum.hpp +++ b/src/openvic-simulation/modifier/ModifierSum.hpp @@ -95,7 +95,7 @@ namespace OpenVic { // Targets to be excluded from all modifiers added to the sum, combined with any explicit exclusions. ModifierEffect::target_t PROPERTY_RW(this_excluded_targets, ModifierEffect::target_t::NO_TARGETS); - memory::vector PROPERTY(modifiers); + memory::vector SPAN_PROPERTY(modifiers); ModifierValue PROPERTY(value_sum); public: diff --git a/src/openvic-simulation/politics/BaseIssue.hpp b/src/openvic-simulation/politics/BaseIssue.hpp index a9fab43a..d1d79ad0 100644 --- a/src/openvic-simulation/politics/BaseIssue.hpp +++ b/src/openvic-simulation/politics/BaseIssue.hpp @@ -32,7 +32,7 @@ namespace OpenVic { friend struct IssueManager; private: - memory::vector PROPERTY(issues); + memory::vector SPAN_PROPERTY(issues); protected: BaseIssueGroup(std::string_view new_identifier): HasIdentifier { new_identifier } {} diff --git a/src/openvic-simulation/politics/Government.hpp b/src/openvic-simulation/politics/Government.hpp index 78f9c3e6..26bdd18d 100644 --- a/src/openvic-simulation/politics/Government.hpp +++ b/src/openvic-simulation/politics/Government.hpp @@ -13,7 +13,7 @@ namespace OpenVic { struct GovernmentType : HasIndex, HasIdentifier { private: - memory::vector PROPERTY(ideologies); + memory::vector SPAN_PROPERTY(ideologies); const bool PROPERTY_CUSTOM_PREFIX(elections, holds); const bool PROPERTY_CUSTOM_PREFIX(appoint_ruling_party, can); memory::string PROPERTY_CUSTOM_NAME(flag_type_identifier, get_flag_type); diff --git a/src/openvic-simulation/politics/Reform.hpp b/src/openvic-simulation/politics/Reform.hpp index f4792b34..96e275fb 100644 --- a/src/openvic-simulation/politics/Reform.hpp +++ b/src/openvic-simulation/politics/Reform.hpp @@ -17,7 +17,7 @@ namespace OpenVic { private: bool PROPERTY(is_uncivilised); // whether this group is available to non-westernised countries // in vanilla education, military and economic reforms are hardcoded to true and the rest to false - memory::vector PROPERTY(reform_groups); + memory::vector SPAN_PROPERTY(reform_groups); public: ReformType(std::string_view new_identifier, bool new_is_uncivilised); diff --git a/src/openvic-simulation/population/PopType.hpp b/src/openvic-simulation/population/PopType.hpp index 50d0b61d..a2a5c79b 100644 --- a/src/openvic-simulation/population/PopType.hpp +++ b/src/openvic-simulation/population/PopType.hpp @@ -23,7 +23,7 @@ namespace OpenVic { friend struct PopManager; private: - memory::vector PROPERTY(pop_types); + memory::vector SPAN_PROPERTY(pop_types); public: Strata(std::string_view new_identifier, index_t new_index); diff --git a/src/openvic-simulation/research/Technology.hpp b/src/openvic-simulation/research/Technology.hpp index cb09d783..add495d6 100644 --- a/src/openvic-simulation/research/Technology.hpp +++ b/src/openvic-simulation/research/Technology.hpp @@ -24,7 +24,7 @@ namespace OpenVic { friend struct TechnologyManager; private: - memory::vector PROPERTY(technology_areas); + memory::vector SPAN_PROPERTY(technology_areas); public: TechnologyFolder(std::string_view new_identifier, index_t new_index); @@ -35,7 +35,7 @@ namespace OpenVic { friend struct TechnologyManager; private: - memory::vector PROPERTY(technologies); + memory::vector SPAN_PROPERTY(technologies); size_t PROPERTY(tech_count, 0); public: diff --git a/src/openvic-simulation/scripts/ConditionalWeight.hpp b/src/openvic-simulation/scripts/ConditionalWeight.hpp index dd1a8acd..f789ba2b 100644 --- a/src/openvic-simulation/scripts/ConditionalWeight.hpp +++ b/src/openvic-simulation/scripts/ConditionalWeight.hpp @@ -30,7 +30,7 @@ namespace OpenVic { private: fixed_point_t PROPERTY(base, 0); - memory::vector PROPERTY(condition_weight_items); + memory::vector SPAN_PROPERTY(condition_weight_items); scope_type_t PROPERTY(initial_scope); scope_type_t PROPERTY(this_scope); scope_type_t PROPERTY(from_scope); diff --git a/src/openvic-simulation/utility/Getters.hpp b/src/openvic-simulation/utility/Getters.hpp index 8851a7de..66076d53 100644 --- a/src/openvic-simulation/utility/Getters.hpp +++ b/src/openvic-simulation/utility/Getters.hpp @@ -261,7 +261,7 @@ public: \ NAME; \ \ public: \ - [[nodiscard]] constexpr auto get_##NAME() const -> OpenVic::utility::forwardable_span { \ + [[nodiscard]] constexpr OpenVic::utility::forwardable_span> get_##NAME() const { \ return NAME; \ } \ ACCESS: