Test and fix enchantment table float parsing bugfix
This commit is contained in:
parent
65ebc1b1fa
commit
384f1b3092
1 changed files with 28 additions and 1 deletions
|
@ -14,13 +14,20 @@ namespace CLre.Fixes
|
|||
class Float_TryParse_Patch
|
||||
{
|
||||
[HarmonyPostfix]
|
||||
public static void BeforeMethodCall(string s, ref float result, ref bool __result)
|
||||
public static void AfterMethodCall(string s, ref float result, ref bool __result)
|
||||
{
|
||||
if (__result) return;
|
||||
#if DEBUG
|
||||
API.Utility.Logging.Log($"Replacing float.TryParse method call with invariant call. Parsing: \"{s}\"");
|
||||
#endif
|
||||
__result = float.TryParse(s,
|
||||
NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite | NumberStyles.AllowLeadingSign |
|
||||
NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands | NumberStyles.AllowExponent,
|
||||
NumberFormatInfo.InvariantInfo, out result);
|
||||
|
||||
#if DEBUG
|
||||
API.Utility.Logging.Log($"Parsed \"{s}\" into {result}");
|
||||
#endif
|
||||
}
|
||||
|
||||
[HarmonyTargetMethod]
|
||||
|
@ -29,4 +36,24 @@ namespace CLre.Fixes
|
|||
return AccessTools.Method(typeof(float), "TryParse", new []{typeof(string), typeof(float).MakeByRefType()});
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(float), "Parse", new Type[] {typeof(string)})]
|
||||
class Float_Parse_Patch
|
||||
{
|
||||
[HarmonyPrefix]
|
||||
public static bool BeforeMethodCall(string s, ref float __result)
|
||||
{
|
||||
#if DEBUG
|
||||
API.Utility.Logging.Log($"Replacing float.Parse method call with invariant call. Parsing: \"{s}\"");
|
||||
#endif
|
||||
bool success = float.TryParse(s,
|
||||
NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite | NumberStyles.AllowLeadingSign |
|
||||
NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands | NumberStyles.AllowExponent,
|
||||
NumberFormatInfo.InvariantInfo, out __result);
|
||||
#if DEBUG
|
||||
API.Utility.Logging.Log($"Parsed \"{s}\" into {__result}");
|
||||
#endif
|
||||
return !success;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue