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
commit34e5b184d391f3676ca22ca3309dd536c23ccedf (patch)
treec1e8771635de9a89b101749db056d0496a6e731e /src/Core
parentb9c20fccac64e7aadd28ea6c621c4ffda2561c54 (diff)
[fix]: settings not saving
Diffstat (limited to 'src/Core')
-rw-r--r--src/Core/SettingsManager.cpp22
-rw-r--r--src/Core/SettingsManager.h10
2 files changed, 31 insertions, 1 deletions
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; }