1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-25 22:42:04 +02:00

vcmi: remove code duplication for native terrain

This commit is contained in:
Konstantin
2023-04-09 19:30:29 +03:00
parent 7b9e281f7d
commit 4da97682be
12 changed files with 40 additions and 53 deletions

View File

@@ -28,7 +28,16 @@ class DLL_LINKAGE INativeTerrainProvider
public:
virtual Identifier<ETerrainId> getNativeTerrain() const = 0;
virtual FactionID getFaction() const = 0;
virtual bool isItNativeTerrain(Identifier<ETerrainId> terrain) const;
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
@@ -60,7 +69,7 @@ class DLL_LINKAGE EntityWithBonuses : public EntityT<IdType>, public IConstBonus
};
template <typename IdType>
class DLL_LINKAGE EntityWithNativeTerrain : public EntityWithBonuses<IdType>, public INativeTerrainProvider
class DLL_LINKAGE EntityWithNativeTerrain : public EntityT<IdType>, public IConstBonusNativeTerrainProvider
{
};