aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-simulation/military/UnitType.hpp
diff options
context:
space:
mode:
author hop311 <hop3114@gmail.com>2024-07-19 00:25:38 +0200
committer hop311 <hop3114@gmail.com>2024-07-19 00:26:27 +0200
commitd8baf57d46539da9edba5952f73089bf9a54bdaf (patch)
tree6d2de5221d2b1945a065e0abba8198d8a052a92a /src/openvic-simulation/military/UnitType.hpp
parenta673f89bb2705826b1c646365eab1775727372b7 (diff)
Unit position/country/leader handling + more use of unit branch templatesunit-work
Diffstat (limited to 'src/openvic-simulation/military/UnitType.hpp')
-rw-r--r--src/openvic-simulation/military/UnitType.hpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/openvic-simulation/military/UnitType.hpp b/src/openvic-simulation/military/UnitType.hpp
index 1642f22..6bd7392 100644
--- a/src/openvic-simulation/military/UnitType.hpp
+++ b/src/openvic-simulation/military/UnitType.hpp
@@ -74,6 +74,19 @@ namespace OpenVic {
UnitType(UnitType&&) = default;
};
+#define _UNIT_BRANCHED_GETTER(name, land, naval, const) \
+ template<UnitType::branch_t Branch> \
+ constexpr auto const& name() const { \
+ if constexpr (Branch == UnitType::branch_t::LAND) { \
+ return land; \
+ } else if constexpr (Branch == UnitType::branch_t::NAVAL) { \
+ return naval; \
+ } \
+ }
+
+#define UNIT_BRANCHED_GETTER(name, land, naval) _UNIT_BRANCHED_GETTER(name, land, naval, )
+#define UNIT_BRANCHED_GETTER_CONST(name, land, naval) _UNIT_BRANCHED_GETTER(name, land, naval, const)
+
template<UnitType::branch_t>
struct UnitTypeBranched;