fix: SettingsManager null guard, ui_ filter, double cast for sensitivity/deadzone

This commit is contained in:
2026-03-19 03:21:04 +01:00
parent fd54e16bf4
commit 42d7df27ae

View File

@@ -42,6 +42,12 @@ public partial class SettingsManager : Node
{
Instance = this;
if (ConfigFileHandler.Instance == null)
{
GD.PushError("SettingsManager: ConfigFileHandler.Instance is null");
return;
}
var cfg = ConfigFileHandler.Instance.SettingsConfig;
// --- display_settings ---
@@ -98,8 +104,8 @@ public partial class SettingsManager : Node
public void SaveGameplaySettings()
{
var cfg = ConfigFileHandler.Instance.SettingsConfig;
cfg.SetValue("gameplay_settings", "gamepad_deadzone", GamepadDeadzone);
cfg.SetValue("gameplay_settings", "gamepad_sensitivity", GamepadSensitivity);
cfg.SetValue("gameplay_settings", "gamepad_deadzone", (double)GamepadDeadzone);
cfg.SetValue("gameplay_settings", "gamepad_sensitivity", (double)GamepadSensitivity);
cfg.Save(ConfigFileHandler.SettingsPath);
}
@@ -108,6 +114,7 @@ public partial class SettingsManager : Node
var cfg = ConfigFileHandler.Instance.SettingsConfig;
foreach (var action in InputMap.GetActions())
{
if (action.ToString().StartsWith("ui_")) continue;
foreach (var ev in InputMap.ActionGetEvents(action))
{
if (ev is InputEventKey key)
@@ -157,6 +164,7 @@ public partial class SettingsManager : Node
foreach (var actionName in cfg.GetSectionKeys("input_settings"))
{
if (actionName.StartsWith("ui_")) continue;
if (!InputMap.HasAction(actionName)) continue;
var scancode = (Key)(long)cfg.GetValue("input_settings", actionName);