diff --git a/MiraAPI/GameOptions/OptionTypes/ModdedEnumOption.cs b/MiraAPI/GameOptions/OptionTypes/ModdedEnumOption.cs index 80bd497..f25fda6 100644 --- a/MiraAPI/GameOptions/OptionTypes/ModdedEnumOption.cs +++ b/MiraAPI/GameOptions/OptionTypes/ModdedEnumOption.cs @@ -1,4 +1,5 @@ using System; +using System.Globalization; using System.Linq; using System.Text; using Il2CppInterop.Runtime.InteropTypes.Arrays; @@ -146,7 +147,7 @@ public class ModdedEnumOption : ModdedOption where T : Enum // SetUpFromData method doesnt work correctly so we must set the values manually stringOption.Title = StringName; stringOption.Values = (Data as StringGameSetting)?.Values ?? new Il2CppStructArray(0); - stringOption.Value = Convert.ToInt32(Value); + stringOption.Value = Convert.ToInt32(Value, NumberFormatInfo.InvariantInfo); OptionBehaviour = stringOption; @@ -156,13 +157,13 @@ public class ModdedEnumOption : ModdedOption where T : Enum /// public override float GetFloatData() { - return Convert.ToSingle(Value); + return Convert.ToSingle(Value, NumberFormatInfo.InvariantInfo); } /// public override NetData GetNetData() { - return new NetData(Id, Encoding.Unicode.GetBytes(Convert.ToString(Value))); + return new NetData(Id, Encoding.Unicode.GetBytes(Convert.ToString(Value, NumberFormatInfo.InvariantInfo)!)); } /// @@ -174,13 +175,13 @@ public class ModdedEnumOption : ModdedOption where T : Enum /// public override T GetValueFromOptionBehaviour(OptionBehaviour optionBehaviour) { - return (T)Enum.Parse(typeof(T), optionBehaviour.GetInt().ToString()); + return (T)Enum.Parse(typeof(T), optionBehaviour.GetInt().ToString(NumberFormatInfo.InvariantInfo)); } /// protected override void OnValueChanged(T newValue) { - HudManager.Instance.Notifier.AddSettingsChangeMessage(StringName, Data?.GetValueString(Convert.ToInt32(newValue)), false); + HudManager.Instance.Notifier.AddSettingsChangeMessage(StringName, Data.GetValueString(Convert.ToInt32(newValue, NumberFormatInfo.InvariantInfo)), false); if (!OptionBehaviour) { return; @@ -188,7 +189,7 @@ public class ModdedEnumOption : ModdedOption where T : Enum if (OptionBehaviour is StringOption opt) { - opt.Value = Convert.ToInt32(newValue); + opt.Value = Convert.ToInt32(newValue, NumberFormatInfo.InvariantInfo); } } } diff --git a/MiraAPI/Hud/CustomActionButton.cs b/MiraAPI/Hud/CustomActionButton.cs index 7049a8e..6b8b8cc 100644 --- a/MiraAPI/Hud/CustomActionButton.cs +++ b/MiraAPI/Hud/CustomActionButton.cs @@ -3,6 +3,7 @@ using MiraAPI.Events.Mira; using MiraAPI.Patches; using MiraAPI.Utilities.Assets; using System; +using System.Globalization; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; @@ -421,7 +422,7 @@ public abstract class CustomActionButton { Button?.SetFillUp(Timer, EffectDuration); - Button!.cooldownTimerText.text = Mathf.CeilToInt(Timer).ToString(); + Button!.cooldownTimerText.text = Mathf.CeilToInt(Timer).ToString(NumberFormatInfo.InvariantInfo); Button!.cooldownTimerText.gameObject.SetActive(true); } else