|
|
@@ -13,6 +13,9 @@
|
|
|
VCMI_LIB_NAMESPACE_BEGIN
|
|
|
|
|
|
class IBonusBearer;
|
|
|
+class FactionID;
|
|
|
+enum class ETerrainId;
|
|
|
+template<typename T> class Identifier;
|
|
|
|
|
|
class DLL_LINKAGE WithBonuses
|
|
|
{
|
|
|
@@ -20,6 +23,13 @@ public:
|
|
|
virtual const IBonusBearer * getBonusBearer() const = 0;
|
|
|
};
|
|
|
|
|
|
+class DLL_LINKAGE WithNativeTerrain
|
|
|
+{
|
|
|
+public:
|
|
|
+ virtual Identifier<ETerrainId> getNativeTerrain() const = 0;
|
|
|
+ virtual FactionID getFaction() const = 0;
|
|
|
+};
|
|
|
+
|
|
|
class DLL_LINKAGE Entity
|
|
|
{
|
|
|
public:
|
|
|
@@ -48,4 +58,9 @@ class DLL_LINKAGE EntityWithBonuses : public EntityT<IdType>, public WithBonuses
|
|
|
{
|
|
|
};
|
|
|
|
|
|
+template <typename IdType>
|
|
|
+class DLL_LINKAGE EntityWithNativeTerrain : public EntityWithBonuses<IdType>, public WithNativeTerrain
|
|
|
+{
|
|
|
+};
|
|
|
+
|
|
|
VCMI_LIB_NAMESPACE_END
|