migrate versioning to StructVersion class, add handling/detection for 29.2/31.2
This commit is contained in:
@@ -6,6 +6,8 @@
|
||||
All rights reserved.
|
||||
*/
|
||||
|
||||
using Il2CppInspector.Next;
|
||||
|
||||
namespace Il2CppInspector
|
||||
{
|
||||
public enum MetadataUsageType
|
||||
@@ -34,7 +36,7 @@ namespace Il2CppInspector
|
||||
public static MetadataUsage FromEncodedIndex(Il2CppInspector package, uint encodedIndex, ulong virtualAddress = 0) {
|
||||
uint index;
|
||||
MetadataUsageType usageType;
|
||||
if (package.Version < 19) {
|
||||
if (package.Version < MetadataVersions.V190) {
|
||||
/* These encoded indices appear only in vtables, and are decoded by IsGenericMethodIndex/GetDecodedMethodIndex */
|
||||
var isGeneric = encodedIndex & 0x80000000;
|
||||
index = package.Binary.VTableMethodReferences[encodedIndex & 0x7FFFFFFF];
|
||||
@@ -46,7 +48,7 @@ namespace Il2CppInspector
|
||||
index = encodedIndex & 0x1FFFFFFF;
|
||||
|
||||
// From v27 the bottom bit is set to indicate the usage token hasn't been replaced with a pointer at runtime yet
|
||||
if (package.Version >= 27)
|
||||
if (package.Version >= MetadataVersions.V270)
|
||||
index >>= 1;
|
||||
}
|
||||
return new MetadataUsage(usageType, (int)index, virtualAddress);
|
||||
|
||||
Reference in New Issue
Block a user