#ifndef PARAMETERS_H #define PARAMETERS_H #include #include #include #include #include #include #include using ParameterValue = std::variant; class Parameters { public: Parameters(); ~Parameters(); void SaveAudioParameters(); void SaveGraphicParameters(); void SaveGameParameters(); void LoadAudioParameters(); void LoadGraphicParameters(); void LoadGameParameters(); void SetAudioParameter(const std::string& key, const ParameterValue& value); void SetGraphicParameter(const std::string& key, const ParameterValue& value); void SetGameParameter(const std::string& key, const ParameterValue& value); std::optional GetAudioParameter(const std::string& key) const; std::optional GetGraphicParameter(const std::string& key) const; std::optional GetGameParameter(const std::string& key) const; private: std::map m_audioSettings; std::map m_graphicSettings; std::map m_gameplaySettings; // Audio float m_mainVolume; float m_musicVolume; float m_sfxVolume; // Graphic float m_resolutionX; float m_resolutionY; bool m_fullscreen; // Gameplay float m_mouseSensitivity; }; #endif // PARAMETERS_H