From 67ed75a6ef6fd090aac6cae9e31e2babb68e39b9 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/settings_manager.cpp | 22 +++++++++++++++++++++- src/core/settings_manager.h | 10 ++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) (limited to 'src/core') diff --git a/src/core/settings_manager.cpp b/src/core/settings_manager.cpp index 289285c..77f365e 100644 --- a/src/core/settings_manager.cpp +++ b/src/core/settings_manager.cpp @@ -51,12 +51,22 @@ namespace Donut s_settings.simulation.max_steps_static = toml::find_or(sim, "max_steps_static", 15000); s_settings.simulation.early_exit_distance = toml::find_or(sim, "early_exit_distance", 5e12f); s_settings.simulation.gravity_enabled = toml::find_or(sim, "gravity_enabled", true); + s_settings.simulation.disk_thickness = toml::find_or(sim, "disk_thickness", 0.1f); + s_settings.simulation.disk_density = toml::find_or(sim, "disk_density", 0.1f); + s_settings.simulation.rotation_speed = toml::find_or(sim, "rotation_speed", 1.0f); + s_settings.simulation.blur_strength = toml::find_or(sim, "blur_strength", 2.0f); + s_settings.simulation.glow_intensity = toml::find_or(sim, "glow_intensity", 0.1f); s_settings.simulation.target_fps = std::max(30, std::min(120, s_settings.simulation.target_fps)); s_settings.simulation.compute_height = std::max(64, std::min(2048, s_settings.simulation.compute_height)); s_settings.simulation.max_steps_moving = std::max(1000, std::min(60000, s_settings.simulation.max_steps_moving)); s_settings.simulation.max_steps_static = std::max(1000, std::min(30000, s_settings.simulation.max_steps_static)); s_settings.simulation.early_exit_distance = std::max(1e11f, std::min(1e13f, s_settings.simulation.early_exit_distance)); + s_settings.simulation.disk_thickness = std::max(0.01f, std::min(5.0f, s_settings.simulation.disk_thickness)); + s_settings.simulation.disk_density = std::max(0.01f, std::min(5.0f, s_settings.simulation.disk_density)); + s_settings.simulation.rotation_speed = std::max(0.0f, std::min(5.0f, s_settings.simulation.rotation_speed)); + s_settings.simulation.blur_strength = std::max(0.1f, std::min(10.0f, s_settings.simulation.blur_strength)); + s_settings.simulation.glow_intensity = std::max(0.01f, std::min(5.0f, s_settings.simulation.glow_intensity)); } if (config.contains("graphics")) @@ -111,7 +121,12 @@ namespace Donut {"max_steps_moving", s_settings.simulation.max_steps_moving }, {"max_steps_static", s_settings.simulation.max_steps_static }, {"early_exit_distance", s_settings.simulation.early_exit_distance}, - {"gravity_enabled", s_settings.simulation.gravity_enabled } + {"gravity_enabled", s_settings.simulation.gravity_enabled }, + {"disk_thickness", s_settings.simulation.disk_thickness }, + {"disk_density", s_settings.simulation.disk_density }, + {"rotation_speed", s_settings.simulation.rotation_speed }, + {"blur_strength", s_settings.simulation.blur_strength }, + {"glow_intensity", s_settings.simulation.glow_intensity } }; toml::value graphics = toml::table @@ -168,6 +183,11 @@ namespace Donut s_settings.simulation.max_steps_static = 15000; s_settings.simulation.early_exit_distance = 5e12f; s_settings.simulation.gravity_enabled = true; + s_settings.simulation.disk_thickness = 0.1f; + s_settings.simulation.disk_density = 0.1f; + s_settings.simulation.rotation_speed = 1.0f; + s_settings.simulation.blur_strength = 2.0f; + s_settings.simulation.glow_intensity = 0.1f; s_settings.graphics.render_api = "OpenGL"; s_settings.graphics.v_sync_enabled = true; diff --git a/src/core/settings_manager.h b/src/core/settings_manager.h index 1a36026..44a4bcf 100644 --- a/src/core/settings_manager.h +++ b/src/core/settings_manager.h @@ -13,6 +13,11 @@ namespace Donut int max_steps_static = 15000; float early_exit_distance = 5e12f; bool gravity_enabled = true; + float disk_thickness = 0.1f; + float disk_density = 0.1f; + float rotation_speed = 1.0f; + float blur_strength = 2.0f; + float glow_intensity = 0.1f; }; struct GraphicsSettings @@ -53,6 +58,11 @@ namespace Donut static int get_max_steps_static() { return s_settings.simulation.max_steps_static; } static float get_early_exit_distance() { return s_settings.simulation.early_exit_distance; } static bool get_gravity_enabled() { return s_settings.simulation.gravity_enabled; } + static float get_disk_thickness() { return s_settings.simulation.disk_thickness; } + static float get_disk_density() { return s_settings.simulation.disk_density; } + static float get_rotation_speed() { return s_settings.simulation.rotation_speed; } + static float get_blur_strength() { return s_settings.simulation.blur_strength; } + static float get_glow_intensity() { return s_settings.simulation.glow_intensity; } static std::string get_render_api() { return s_settings.graphics.render_api; } static bool get_v_sync_enabled() { return s_settings.graphics.v_sync_enabled; } static bool get_show_fps() { return s_settings.graphics.show_fps; } -- cgit v1.3