#ifndef ROADCONFIG_H #define ROADCONFIG_H #include #include #include 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& 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 m_types; }; #endif // ROADCONFIG_H