Files
Ascent-of-Man/roadconfig.h
T

44 lines
1.2 KiB
C++

#ifndef ROADCONFIG_H
#define ROADCONFIG_H
#include <QString>
#include <QMap>
#include <QColor>
struct RoadTypeConfig {
QString id = "dirt";
QString name = "Dirt Road";
float speedMultiplier = 1.30f;
QString colorStr = "#c49a62";
QString borderColorStr = "#6b4b23";
float width = 3.5f;
float worldWidth = 0.11f;
int cost = 5;
QColor getColor() const { return QColor(colorStr); }
QColor getBorderColor() const { return QColor(borderColorStr); }
};
class RoadConfigManager {
public:
RoadConfigManager();
bool loadConfigFile(const QString &filePath);
const RoadTypeConfig* getRoadType(const QString &id) const;
const QMap<QString, RoadTypeConfig>& getAllRoadTypes() const { return m_types; }
QString defaultRoadType() const { return m_defaultRoadType; }
int buildDurationTicks() const { return m_buildDurationTicks; }
float meanderAmplitude() const { return m_meanderAmplitude; }
int meanderSubdivisions() const { return m_meanderSubdivisions; }
private:
QString m_defaultRoadType;
int m_buildDurationTicks;
float m_meanderAmplitude;
int m_meanderSubdivisions;
QMap<QString, RoadTypeConfig> m_types;
};
#endif // ROADCONFIG_H