From 7464aea7e4caf1ec2812b9e825137c3ab4e3ed07 Mon Sep 17 00:00:00 2001 From: wartori Date: Fri, 3 Apr 2026 20:57:03 +0200 Subject: [PATCH 1/2] Fix wrongly used `value` in enum handling --- Celeste.Mod.mm/Mod/Module/EverestModule.cs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Celeste.Mod.mm/Mod/Module/EverestModule.cs b/Celeste.Mod.mm/Mod/Module/EverestModule.cs index e84ebd762..338c8f737 100644 --- a/Celeste.Mod.mm/Mod/Module/EverestModule.cs +++ b/Celeste.Mod.mm/Mod/Module/EverestModule.cs @@ -746,10 +746,15 @@ TextMenu.Item CreateItem(PropertyInfo prop, string name = null, object settingsO ); }); } - else if (propType.IsEnum) - { + else if (propType.IsEnum) { Array enumValues = Enum.GetValues(propType); - Array.Sort((int[]) enumValues); + Array.Sort(enumValues); + int valueIndex = 0; // Default to the first option if the value is not found + for (int i = 0; i < enumValues.Length; i++) { + if (enumValues.GetValue(i).Equals(value)) { + valueIndex = i; + } + } string enumNamePrefix = $"{nameDefaultPrefix}{prop.Name.ToLowerInvariant()}_"; item = new TextMenu.Slider(name, (i) => { @@ -758,8 +763,8 @@ TextMenu.Item CreateItem(PropertyInfo prop, string name = null, object settingsO $"{enumNamePrefix}{enumName.ToLowerInvariant()}".DialogCleanOrNull() ?? $"modoptions_{propType.Name.ToLowerInvariant()}_{enumName.ToLowerInvariant()}".DialogCleanOrNull() ?? enumName; - }, 0, enumValues.Length - 1, (int) value) - .Change(v => prop.SetValue(settingsObject, v)); + }, 0, enumValues.Length - 1, valueIndex) + .Change(v => prop.SetValue(settingsObject, enumValues.GetValue(v))); } else if (propType == typeof(string)) { From bfea7497e6cb8fee2d5c405dabb0dfcbf6bc9bc2 Mon Sep 17 00:00:00 2001 From: Wartori <72220838+Wartori54@users.noreply.github.com> Date: Mon, 6 Apr 2026 00:52:05 +0200 Subject: [PATCH 2/2] Add break to loop Co-authored-by: microlith57 --- Celeste.Mod.mm/Mod/Module/EverestModule.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Celeste.Mod.mm/Mod/Module/EverestModule.cs b/Celeste.Mod.mm/Mod/Module/EverestModule.cs index 338c8f737..48a419bd2 100644 --- a/Celeste.Mod.mm/Mod/Module/EverestModule.cs +++ b/Celeste.Mod.mm/Mod/Module/EverestModule.cs @@ -753,6 +753,7 @@ TextMenu.Item CreateItem(PropertyInfo prop, string name = null, object settingsO for (int i = 0; i < enumValues.Length; i++) { if (enumValues.GetValue(i).Equals(value)) { valueIndex = i; + break; } } string enumNamePrefix = $"{nameDefaultPrefix}{prop.Name.ToLowerInvariant()}_";