Merge pull request #1882 from rilian-la-te/native-terrain-refactor
Native terrain refactor
This commit is contained in:
69 files changed
+467
-345
No files matched your search
@@ -18,7 +18,7 @@ class CreatureID;
|
||||
class ResourceSet;
|
||||
enum class EGameResID : int8_t;
|
||||
|
||||
class DLL_LINKAGE Creature : public EntityWithBonuses<CreatureID>
|
||||
class DLL_LINKAGE Creature : public EntityWithNativeTerrain<CreatureID>
|
||||
{
|
||||
protected:
|
||||
// use getNamePlural/Singular instead
|
||||
@@ -41,7 +41,6 @@ public:
|
||||
virtual int32_t getLevel() const = 0;
|
||||
virtual int32_t getGrowth() const = 0;
|
||||
virtual int32_t getHorde() const = 0;
|
||||
virtual int32_t getFactionIndex() const = 0;
|
||||
|
||||
virtual int32_t getBaseAttack() const = 0;
|
||||
virtual int32_t getBaseDefense() const = 0;
|
||||
|
||||
+27
-2
@@ -13,13 +13,33 @@
|
||||
VCMI_LIB_NAMESPACE_BEGIN
|
||||
|
||||
class IBonusBearer;
|
||||
class FactionID;
|
||||
enum class ETerrainId;
|
||||
template<typename T> class Identifier;
|
||||
|
||||
class DLL_LINKAGE WithBonuses
|
||||
class DLL_LINKAGE IConstBonusProvider
|
||||
{
|
||||
public:
|
||||
virtual const IBonusBearer * getBonusBearer() const = 0;
|
||||
};
|
||||
|
||||
class DLL_LINKAGE INativeTerrainProvider
|
||||
{
|
||||
public:
|
||||
virtual Identifier<ETerrainId> getNativeTerrain() const = 0;
|
||||
virtual FactionID getFaction() const = 0;
|
||||
virtual bool isNativeTerrain(Identifier<ETerrainId> terrain) const;
|
||||
};
|
||||
|
||||
class DLL_LINKAGE IConstBonusNativeTerrainProvider: public IConstBonusProvider, public INativeTerrainProvider
|
||||
{
|
||||
public:
|
||||
/**
|
||||
Returns native terrain considering some terrain bonuses.
|
||||
*/
|
||||
virtual Identifier<ETerrainId> getNativeTerrain() const;
|
||||
};
|
||||
|
||||
class DLL_LINKAGE Entity
|
||||
{
|
||||
public:
|
||||
@@ -44,7 +64,12 @@ public:
|
||||
};
|
||||
|
||||
template <typename IdType>
|
||||
class DLL_LINKAGE EntityWithBonuses : public EntityT<IdType>, public WithBonuses
|
||||
class DLL_LINKAGE EntityWithBonuses : public EntityT<IdType>, public IConstBonusProvider
|
||||
{
|
||||
};
|
||||
|
||||
template <typename IdType>
|
||||
class DLL_LINKAGE EntityWithNativeTerrain : public EntityT<IdType>, public IConstBonusNativeTerrainProvider
|
||||
{
|
||||
};
|
||||
|
||||
|
||||
@@ -15,15 +15,12 @@
|
||||
VCMI_LIB_NAMESPACE_BEGIN
|
||||
|
||||
class FactionID;
|
||||
enum class ETerrainId;
|
||||
enum class EAlignment : uint8_t;
|
||||
template<typename T> class Identifier;
|
||||
|
||||
class DLL_LINKAGE Faction : public EntityT<FactionID>
|
||||
class DLL_LINKAGE Faction : public EntityT<FactionID>, public INativeTerrainProvider
|
||||
{
|
||||
public:
|
||||
virtual bool hasTown() const = 0;
|
||||
virtual Identifier<ETerrainId> getNativeTerrain() const = 0;
|
||||
virtual EAlignment getAlignment() const = 0;
|
||||
};
|
||||
|
||||
|
||||
Reference in new issue
Block a user