diff --git a/SkinHide/Utils/RefHelp.cs b/SkinHide/Utils/RefHelp.cs index 85f1079..424349b 100644 --- a/SkinHide/Utils/RefHelp.cs +++ b/SkinHide/Utils/RefHelp.cs @@ -83,14 +83,15 @@ namespace SkinHide.Utils { ilGen.Emit(OpCodes.Ldarg, i); - if (DelegateparameterTypes[i - num] == typeof(object) && parameterTypes[i].IsValueType) - { - ilGen.Emit(OpCodes.Unbox_Any, parameterTypes[i]); - } - else + if (!parameterTypes[i].IsValueType) { ilGen.Emit(OpCodes.Castclass, parameterTypes[i]); } + // DelegateparameterTypes i == parameterTypes i + else if (DelegateparameterTypes[i] == typeof(object) && parameterTypes[i].IsValueType) + { + ilGen.Emit(OpCodes.Unbox_Any, parameterTypes[i]); + } } if (method.IsStatic || !virtualCall)