Fix inherited injected fields not being initialized on derived classes
Fix errors injecting a type inheriting a abstract type. I'm not entirely sure why this happens, but the baseVTablePointer[i].method in my case was not default, even though all of it's fields were null.
Fix delegate type names including assembly names. This might cause very long names and if such name becomes too long (I think 1024 characters or more), the runtime will not like it.
Fix NRE setting null to Value of Il2CppReferenceField.
Fix Il2Cpp Detour not being applied if target type is a struct. I have tested this change and it does not cause any issues. Patches get called correctly, and ref MyStruct __instance injection works correctly.
I have tested these changes on Core Keeper Unity 2021.3.14.
This PR combines a number of small fixes:
baseVTablePointer[i].method
in my case was not default, even though all of it's fields were null.Value
ofIl2CppReferenceField
.ref MyStruct __instance
injection works correctly.I have tested these changes on Core Keeper Unity 2021.3.14.