#ifndef BUILDINGCONFIG_H #define BUILDINGCONFIG_H #include #include #include struct BuildingConfig { QString id; QString name; QString district; // e.g. "center" int laborCost; float foodModifier; // e.g. 0.50f for +50% food production int foodBonus; int laborBonus; int cultureBonus; int scienceBonus; int faithBonus; int goldBonus; QString requiredTech; QString obsoleteTech; QString iconPath; QString description; BuildingConfig() : id(""), name(""), district("center"), laborCost(1000), foodModifier(0.0f), foodBonus(0), laborBonus(0), cultureBonus(0), scienceBonus(0), faithBonus(0), goldBonus(0), requiredTech(""), obsoleteTech(""), iconPath(""), description("") {} }; struct DistrictConfig { QString id; QString name; int maxBuildings; QString description; DistrictConfig() : id("center"), name("City Center"), maxBuildings(10), description("") {} }; class BuildingConfigManager { public: BuildingConfigManager(); bool loadConfigFile(const QString &filePath); const BuildingConfig* getBuilding(const QString &id) const; const DistrictConfig* getDistrict(const QString &id) const; const QMap& getAllBuildings() const { return m_buildings; } const QMap& getAllDistricts() const { return m_districts; } private: QMap m_buildings; QMap m_districts; }; #endif // BUILDINGCONFIG_H