Push premiere esquisse des parametres de sauvegarde

This commit is contained in:
mduval76
2023-11-16 23:39:44 -05:00
parent 6bb3ee9667
commit 8e041a314d
5 changed files with 163 additions and 74 deletions

View File

@@ -1,67 +1,145 @@
#include "parameters.h"
Parameters::Parameters() {}
Parameters::~Parameters() {}
void Parameters::SaveAudioParameters() {
Parameters::Parameters()
: m_mainVolume(0.5f),
m_musicVolume(0.5f),
m_sfxVolume(0.5f),
m_resolution(FHD),
m_fullscreen(false),
m_brightness(0.5f),
m_contrast(0.5f),
m_mouseSensitivity(0.5f) {
ApplyResolution(m_resolution);
}
void Parameters::SaveGraphicParameters() {
void Parameters::SaveFile(const std::string& filename) {
std::ofstream file(filename);
if (!file.is_open()) {
std::cerr << "Failed to open file for saving parameters" << std::endl;
return;
}
file << m_mainVolume << '\n';
file << m_musicVolume << '\n';
file << m_sfxVolume << '\n';
file << static_cast<int>(m_resolution) << '\n';
file << m_fullscreen << '\n';
file << m_brightness << '\n';
file << m_contrast << '\n';
file << m_mouseSensitivity << '\n';
file.close();
}
void Parameters::SaveGameParameters() {
void Parameters::LoadFile(const std::string& filename) {
std::ifstream file(filename);
if (!file.is_open()) {
std::cerr << "Failed to open file for loading parameters" << std::endl;
return;
}
file >> m_mainVolume;
file >> m_musicVolume;
file >> m_sfxVolume;
int resolutionValue;
file >> resolutionValue;
m_resolution = static_cast<Resolution>(resolutionValue);
file >> m_fullscreen;
file >> m_brightness;
file >> m_contrast;
file >> m_mouseSensitivity;
file.close();
}
void Parameters::LoadAudioParameters() {
float Parameters::GetMainVolume() const {
return m_mainVolume;
}
void Parameters::LoadGraphicParameters() {
void Parameters::SetMainVolume(float volume) {
m_mainVolume = volume;
}
void Parameters::LoadGameParameters() {
float Parameters::GetMusicVolume() const {
return m_musicVolume;
}
void Parameters::SetAudioParameter(const std::string& key, const ParameterValue& value) {
m_audioSettings[key] = value;
void Parameters::SetMusicVolume(float volume) {
m_musicVolume = volume;
}
void Parameters::SetGraphicParameter(const std::string& key, const ParameterValue& value) {
m_graphicSettings[key] = value;
float Parameters::GetSfxVolume() const {
return m_sfxVolume;
}
void Parameters::SetGameParameter(const std::string& key, const ParameterValue& value) {
m_gameplaySettings[key] = value;
void Parameters::SetSfxVolume(float volume) {
m_sfxVolume = volume;
}
std::optional<ParameterValue> Parameters::GetAudioParameter(const std::string& key) const {
auto it = m_audioSettings.find(key);
if (it != m_audioSettings.end()) {
return it->second;
float Parameters::GetBrightness() const {
return m_brightness;
}
void Parameters::SetBrightness(float brightness) {
m_brightness = brightness;
}
float Parameters::GetContrast() const {
return m_contrast;
}
void Parameters::SetContrast(float contrast) {
m_contrast = contrast;
}
bool Parameters::GetFullscreen() const {
return m_fullscreen;
}
void Parameters::SetFullscreen(bool fullscreen) {
m_fullscreen = fullscreen;
}
const Resolution& Parameters::GetResolution() const {
return m_resolution;
}
void Parameters::SetResolution(const Resolution& resolution) {
m_resolution = resolution;
}
float Parameters::GetMouseSensitivity() const {
return m_mouseSensitivity;
}
void Parameters::SetMouseSensitivity(float sensitivity) {
m_mouseSensitivity = sensitivity;
}
void Parameters::ApplyResolution(Resolution resolution) {
switch (resolution) {
case HD:
m_rezWidth = 1280;
m_rezHeight = 720;
break;
case FHD:
m_rezWidth = 1920;
m_rezHeight = 1080;
break;
case QHD:
m_rezWidth = 2560;
m_rezHeight = 1440;
break;
case UHD:
m_rezWidth = 3840;
m_rezHeight = 2160;
break;
default:
break;
}
return std::nullopt;
}
std::optional<ParameterValue> Parameters::GetGraphicParameter(const std::string& key) const {
auto it = m_graphicSettings.find(key);
if (it != m_graphicSettings.end()) {
return it->second;
}
return std::nullopt;
}
std::optional<ParameterValue> Parameters::GetGameParameter(const std::string& key) const {
auto it = m_gameplaySettings.find(key);
if (it != m_gameplaySettings.end()) {
return it->second;
}
return std::nullopt;
}