afegit vsync toggle

This commit is contained in:
2025-12-02 09:44:58 +01:00
parent c26a4774a1
commit 8803fc3806
5 changed files with 55 additions and 4 deletions

View File

@@ -36,6 +36,9 @@ void init() {
gameplay.max_enemies = Defaults::Entities::MAX_ORNIS;
gameplay.max_bullets = Defaults::Entities::MAX_BALES;
// Rendering
rendering.vsync = Defaults::Rendering::VSYNC_DEFAULT;
// Version
version = std::string(Project::VERSION);
}
@@ -181,6 +184,22 @@ static void loadGameplayConfigFromYaml(const fkyaml::node& yaml) {
}
}
static void loadRenderingConfigFromYaml(const fkyaml::node& yaml) {
if (yaml.contains("rendering")) {
const auto& rend = yaml["rendering"];
if (rend.contains("vsync")) {
try {
int val = rend["vsync"].get_value<int>();
// Validar: només 0 o 1
rendering.vsync = (val == 0 || val == 1) ? val : Defaults::Rendering::VSYNC_DEFAULT;
} catch (...) {
rendering.vsync = Defaults::Rendering::VSYNC_DEFAULT;
}
}
}
}
// Carregar configuració des del fitxer YAML
auto loadFromFile() -> bool {
const std::string CONFIG_VERSION = std::string(Project::VERSION);
@@ -226,6 +245,7 @@ auto loadFromFile() -> bool {
loadWindowConfigFromYaml(yaml);
loadPhysicsConfigFromYaml(yaml);
loadGameplayConfigFromYaml(yaml);
loadRenderingConfigFromYaml(yaml);
if (console) {
std::cout << "Config carregada correctament des de: " << config_file_path
@@ -285,7 +305,11 @@ auto saveToFile() -> bool {
file << "# GAMEPLAY\n";
file << "gameplay:\n";
file << " max_enemies: " << gameplay.max_enemies << "\n";
file << " max_bullets: " << gameplay.max_bullets << "\n";
file << " max_bullets: " << gameplay.max_bullets << "\n\n";
file << "# RENDERITZACIÓ\n";
file << "rendering:\n";
file << " vsync: " << rendering.vsync << " # 0=disabled, 1=enabled\n";
file.close();