aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-simulation/military
diff options
context:
space:
mode:
author Hop311 <Hop3114@gmail.com>2023-11-22 23:11:42 +0100
committer GitHub <noreply@github.com>2023-11-22 23:11:42 +0100
commita54898b7770e0d66b729216173960686c67e58bb (patch)
treeaf8ed836a4789ef94c5bfed27abb713922f45af3 /src/openvic-simulation/military
parente76336cd92639f4ec71088fc4c80aea4c25528cd (diff)
parent738a203e0d8b4df87c42888043b99c13d5d97511 (diff)
Merge pull request #78 from OpenVicProject/property-macro
Refactoring (*mostly* related to the property macro)
Diffstat (limited to 'src/openvic-simulation/military')
-rw-r--r--src/openvic-simulation/military/LeaderTrait.cpp14
-rw-r--r--src/openvic-simulation/military/LeaderTrait.hpp6
-rw-r--r--src/openvic-simulation/military/Unit.cpp164
-rw-r--r--src/openvic-simulation/military/Unit.hpp140
4 files changed, 51 insertions, 273 deletions
diff --git a/src/openvic-simulation/military/LeaderTrait.cpp b/src/openvic-simulation/military/LeaderTrait.cpp
index df87e4e..46cd94a 100644
--- a/src/openvic-simulation/military/LeaderTrait.cpp
+++ b/src/openvic-simulation/military/LeaderTrait.cpp
@@ -4,22 +4,14 @@ using namespace OpenVic;
using namespace OpenVic::NodeTools;
LeaderTrait::LeaderTrait(std::string_view new_identifier, trait_type_t new_type, ModifierValue&& new_modifiers)
- : HasIdentifier { new_identifier }, type { new_type }, modifiers { std::move(new_modifiers) } {}
-
-LeaderTrait::trait_type_t LeaderTrait::get_trait_type() const {
- return type;
-}
+ : HasIdentifier { new_identifier }, trait_type { new_type }, modifiers { std::move(new_modifiers) } {}
bool LeaderTrait::is_personality_trait() const {
- return type == trait_type_t::PERSONALITY;
+ return trait_type == trait_type_t::PERSONALITY;
}
bool LeaderTrait::is_background_trait() const {
- return type == trait_type_t::BACKGROUND;
-}
-
-ModifierValue const& LeaderTrait::get_modifiers() const {
- return modifiers;
+ return trait_type == trait_type_t::BACKGROUND;
}
LeaderTraitManager::LeaderTraitManager() : leader_traits { "leader trait" } {}
diff --git a/src/openvic-simulation/military/LeaderTrait.hpp b/src/openvic-simulation/military/LeaderTrait.hpp
index 34de44d..4ec3b63 100644
--- a/src/openvic-simulation/military/LeaderTrait.hpp
+++ b/src/openvic-simulation/military/LeaderTrait.hpp
@@ -17,7 +17,7 @@ namespace OpenVic {
enum class trait_type_t { PERSONALITY, BACKGROUND };
private:
- const trait_type_t type;
+ const trait_type_t PROPERTY(trait_type);
/*
* Allowed modifiers for leaders:
* attack - integer
@@ -30,17 +30,15 @@ namespace OpenVic {
* experience - %
* reliability - decimal, mil gain or loss for associated POPs
*/
- const ModifierValue modifiers;
+ const ModifierValue PROPERTY(modifiers);
LeaderTrait(std::string_view new_identifier, trait_type_t new_type, ModifierValue&& new_modifiers);
public:
LeaderTrait(LeaderTrait&&) = default;
- trait_type_t get_trait_type() const;
bool is_personality_trait() const;
bool is_background_trait() const;
- ModifierValue const& get_modifiers() const;
};
struct LeaderTraitManager {
diff --git a/src/openvic-simulation/military/Unit.cpp b/src/openvic-simulation/military/Unit.cpp
index 5322a88..fce4082 100644
--- a/src/openvic-simulation/military/Unit.cpp
+++ b/src/openvic-simulation/military/Unit.cpp
@@ -24,74 +24,6 @@ Unit::Unit(
move_sound { move_sound }, select_sound { select_sound }, build_time { build_time }, build_cost { std::move(build_cost) },
supply_consumption { supply_consumption }, supply_cost { std::move(supply_cost) } {}
-Unit::icon_t Unit::get_icon() const {
- return icon;
-}
-
-Unit::type_t Unit::get_type() const {
- return type;
-}
-
-std::string_view Unit::get_sprite() const {
- return sprite;
-}
-
-bool Unit::is_active() const {
- return active;
-}
-
-std::string_view Unit::get_unit_type() const {
- return unit_type;
-}
-
-bool Unit::has_floating_flag() const {
- return floating_flag;
-}
-
-uint32_t Unit::get_priority() const {
- return priority;
-}
-
-fixed_point_t Unit::get_max_strength() const {
- return max_strength;
-}
-
-fixed_point_t Unit::get_default_organisation() const {
- return default_organisation;
-}
-
-fixed_point_t Unit::get_maximum_speed() const {
- return maximum_speed;
-}
-
-Timespan Unit::get_build_time() const {
- return build_time;
-}
-
-fixed_point_t Unit::get_weighted_value() const {
- return weighted_value;
-}
-
-std::string_view Unit::get_move_sound() const {
- return move_sound;
-}
-
-std::string_view Unit::get_select_sound() const {
- return select_sound;
-}
-
-Good::good_map_t const& Unit::get_build_cost() const {
- return build_cost;
-}
-
-fixed_point_t Unit::get_supply_consumption() const {
- return supply_consumption;
-}
-
-Good::good_map_t const& Unit::get_supply_cost() const {
- return supply_cost;
-}
-
LandUnit::LandUnit(
std::string_view identifier, UNIT_PARAMS, LAND_PARAMS
) : Unit { identifier, type_t::LAND, UNIT_ARGS }, primary_culture { primary_culture }, sprite_override { sprite_override },
@@ -99,50 +31,6 @@ LandUnit::LandUnit(
attack { attack }, defence { defence }, discipline { discipline }, support { support }, maneuver { maneuver },
siege { siege } {}
-bool LandUnit::get_primary_culture() const {
- return primary_culture;
-}
-
-std::string_view LandUnit::get_sprite_override() const {
- return sprite_override;
-}
-
-std::string_view LandUnit::get_sprite_mount() const {
- return sprite_mount;
-}
-
-std::string_view LandUnit::get_sprite_mount_attach_node() const {
- return sprite_mount_attach_node;
-}
-
-fixed_point_t LandUnit::get_reconnaissance() const {
- return reconnaissance;
-}
-
-fixed_point_t LandUnit::get_attack() const {
- return attack;
-}
-
-fixed_point_t LandUnit::get_defence() const {
- return defence;
-}
-
-fixed_point_t LandUnit::get_discipline() const {
- return discipline;
-}
-
-fixed_point_t LandUnit::get_support() const {
- return support;
-}
-
-fixed_point_t LandUnit::get_maneuver() const {
- return maneuver;
-}
-
-fixed_point_t LandUnit::get_siege() const {
- return siege;
-}
-
NavalUnit::NavalUnit(
std::string_view identifier, UNIT_PARAMS, NAVY_PARAMS
) : Unit { identifier, type_t::NAVAL, UNIT_ARGS }, naval_icon { naval_icon }, sail { sail }, transport { transport },
@@ -151,58 +39,6 @@ NavalUnit::NavalUnit(
supply_consumption_score { supply_consumption_score }, hull { hull }, gun_power { gun_power }, fire_range { fire_range },
evasion { evasion }, torpedo_attack { torpedo_attack } {};
-NavalUnit::icon_t NavalUnit::get_naval_icon() const {
- return naval_icon;
-}
-
-bool NavalUnit::can_sail() const {
- return sail;
-}
-
-bool NavalUnit::is_transport() const {
- return transport;
-}
-
-fixed_point_t NavalUnit::get_colonial_points() const {
- return colonial_points;
-}
-
-bool NavalUnit::can_build_overseas() const {
- return build_overseas;
-}
-
-uint32_t NavalUnit::get_min_port_level() const {
- return min_port_level;
-}
-
-int32_t NavalUnit::get_limit_per_port() const {
- return limit_per_port;
-}
-
-fixed_point_t NavalUnit::get_supply_consumption_score() const {
- return supply_consumption_score;
-}
-
-fixed_point_t NavalUnit::get_hull() const {
- return hull;
-}
-
-fixed_point_t NavalUnit::get_gun_power() const {
- return gun_power;
-}
-
-fixed_point_t NavalUnit::get_fire_range() const {
- return fire_range;
-}
-
-fixed_point_t NavalUnit::get_evasion() const {
- return evasion;
-}
-
-fixed_point_t NavalUnit::get_torpedo_attack() const {
- return torpedo_attack;
-}
-
UnitManager::UnitManager() : units { "units" } {}
bool UnitManager::_check_shared_parameters(std::string_view identifier, UNIT_PARAMS) {
diff --git a/src/openvic-simulation/military/Unit.hpp b/src/openvic-simulation/military/Unit.hpp
index ab371e8..632067e 100644
--- a/src/openvic-simulation/military/Unit.hpp
+++ b/src/openvic-simulation/military/Unit.hpp
@@ -32,128 +32,80 @@ namespace OpenVic {
enum struct type_t { LAND, NAVAL };
private:
- const type_t type;
- const icon_t icon;
- const std::string sprite;
- const bool active;
- const std::string unit_type;
- const bool floating_flag;
-
- const uint32_t priority;
- const fixed_point_t max_strength;
- const fixed_point_t default_organisation;
- const fixed_point_t maximum_speed;
- const fixed_point_t weighted_value;
-
- const std::string move_sound;
- const std::string select_sound;
-
- const Timespan build_time;
- const Good::good_map_t build_cost;
- const fixed_point_t supply_consumption;
- const Good::good_map_t supply_cost;
+ const type_t PROPERTY(type);
+ const icon_t PROPERTY(icon);
+ const std::string PROPERTY(sprite);
+ const bool PROPERTY_CUSTOM_NAME(active, is_active);
+ const std::string PROPERTY(unit_type);
+ const bool PROPERTY_CUSTOM_NAME(floating_flag, has_floating_flag);
+
+ const uint32_t PROPERTY(priority);
+ const fixed_point_t PROPERTY(max_strength);
+ const fixed_point_t PROPERTY(default_organisation);
+ const fixed_point_t PROPERTY(maximum_speed);
+ const fixed_point_t PROPERTY(weighted_value);
+
+ const std::string PROPERTY(move_sound);
+ const std::string PROPERTY(select_sound);
+
+ const Timespan PROPERTY(build_time);
+ const Good::good_map_t PROPERTY(build_cost);
+ const fixed_point_t PROPERTY(supply_consumption);
+ const Good::good_map_t PROPERTY(supply_cost);
protected:
Unit(std::string_view identifier, type_t type, UNIT_PARAMS);
public:
Unit(Unit&&) = default;
-
- icon_t get_icon() const;
- type_t get_type() const;
- std::string_view get_sprite() const;
- bool is_active() const;
- std::string_view get_unit_type() const;
- bool has_floating_flag() const;
-
- uint32_t get_priority() const;
- fixed_point_t get_max_strength() const;
- fixed_point_t get_default_organisation() const;
- fixed_point_t get_maximum_speed() const;
- fixed_point_t get_weighted_value() const;
-
- std::string_view get_move_sound() const;
- std::string_view get_select_sound() const;
-
- Timespan get_build_time() const;
- Good::good_map_t const& get_build_cost() const;
- fixed_point_t get_supply_consumption() const;
- Good::good_map_t const& get_supply_cost() const;
};
struct LandUnit : Unit {
friend struct UnitManager;
private:
- const bool primary_culture;
- const std::string sprite_override, sprite_mount, sprite_mount_attach_node;
- const fixed_point_t reconnaissance;
- const fixed_point_t attack;
- const fixed_point_t defence;
- const fixed_point_t discipline;
- const fixed_point_t support;
- const fixed_point_t maneuver;
- const fixed_point_t siege;
+ const bool PROPERTY_CUSTOM_NAME(primary_culture, is_primary_culture);
+ const std::string PROPERTY(sprite_override);
+ const std::string PROPERTY(sprite_mount);
+ const std::string PROPERTY(sprite_mount_attach_node);
+ const fixed_point_t PROPERTY(reconnaissance);
+ const fixed_point_t PROPERTY(attack);
+ const fixed_point_t PROPERTY(defence);
+ const fixed_point_t PROPERTY(discipline);
+ const fixed_point_t PROPERTY(support);
+ const fixed_point_t PROPERTY(maneuver);
+ const fixed_point_t PROPERTY(siege);
LandUnit(std::string_view identifier, UNIT_PARAMS, LAND_PARAMS);
public:
LandUnit(LandUnit&&) = default;
-
- bool get_primary_culture() const;
- std::string_view get_sprite_override() const;
- std::string_view get_sprite_mount() const;
- std::string_view get_sprite_mount_attach_node() const;
-
- fixed_point_t get_reconnaissance() const;
- fixed_point_t get_attack() const;
- fixed_point_t get_defence() const;
- fixed_point_t get_discipline() const;
- fixed_point_t get_support() const;
- fixed_point_t get_maneuver() const;
- fixed_point_t get_siege() const;
};
struct NavalUnit : Unit {
friend struct UnitManager;
private:
- const icon_t naval_icon;
- const bool sail;
- const bool transport;
- const bool capital;
- const fixed_point_t colonial_points;
- const bool build_overseas;
- const uint32_t min_port_level;
- const int32_t limit_per_port;
- const fixed_point_t supply_consumption_score;
-
- const fixed_point_t hull;
- const fixed_point_t gun_power;
- const fixed_point_t fire_range;
- const fixed_point_t evasion;
- const fixed_point_t torpedo_attack;
+ const icon_t PROPERTY(naval_icon);
+ const bool PROPERTY_CUSTOM_NAME(sail, can_sail);
+ const bool PROPERTY_CUSTOM_NAME(transport, is_transport);
+ const bool PROPERTY_CUSTOM_NAME(capital, is_capital);
+ const fixed_point_t PROPERTY(colonial_points);
+ const bool PROPERTY_CUSTOM_NAME(build_overseas, can_build_overseas);
+ const uint32_t PROPERTY(min_port_level);
+ const int32_t PROPERTY(limit_per_port);
+ const fixed_point_t PROPERTY(supply_consumption_score);
+
+ const fixed_point_t PROPERTY(hull);
+ const fixed_point_t PROPERTY(gun_power);
+ const fixed_point_t PROPERTY(fire_range);
+ const fixed_point_t PROPERTY(evasion);
+ const fixed_point_t PROPERTY(torpedo_attack);
NavalUnit(std::string_view identifier, UNIT_PARAMS, NAVY_PARAMS);
public:
NavalUnit(NavalUnit&&) = default;
-
- icon_t get_naval_icon() const;
- bool can_sail() const;
- bool is_transport() const;
- bool is_capital() const;
- fixed_point_t get_colonial_points() const;
- bool can_build_overseas() const;
- uint32_t get_min_port_level() const;
- int32_t get_limit_per_port() const;
- fixed_point_t get_supply_consumption_score() const;
-
- fixed_point_t get_hull() const;
- fixed_point_t get_gun_power() const;
- fixed_point_t get_fire_range() const;
- fixed_point_t get_evasion() const;
- fixed_point_t get_torpedo_attack() const;
};
struct UnitManager {