From 34e5b184d391f3676ca22ca3309dd536c23ccedf Mon Sep 17 00:00:00 2001 From: hachem Date: Fri, 22 Aug 2025 04:52:32 +0200 Subject: [fix]: settings not saving --- src/Core/SettingsManager.cpp | 22 +++++++++++++++++++++- src/Core/SettingsManager.h | 10 ++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) (limited to 'src/Core') diff --git a/src/Core/SettingsManager.cpp b/src/Core/SettingsManager.cpp index af163e7..9543787 100644 --- a/src/Core/SettingsManager.cpp +++ b/src/Core/SettingsManager.cpp @@ -51,12 +51,22 @@ namespace Donut s_Settings.simulation.maxStepsStatic = toml::find_or(sim, "max_steps_static", 15000); s_Settings.simulation.earlyExitDistance = toml::find_or(sim, "early_exit_distance", 5e12f); s_Settings.simulation.gravityEnabled = toml::find_or(sim, "gravity_enabled", true); + s_Settings.simulation.diskThickness = toml::find_or(sim, "disk_thickness", 0.1f); + s_Settings.simulation.diskDensity = toml::find_or(sim, "disk_density", 0.1f); + s_Settings.simulation.rotationSpeed = toml::find_or(sim, "rotation_speed", 1.0f); + s_Settings.simulation.blurStrength = toml::find_or(sim, "blur_strength", 2.0f); + s_Settings.simulation.glowIntensity = toml::find_or(sim, "glow_intensity", 0.1f); s_Settings.simulation.targetFPS = std::max(30, std::min(120, s_Settings.simulation.targetFPS)); s_Settings.simulation.computeHeight = std::max(64, std::min(2048, s_Settings.simulation.computeHeight)); s_Settings.simulation.maxStepsMoving = std::max(1000, std::min(60000, s_Settings.simulation.maxStepsMoving)); s_Settings.simulation.maxStepsStatic = std::max(1000, std::min(30000, s_Settings.simulation.maxStepsStatic)); s_Settings.simulation.earlyExitDistance = std::max(1e11f, std::min(1e13f, s_Settings.simulation.earlyExitDistance)); + s_Settings.simulation.diskThickness = std::max(0.01f, std::min(5.0f, s_Settings.simulation.diskThickness)); + s_Settings.simulation.diskDensity = std::max(0.01f, std::min(5.0f, s_Settings.simulation.diskDensity)); + s_Settings.simulation.rotationSpeed = std::max(0.0f, std::min(5.0f, s_Settings.simulation.rotationSpeed)); + s_Settings.simulation.blurStrength = std::max(0.1f, std::min(10.0f, s_Settings.simulation.blurStrength)); + s_Settings.simulation.glowIntensity = std::max(0.01f, std::min(5.0f, s_Settings.simulation.glowIntensity)); } if (config.contains("graphics")) @@ -111,7 +121,12 @@ namespace Donut {"max_steps_moving", s_Settings.simulation.maxStepsMoving }, {"max_steps_static", s_Settings.simulation.maxStepsStatic }, {"early_exit_distance", s_Settings.simulation.earlyExitDistance}, - {"gravity_enabled", s_Settings.simulation.gravityEnabled } + {"gravity_enabled", s_Settings.simulation.gravityEnabled }, + {"disk_thickness", s_Settings.simulation.diskThickness }, + {"disk_density", s_Settings.simulation.diskDensity }, + {"rotation_speed", s_Settings.simulation.rotationSpeed }, + {"blur_strength", s_Settings.simulation.blurStrength }, + {"glow_intensity", s_Settings.simulation.glowIntensity } }; toml::value graphics = toml::table @@ -168,6 +183,11 @@ namespace Donut s_Settings.simulation.maxStepsStatic = 15000; s_Settings.simulation.earlyExitDistance = 5e12f; s_Settings.simulation.gravityEnabled = true; + s_Settings.simulation.diskThickness = 0.1f; + s_Settings.simulation.diskDensity = 0.1f; + s_Settings.simulation.rotationSpeed = 1.0f; + s_Settings.simulation.blurStrength = 2.0f; + s_Settings.simulation.glowIntensity = 0.1f; s_Settings.graphics.renderAPI = "OpenGL"; s_Settings.graphics.vSyncEnabled = true; diff --git a/src/Core/SettingsManager.h b/src/Core/SettingsManager.h index bea1162..de0774b 100644 --- a/src/Core/SettingsManager.h +++ b/src/Core/SettingsManager.h @@ -13,6 +13,11 @@ namespace Donut int maxStepsStatic = 15000; float earlyExitDistance = 5e12f; bool gravityEnabled = true; + float diskThickness = 0.1f; + float diskDensity = 0.1f; + float rotationSpeed = 1.0f; + float blurStrength = 2.0f; + float glowIntensity = 0.1f; }; struct GraphicsSettings @@ -53,6 +58,11 @@ namespace Donut static int GetMaxStepsStatic() { return s_Settings.simulation.maxStepsStatic; } static float GetEarlyExitDistance() { return s_Settings.simulation.earlyExitDistance; } static bool GetGravityEnabled() { return s_Settings.simulation.gravityEnabled; } + static float GetDiskThickness() { return s_Settings.simulation.diskThickness; } + static float GetDiskDensity() { return s_Settings.simulation.diskDensity; } + static float GetRotationSpeed() { return s_Settings.simulation.rotationSpeed; } + static float GetBlurStrength() { return s_Settings.simulation.blurStrength; } + static float GetGlowIntensity() { return s_Settings.simulation.glowIntensity; } static std::string GetRenderAPI() { return s_Settings.graphics.renderAPI; } static bool GetVSyncEnabled() { return s_Settings.graphics.vSyncEnabled; } static bool GetShowFPS() { return s_Settings.graphics.showFPS; } -- cgit v1.3