Merge refactored-versioning into master

This commit is contained in:
LukeFZ
2024-11-14 14:27:14 +01:00

View File

@@ -195,6 +195,25 @@ namespace Il2CppInspector
Header.AttributeDataRangeSize / Sizeof<Il2CppCustomAttributeDataRange>()); Header.AttributeDataRangeSize / Sizeof<Il2CppCustomAttributeDataRange>());
} }
if (Version is 29 or 31)
{
// 29.2/31.2 added a new isUnmanagedCallersOnly flag to Il2CppMethodDefinition.
// This offsets all subsequent entries by one - we can detect this by checking the
// top token byte (which should always be 0x06).
if (Methods.Length >= 2)
{
var secondToken = Methods[1].token;
if (secondToken >> 24 != 0x6)
{
Version += 0.2;
Methods = ReadArray<Il2CppMethodDefinition>(Header.methodsOffset,
Header.methodsCount / Sizeof(typeof(Il2CppMethodDefinition)));
}
}
}
// Get all metadata strings // Get all metadata strings
var pluginGetStringsResult = PluginHooks.GetStrings(this); var pluginGetStringsResult = PluginHooks.GetStrings(this);
if (pluginGetStringsResult.IsDataModified && !pluginGetStringsResult.IsInvalid) if (pluginGetStringsResult.IsDataModified && !pluginGetStringsResult.IsInvalid)