|
1 | 1 | using System.Diagnostics.CodeAnalysis; |
| 2 | +using Intersect.Client.Framework.Database; |
2 | 3 | using Intersect.Client.Framework.GenericClasses; |
| 4 | +using Newtonsoft.Json; |
3 | 5 |
|
4 | 6 | namespace Intersect.Client.Framework.Input; |
5 | 7 |
|
@@ -30,18 +32,29 @@ public void ReloadFromOptions(Options? options) |
30 | 32 | /// <summary> |
31 | 33 | /// Loads default mappings by starting with hardcoded defaults and then merging overrides from default_settings.json if present. |
32 | 34 | /// </summary> |
33 | | - private static Dictionary<Control, ControlMapping> LoadDefaultMappings() |
| 35 | + public static Dictionary<Control, ControlMapping> LoadDefaultMappings() |
34 | 36 | { |
35 | 37 | // Start with all hardcoded defaults |
36 | 38 | var defaults = GetHardcodedDefaults(); |
37 | 39 |
|
38 | | - // Load file overrides |
39 | | - var fileDefaults = DefaultSettingsLoader.LoadDefaultsFromFile(defaults.Keys); |
40 | | - |
41 | | - // Merge: file overrides hardcoded defaults |
42 | | - foreach (var (control, mapping) in fileDefaults) |
| 40 | + // Load default controls from default_settings.json |
| 41 | + var defaultSettingsPath = Path.Combine("resources", "default_settings.json"); |
| 42 | + if (File.Exists(defaultSettingsPath)) |
43 | 43 | { |
44 | | - defaults[control] = mapping; |
| 44 | + var db = new JsonDatabase(defaultSettingsPath); |
| 45 | + |
| 46 | + foreach (var control in defaults.Keys) |
| 47 | + { |
| 48 | + var controlId = control.GetControlId(); |
| 49 | + var bindings = new List<ControlBinding>(); |
| 50 | + |
| 51 | + if (db.HasPreference($"{controlId}_binding0") && db.HasPreference($"{controlId}_binding1")) |
| 52 | + { |
| 53 | + var binding1 = JsonConvert.DeserializeObject<ControlBinding>(db.LoadPreference($"{controlId}_binding0")); |
| 54 | + var binding2 = JsonConvert.DeserializeObject<ControlBinding>(db.LoadPreference($"{controlId}_binding1")); |
| 55 | + defaults[control] = new ControlMapping(binding1, binding2); |
| 56 | + } |
| 57 | + } |
45 | 58 | } |
46 | 59 |
|
47 | 60 | return defaults; |
|
0 commit comments