Add slope calculation methods to terrainmovementmanager.h

This commit is contained in:
bart
2026-11-08 17:07:22 +01:00
parent eaddef5ff2
commit 9c57ea3b27
+15
View File
@@ -42,6 +42,11 @@ struct TerrainMovementConfig {
float polarSnowFactorStart; float polarSnowFactorStart;
float polarSnowFactorEnd; float polarSnowFactorEnd;
float uphillSlopeMultiplier;
float downhillSlopeBonusMultiplier;
float minStepCost;
float maxClimbableSlopeKm;
QMap<QString, float> movementCosts; QMap<QString, float> movementCosts;
QMap<QString, DomainMovementRule> domainRules; QMap<QString, DomainMovementRule> domainRules;
@@ -57,6 +62,7 @@ public:
bool loadConfig(const QString &filePath); bool loadConfig(const QString &filePath);
QString getTerrainType(int tx, int ty, Matrix2D<TerrainPoint> *mapPoints, int numPoints05) const; QString getTerrainType(int tx, int ty, Matrix2D<TerrainPoint> *mapPoints, int numPoints05) const;
float getHexElevationKm(int tx, int ty, Matrix2D<TerrainPoint> *mapPoints, int numPoints05) const;
bool isTerrainPassable( bool isTerrainPassable(
const QString &terrainType, const QString &terrainType,
@@ -75,6 +81,15 @@ public:
float getTerrainMovementCost(const QString &terrainType) const; float getTerrainMovementCost(const QString &terrainType) const;
float getHexMovementCost(int tx, int ty, Matrix2D<TerrainPoint> *mapPoints, int numPoints05) const; float getHexMovementCost(int tx, int ty, Matrix2D<TerrainPoint> *mapPoints, int numPoints05) const;
float calculateStepCost(
int fromX, int fromY,
int toX, int toY,
MovementDomain domain,
Matrix2D<TerrainPoint> *mapPoints,
int numPoints05,
const UnitConfig *unitConfig = nullptr
) const;
const TerrainMovementConfig& getConfig() const { return m_config; } const TerrainMovementConfig& getConfig() const { return m_config; }
private: private: