Push changement pour Parametres -> Settings

This commit is contained in:
mduval76 2023-11-27 16:03:06 -05:00
parent 1ab83a85a7
commit 4a9ad70d48
8 changed files with 167 additions and 155 deletions

View File

@ -1,145 +0,0 @@
#include "parameters.h"
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::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::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();
}
float Parameters::GetMainVolume() const {
return m_mainVolume;
}
void Parameters::SetMainVolume(float volume) {
m_mainVolume = volume;
}
float Parameters::GetMusicVolume() const {
return m_musicVolume;
}
void Parameters::SetMusicVolume(float volume) {
m_musicVolume = volume;
}
float Parameters::GetSfxVolume() const {
return m_sfxVolume;
}
void Parameters::SetSfxVolume(float volume) {
m_sfxVolume = volume;
}
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;
}
}

View File

@ -19,7 +19,6 @@
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\SQCSim-common\parameters.h" />
<ClInclude Include="audio.h" />
<ClInclude Include="booster.h" />
<ClInclude Include="connector.h" />
@ -28,6 +27,7 @@
<ClInclude Include="mesh.h" />
<ClInclude Include="openglcontext.h" />
<ClInclude Include="remoteplayer.h" />
<ClInclude Include="settings.h" />
<ClInclude Include="shader.h" />
<ClInclude Include="skybox.h" />
<ClInclude Include="texture.h" />
@ -37,7 +37,6 @@
<ClInclude Include="renderer.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\SQCSim-common\parameters.cpp" />
<ClCompile Include="audio.cpp" />
<ClCompile Include="booster.cpp" />
<ClCompile Include="connector.cpp" />
@ -46,6 +45,7 @@
<ClCompile Include="mesh.cpp" />
<ClCompile Include="openglcontext.cpp" />
<ClCompile Include="remoteplayer.cpp" />
<ClCompile Include="settings.cpp" />
<ClCompile Include="shader.cpp" />
<ClCompile Include="skybox.cpp" />
<ClCompile Include="texture.cpp" />

View File

@ -56,7 +56,7 @@
<ClInclude Include="booster.h">
<Filter>Fichiers d%27en-tête</Filter>
</ClInclude>
<ClInclude Include="..\SQCSim-common\parameters.h">
<ClInclude Include="settings.h">
<Filter>Fichiers d%27en-tête</Filter>
</ClInclude>
</ItemGroup>
@ -106,7 +106,7 @@
<ClCompile Include="booster.cpp">
<Filter>Fichiers sources</Filter>
</ClCompile>
<ClCompile Include="..\SQCSim-common\parameters.cpp">
<ClCompile Include="settings.cpp">
<Filter>Fichiers sources</Filter>
</ClCompile>
</ItemGroup>

View File

@ -48,3 +48,7 @@ void Audio::Render3DAudioObj(irrklang::ISound* sound, Vector3f& pos, Vector3f& v
void Audio::ToggleMusicState() { m_music->setIsPaused(!m_music->getIsPaused()); }
void Audio::PauseEngine() { m_engine->setAllSoundsPaused(); }
float Audio::GetMusicVolume() const {
return m_music->getVolume();
}

View File

@ -33,6 +33,8 @@ public:
void ToggleMusicState();
void PauseEngine();
float GetMusicVolume() const;
};
#endif // AUDIO_H__

View File

@ -24,7 +24,7 @@
#include "renderer.h"
#include "remoteplayer.h"
#include "booster.h"
#include "settings.h"
class Engine : public OpenglContext {
public:
@ -95,6 +95,7 @@ private:
irrklang::ISound *m_whoosh[MAX_BULLETS];
Player m_player = Player(Vector3f(.5f, CHUNK_SIZE_Y + 1.8f, .5f));
Settings m_parameters = Settings(m_audio);
Bullet* m_bullets[MAX_BULLETS];

146
SQCSim2021/settings.cpp Normal file
View File

@ -0,0 +1,146 @@
#include "settings.h"
Settings::Settings(Audio& audio)
: m_audio(audio),
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 Settings::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 Settings::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();
}
float Settings::GetMainVolume() const {
return m_mainVolume;
}
void Settings::SetMainVolume(float volume) {
m_mainVolume = volume;
}
void Settings::GetMusicVolume() {
m_musicVolume = m_audio.GetMusicVolume();
}
void Settings::SetMusicVolume(float volume) {
m_musicVolume = volume;
}
float Settings::GetSfxVolume() const {
return m_sfxVolume;
}
void Settings::SetSfxVolume(float volume) {
m_sfxVolume = volume;
}
float Settings::GetBrightness() const {
return m_brightness;
}
void Settings::SetBrightness(float brightness) {
m_brightness = brightness;
}
float Settings::GetContrast() const {
return m_contrast;
}
void Settings::SetContrast(float contrast) {
m_contrast = contrast;
}
bool Settings::GetFullscreen() const {
return m_fullscreen;
}
void Settings::SetFullscreen(bool fullscreen) {
m_fullscreen = fullscreen;
}
const Resolution& Settings::GetResolution() const {
return m_resolution;
}
void Settings::SetResolution(const Resolution& resolution) {
m_resolution = resolution;
}
float Settings::GetMouseSensitivity() const {
return m_mouseSensitivity;
}
void Settings::SetMouseSensitivity(float sensitivity) {
m_mouseSensitivity = sensitivity;
}
void Settings::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;
}
}

View File

@ -1,5 +1,5 @@
#ifndef PARAMETERS_H
#define PARAMETERS_H
#ifndef SETTINGS_H__
#define SETTINGS_H__
#include <iostream>
#include <fstream>
@ -8,10 +8,11 @@
#include <map>
#include "define.h"
#include "audio.h"
class Parameters {
class Settings {
public:
Parameters();
Settings(Audio& audio);
void SaveFile(const std::string& filename);
void LoadFile(const std::string& filename);
@ -20,7 +21,7 @@ public:
float GetMainVolume() const;
void SetMainVolume(float volume);
float GetMusicVolume() const;
void GetMusicVolume();
void SetMusicVolume(float volume);
float GetSfxVolume() const;
@ -46,6 +47,8 @@ public:
void ApplyResolution(Resolution resolution);
private:
Audio& m_audio;
// Audio
float m_mainVolume;
float m_musicVolume;
@ -63,4 +66,5 @@ private:
float m_mouseSensitivity;
};
#endif // PARAMETERS_H