diff --git a/HarmonyTests/Patching/Arguments.cs b/HarmonyTests/Patching/Arguments.cs index 57035694..8c721a2e 100644 --- a/HarmonyTests/Patching/Arguments.cs +++ b/HarmonyTests/Patching/Arguments.cs @@ -326,12 +326,15 @@ public void Test_ArrayArguments() var st2 = new ArgumentArrayMethods.SomeStruct() { n = 9 }; var f1 = new float[] { 8f }; var f2 = new float[] { 9f }; + var b1 = true; + var b2 = true; instance.Method( n1, ref n2, out var n3, s1, ref s2, out var s3, st1, ref st2, out var st3, - f1, ref f2, out var f3 + f1, ref f2, out var f3, + b1, ref b2, out var b3 ); // prefix input @@ -353,6 +356,10 @@ public void Test_ArrayArguments() Assert.AreEqual(9f, ((float[])r[i])[0], $"prefix[{i++}]"); Assert.AreEqual(null, (float[])r[i], $"prefix[{i++}]"); + Assert.AreEqual(true, (bool)r[i], $"prefix[{i++}]"); + Assert.AreEqual(true, (bool)r[i], $"prefix[{i++}]"); + Assert.AreEqual(false, (bool)r[i], $"prefix[{i++}]"); + // postfix input r = ArgumentArrayPatches.postfixInput; i = 0; @@ -372,6 +379,10 @@ public void Test_ArrayArguments() Assert.AreEqual(5.6f, ((float[])r[i])[2], $"postfix[{i++}]"); Assert.AreEqual(6.5f, ((float[])r[i])[2], $"postfix[{i++}]"); + Assert.AreEqual(true, (bool)r[i], $"postfix[{i++}]"); + Assert.AreEqual(false, (bool)r[i], $"postfix[{i++}]"); + Assert.AreEqual(true, (bool)r[i], $"postfix[{i++}]"); + // method output values Assert.AreEqual(123, n2, "n2"); Assert.AreEqual(456, n3, "n3"); @@ -381,6 +392,9 @@ public void Test_ArrayArguments() Assert.AreEqual(456, st3.n, "st3"); Assert.AreEqual(5.6f, f2[2], "f2"); Assert.AreEqual(6.5f, f3[2], "f3"); + Assert.AreEqual(true, b1, $"b1"); + Assert.AreEqual(false, b2, $"b2"); + Assert.AreEqual(true, b3, $"b3"); } [Test] diff --git a/HarmonyTests/Patching/Assets/ArgumentCases.cs b/HarmonyTests/Patching/Assets/ArgumentCases.cs index 37494709..b2694e15 100644 --- a/HarmonyTests/Patching/Assets/ArgumentCases.cs +++ b/HarmonyTests/Patching/Assets/ArgumentCases.cs @@ -179,7 +179,8 @@ public void Method( int n1, ref int n2, out int n3, string s1, ref string s2, out string s3, SomeStruct st1, ref SomeStruct st2, out SomeStruct st3, - float[] f1, ref float[] f2, out float[] f3 + float[] f1, ref float[] f2, out float[] f3, + bool b1, ref bool b2, out bool b3 ) { n2 = 12; @@ -190,6 +191,8 @@ public void Method( st3 = new SomeStruct() { n = 45 }; f2 = [1f, 3f, 5f]; f3 = [2f, 4f, 6f]; + b2 = true; + b3 = false; } } @@ -216,6 +219,9 @@ public static bool Prefix(object[] __args) __args[10] = new float[] { 1.2f, 3.4f, 5.6f }; __args[11] = new float[] { 2.1f, 4.3f, 6.5f }; + __args[13] = false; + __args[14] = true; + return false; } @@ -223,7 +229,8 @@ public static void Postfix( int n1, int n2, int n3, string s1, string s2, string s3, ArgumentArrayMethods.SomeStruct st1, ArgumentArrayMethods.SomeStruct st2, ArgumentArrayMethods.SomeStruct st3, - float[] f1, float[] f2, float[] f3 + float[] f1, float[] f2, float[] f3, + bool b1, bool b2, bool b3 ) { postfixInput = @@ -231,7 +238,8 @@ public static void Postfix( n1, n2, n3, s1, s2, s3, st1, st2, st3, - f1, f2, f3 + f1, f2, f3, + b1, b2, b3 ]; } }