hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2025-08-22 04:52:32 +0200
committerhachem <im@hachem.wtf>2025-08-22 04:52:32 +0200
commit67ed75a6ef6fd090aac6cae9e31e2babb68e39b9 (patch)
tree605edf8af04a43fa6345860e2aeebef1ab10eedd /src/core
parent77717ae7c4f7c8f180e5c5e24cf1098c02f3dbf4 (diff)
fix: settings not saving
Diffstat (limited to 'src/core')
-rw-r--r--src/core/settings_manager.cpp22
-rw-r--r--src/core/settings_manager.h10
2 files changed, 31 insertions, 1 deletions
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; }