Example #1
0
 private static Il2CppClass *ClassFromTypePatch(Il2CppTypeStruct *type)
 {
     if ((long)type->data < 0 && (type->type == Il2CppTypeEnum.IL2CPP_TYPE_CLASS || type->type == Il2CppTypeEnum.IL2CPP_TYPE_VALUETYPE))
     {
         FakeTokenClasses.TryGetValue((long)type->data, out var classPointer);
         return((Il2CppClass *)classPointer);
     }
     return(ourOriginalTypeToClassMethod(type));
 }
Example #2
0
 public INativeTypeStruct Wrap(Il2CppTypeStruct *typePointer)
 {
     if ((IntPtr)typePointer == IntPtr.Zero)
     {
         return(null);
     }
     else
     {
         return(new NativeTypeStruct((IntPtr)typePointer));
     }
 }
 private static Il2CppClass *ClassFromTypePatch(Il2CppTypeStruct *type)
 {
     if ((long)type->data < 0 && (type->type == Il2CppTypeEnum.IL2CPP_TYPE_CLASS || type->type == Il2CppTypeEnum.IL2CPP_TYPE_VALUETYPE))
     {
         FakeTokenClasses.TryGetValue((long)type->data, out var classPointer);
         return((Il2CppClass *)classPointer);
     }
     // possible race: other threads can try resolving classes after the hook is installed but before delegate field is set
     while (ourOriginalTypeToClassMethod == null)
     {
         Thread.Sleep(1);
     }
     return(ourOriginalTypeToClassMethod(type));
 }
 public INativeTypeStruct Wrap(Il2CppTypeStruct* typePointer)
 {
     if ((IntPtr)typePointer == IntPtr.Zero) return null;
     else return new NativeTypeStruct((IntPtr)typePointer);
 }
 public INativeTypeStruct Wrap(Il2CppTypeStruct *TypePointer)
 {
     return(new NativeTypeStruct((IntPtr)TypePointer));
 }