fix: SettingsManager null guard, ui_ filter, double cast for sensitivity/deadzone
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user