migrate all legacy VersionCondition attributes to use <X>OrEqual

This reflects the old behavior, but now we also support specifying non-inclusive bounds
This commit is contained in:
LukeFZ
2026-03-16 16:40:20 +01:00
parent 2d91a4f6da
commit 1b35124153
26 changed files with 212 additions and 217 deletions

View File

@@ -14,11 +14,11 @@ public partial record struct Il2CppCodeGenModule
[NativeInteger]
[VersionCondition(EqualTo = "24.5")]
[VersionCondition(GreaterThan = "27.1")]
[VersionCondition(GreaterThanOrEqual = "27.1")]
public uint AdjustorThunksCount;
[VersionCondition(EqualTo = "24.5")]
[VersionCondition(GreaterThan = "27.1")]
[VersionCondition(GreaterThanOrEqual = "27.1")]
public Pointer<Il2CppTokenAdjustorThunkPair> AdjustorThunks;
public PrimitivePointer<int> InvokerIndices; // int*
@@ -38,18 +38,18 @@ public partial record struct Il2CppCodeGenModule
public PrimitivePointer<byte> DebuggerMetadata; // Pointer<Il2CppDebuggerMetadataRegistration> DebuggerMetadata;
[VersionCondition(GreaterThan = "27.0", LessThan = "27.2")]
[VersionCondition(GreaterThanOrEqual = "27.0", LessThanOrEqual = "27.2")]
public Pointer<Il2CppMethodPointer> CustomAttributeCacheGenerator;
[VersionCondition(GreaterThan = "27.0")]
[VersionCondition(GreaterThanOrEqual = "27.0")]
public Il2CppMethodPointer ModuleInitializer;
[VersionCondition(GreaterThan = "27.0")]
[VersionCondition(GreaterThanOrEqual = "27.0")]
public PrimitivePointer<int> StaticConstructorTypeIndices; // TypeDefinitionIndex*
[VersionCondition(GreaterThan = "27.0")]
[VersionCondition(GreaterThanOrEqual = "27.0")]
public PrimitivePointer<byte> MetadataRegistration; // Pointer<Il2CppMetadataRegistration>
[VersionCondition(GreaterThan = "27.0")]
[VersionCondition(GreaterThanOrEqual = "27.0")]
public PrimitivePointer<byte> CodeRegistration; // Pointer<Il2CppCodeRegistration>
}

View File

@@ -8,10 +8,10 @@ using InvokerMethod = Il2CppMethodPointer;
public partial record struct Il2CppCodeRegistration
{
[NativeInteger]
[VersionCondition(LessThan = "24.1")]
[VersionCondition(LessThanOrEqual = "24.1")]
public uint MethodPointersCount;
[VersionCondition(LessThan = "24.1")]
[VersionCondition(LessThanOrEqual = "24.1")]
public Pointer<Il2CppMethodPointer> MethodPointers;
[NativeInteger]
@@ -20,24 +20,24 @@ public partial record struct Il2CppCodeRegistration
public Pointer<Il2CppMethodPointer> ReversePInvokeWrappers;
[NativeInteger]
[VersionCondition(LessThan = "22.0")]
[VersionCondition(LessThanOrEqual = "22.0")]
public uint DelegateWrappersFromManagedToNativeCount;
[VersionCondition(LessThan = "22.0")]
[VersionCondition(LessThanOrEqual = "22.0")]
public Pointer<Il2CppMethodPointer> DelegateWrappersFromManagedToNative;
[NativeInteger]
[VersionCondition(LessThan = "22.0")]
[VersionCondition(LessThanOrEqual = "22.0")]
public uint MarshalingFunctionsCount;
[VersionCondition(LessThan = "22.0")]
[VersionCondition(LessThanOrEqual = "22.0")]
public Pointer<Il2CppMethodPointer> MarshalingFunctions;
[NativeInteger]
[VersionCondition(GreaterThan = "21.0", LessThan = "22.0")]
[VersionCondition(GreaterThanOrEqual = "21.0", LessThanOrEqual = "22.0")]
public uint CcwMarshalingFunctionsCount;
[VersionCondition(GreaterThan = "21.0", LessThan = "22.0")]
[VersionCondition(GreaterThanOrEqual = "21.0", LessThanOrEqual = "22.0")]
public Pointer<Il2CppMethodPointer> CcwMarshalingFunctions;
[NativeInteger]
@@ -46,7 +46,7 @@ public partial record struct Il2CppCodeRegistration
public Pointer<Il2CppMethodPointer> GenericMethodPointers;
[VersionCondition(EqualTo = "24.5")]
[VersionCondition(GreaterThan = "27.1")]
[VersionCondition(GreaterThanOrEqual = "27.1")]
public Pointer<Il2CppMethodPointer> GenericAdjustorThunks;
[NativeInteger]
@@ -55,62 +55,59 @@ public partial record struct Il2CppCodeRegistration
public Pointer<InvokerMethod> InvokerPointers;
[NativeInteger]
[VersionCondition(LessThan = "24.5")]
[VersionCondition(LessThanOrEqual = "24.5")]
public int CustomAttributeCount;
[VersionCondition(LessThan = "24.5")]
[VersionCondition(LessThanOrEqual = "24.5")]
public Pointer<Il2CppMethodPointer> CustomAttributeGenerators;
[NativeInteger]
[VersionCondition(GreaterThan = "21.0", LessThan = "22.0")]
[VersionCondition(GreaterThanOrEqual = "21.0", LessThanOrEqual = "22.0")]
public int GuidCount;
[VersionCondition(GreaterThan = "21.0", LessThan = "22.0")]
[VersionCondition(GreaterThanOrEqual = "21.0", LessThanOrEqual = "22.0")]
public Pointer<Il2CppGuid> Guids;
[NativeInteger]
[VersionCondition(GreaterThan = "22.0", LessThan = "27.2")]
[VersionCondition(GreaterThanOrEqual = "22.0", LessThanOrEqual = "27.2")]
[VersionCondition(EqualTo = "29.0", IncludingTag = "")]
[VersionCondition(EqualTo = "31.0", IncludingTag = "")]
public int UnresolvedVirtualCallCount;
[NativeInteger]
[VersionCondition(EqualTo = "29.0", IncludingTag = "2022"), VersionCondition(EqualTo = "31.0", IncludingTag = "2022")]
[VersionCondition(EqualTo = "29.0", IncludingTag = "2023"), VersionCondition(EqualTo = "31.0", IncludingTag = "2023")]
[VersionCondition(GreaterThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "35.0")]
public uint UnresolvedIndirectCallCount; // UnresolvedVirtualCallCount pre 29.1
[VersionCondition(GreaterThan = "22.0")]
[VersionCondition(GreaterThanOrEqual = "22.0")]
public Pointer<Il2CppMethodPointer> UnresolvedVirtualCallPointers;
[VersionCondition(EqualTo = "29.0", IncludingTag = "2022"), VersionCondition(EqualTo = "31.0", IncludingTag = "2022")]
[VersionCondition(EqualTo = "29.0", IncludingTag = "2023"), VersionCondition(EqualTo = "31.0", IncludingTag = "2023")]
[VersionCondition(GreaterThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "35.0")]
public Pointer<Il2CppMethodPointer> UnresolvedInstanceCallWrappers;
[VersionCondition(EqualTo = "29.0", IncludingTag = "2022"), VersionCondition(EqualTo = "31.0", IncludingTag = "2022")]
[VersionCondition(EqualTo = "29.0", IncludingTag = "2023"), VersionCondition(EqualTo = "31.0", IncludingTag = "2023")]
[VersionCondition(GreaterThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "35.0")]
public Pointer<Il2CppMethodPointer> UnresolvedStaticCallPointers;
[NativeInteger]
[VersionCondition(GreaterThan = "23.0")]
[VersionCondition(GreaterThanOrEqual = "23.0")]
public uint InteropDataCount;
[VersionCondition(GreaterThan = "23.0")]
[VersionCondition(GreaterThanOrEqual = "23.0")]
public Pointer<Il2CppInteropData> InteropData;
[NativeInteger]
[VersionCondition(GreaterThan = "24.3")]
[VersionCondition(GreaterThanOrEqual = "24.3")]
public uint WindowsRuntimeFactoryCount;
[VersionCondition(GreaterThan = "24.3")]
[VersionCondition(GreaterThanOrEqual = "24.3")]
public Pointer<Il2CppWindowsRuntimeFactoryTableEntry> WindowsRuntimeFactoryTable;
[NativeInteger]
[VersionCondition(GreaterThan = "24.2")]
[VersionCondition(GreaterThanOrEqual = "24.2")]
public uint CodeGenModulesCount;
[VersionCondition(GreaterThan = "24.2")]
[VersionCondition(GreaterThanOrEqual = "24.2")]
public Pointer<Pointer<Il2CppCodeGenModule>> CodeGenModules;
}

View File

@@ -6,10 +6,10 @@ namespace Il2CppInspector.Next.BinaryMetadata;
public partial record struct Il2CppGenericClass
{
[NativeInteger]
[VersionCondition(LessThan = "24.5")]
[VersionCondition(LessThanOrEqual = "24.5")]
public int TypeDefinitionIndex;
[VersionCondition(GreaterThan = "27.0")]
[VersionCondition(GreaterThanOrEqual = "27.0")]
public Pointer<Il2CppType> Type;
public Il2CppGenericContext Context;

View File

@@ -11,6 +11,6 @@ public partial record struct Il2CppGenericMethodIndices
public MethodIndex InvokerIndex;
[VersionCondition(EqualTo = "24.5")]
[VersionCondition(GreaterThan = "27.1")]
[VersionCondition(GreaterThanOrEqual = "27.1")]
public MethodIndex AdjustorThunkIndex;
}

View File

@@ -6,13 +6,13 @@ public record struct Il2CppGuid : IReadable
{
public Guid Value;
public void Read<TReader>(ref TReader reader, in StructVersion version = default) where TReader : IReader, allows ref struct
public void Read<TReader>(ref Reader<TReader> reader, in StructVersion version = default) where TReader : IReader, allows ref struct
{
var guid = reader.ReadBytes(16);
Value = new Guid(guid, false);
}
public static int Size(in StructVersion version = default, bool is32Bit = false)
public static int Size(in StructVersion version = default, in ReaderConfig config = default)
{
return 16;
}

View File

@@ -35,10 +35,10 @@ public partial record struct Il2CppMetadataRegistration
public Pointer<Il2CppMethodSpec> MethodSpecs;
[NativeInteger]
[VersionCondition(LessThan = "16.0")]
[VersionCondition(LessThanOrEqual = "16.0")]
public int MethodReferencesCount;
[VersionCondition(LessThan = "16.0")]
[VersionCondition(LessThanOrEqual = "16.0")]
public PrimitivePointer<PrimitivePointer<uint>> MethodReferences; // uint**
[NativeInteger]
@@ -51,9 +51,9 @@ public partial record struct Il2CppMetadataRegistration
public Pointer<Pointer<Il2CppTypeDefinitionSizes>> TypeDefinitionsSizes;
[NativeInteger]
[VersionCondition(GreaterThan = "19.0")]
[VersionCondition(GreaterThanOrEqual = "19.0")]
public ulong MetadataUsagesCount;
[VersionCondition(GreaterThan = "19.0")]
[VersionCondition(GreaterThanOrEqual = "19.0")]
public Pointer<Pointer<Il2CppMetadataUsage>> MetadataUsages;
}

View File

@@ -23,14 +23,14 @@ public record struct Il2CppType : IReadable
public readonly Il2CppMetadataGenericParameterHandle GenericParameterHandle => Value;
public readonly Pointer<Il2CppGenericClass> GenericClass => Value;
public void Read<TReader>(ref TReader reader, in StructVersion version = default) where TReader : IReader, allows ref struct
public void Read<TReader>(ref Reader<TReader> reader, in StructVersion version = default) where TReader : IReader, allows ref struct
{
Value = reader.ReadNUInt();
Value = reader.ReadNativeUInt();
}
public static int Size(in StructVersion version = default, bool is32Bit = false)
static int IReadable.Size(in StructVersion version, in ReaderConfig config)
{
return is32Bit ? 4 : 8;
return config.Is32Bit ? 4 : 8;
}
}
@@ -73,7 +73,7 @@ public record struct Il2CppType : IReadable
set => Value = (Value & 0x7FFFFFFF) | (value ? 1u : 0u) << 31;
}
public void Read<TReader>(ref TReader reader, in StructVersion version = default) where TReader : IReader, allows ref struct
public void Read<TReader>(ref Reader<TReader> reader, in StructVersion version = default) where TReader : IReader, allows ref struct
{
Data.Read(ref reader, version);
Value = reader.ReadPrimitive<uint>();
@@ -98,9 +98,9 @@ public record struct Il2CppType : IReadable
}
}
public static int Size(in StructVersion version = default, bool is32Bit = false)
public static int Size(in StructVersion version = default, in ReaderConfig config = default)
{
return DataUnion.Size(version, is32Bit) + sizeof(uint);
return DataUnion.StructSize(version, config) + sizeof(uint);
}
public static Il2CppType FromTypeEnum(Il2CppTypeEnum type)

View File

@@ -10,10 +10,10 @@ public struct DefaultValueDataIndex(int value) : IIndexType<DefaultValueDataInde
private int _value = value;
public static int Size(in StructVersion version = default, bool is32Bit = false)
=> IIndexType<DefaultValueDataIndex>.IndexSize(version, is32Bit);
public static int Size(in StructVersion version = default, in ReaderConfig config = default)
=> IIndexType<DefaultValueDataIndex>.IndexSize(version, config);
public void Read<TReader>(ref TReader reader, in StructVersion version = default) where TReader : IReader, allows ref struct
public void Read<TReader>(ref Reader<TReader> reader, in StructVersion version = default) where TReader : IReader, allows ref struct
{
_value = IIndexType<DefaultValueDataIndex>.ReadIndex(ref reader, in version);
}

View File

@@ -10,10 +10,10 @@ public struct EventIndex(int value) : IIndexType<EventIndex>, IReadable, IEquata
private int _value = value;
public static int Size(in StructVersion version = default, bool is32Bit = false)
=> IIndexType<EventIndex>.IndexSize(version, is32Bit);
public static int Size(in StructVersion version = default, in ReaderConfig config = default)
=> IIndexType<EventIndex>.IndexSize(version, config);
public void Read<TReader>(ref TReader reader, in StructVersion version = default) where TReader : IReader, allows ref struct
public void Read<TReader>(ref Reader<TReader> reader, in StructVersion version = default) where TReader : IReader, allows ref struct
{
_value = IIndexType<EventIndex>.ReadIndex(ref reader, in version);
}

View File

@@ -10,10 +10,10 @@ public struct FieldIndex(int value) : IIndexType<FieldIndex>, IReadable, IEquata
private int _value = value;
public static int Size(in StructVersion version = default, bool is32Bit = false)
=> IIndexType<FieldIndex>.IndexSize(version, is32Bit);
public static int Size(in StructVersion version = default, in ReaderConfig config = default)
=> IIndexType<FieldIndex>.IndexSize(version, config);
public void Read<TReader>(ref TReader reader, in StructVersion version = default) where TReader : IReader, allows ref struct
public void Read<TReader>(ref Reader<TReader> reader, in StructVersion version = default) where TReader : IReader, allows ref struct
{
_value = IIndexType<FieldIndex>.ReadIndex(ref reader, in version);
}

View File

@@ -10,10 +10,10 @@ public struct GenericContainerIndex(int value) : IIndexType<GenericContainerInde
private int _value = value;
public static int Size(in StructVersion version = default, bool is32Bit = false)
=> IIndexType<GenericContainerIndex>.IndexSize(version, is32Bit);
public static int Size(in StructVersion version = default, in ReaderConfig config = default)
=> IIndexType<GenericContainerIndex>.IndexSize(version, config);
public void Read<TReader>(ref TReader reader, in StructVersion version = default) where TReader : IReader, allows ref struct
public void Read<TReader>(ref Reader<TReader> reader, in StructVersion version = default) where TReader : IReader, allows ref struct
{
_value = IIndexType<GenericContainerIndex>.ReadIndex(ref reader, in version);
}

View File

@@ -10,10 +10,10 @@ public struct GenericParameterIndex(int value) : IIndexType<GenericParameterInde
private int _value = value;
public static int Size(in StructVersion version = default, bool is32Bit = false)
=> IIndexType<GenericParameterIndex>.IndexSize(version, is32Bit);
public static int Size(in StructVersion version = default, in ReaderConfig config = default)
=> IIndexType<GenericParameterIndex>.IndexSize(version, config);
public void Read<TReader>(ref TReader reader, in StructVersion version = default) where TReader : IReader, allows ref struct
public void Read<TReader>(ref Reader<TReader> reader, in StructVersion version = default) where TReader : IReader, allows ref struct
{
_value = IIndexType<GenericParameterIndex>.ReadIndex(ref reader, in version);
}

View File

@@ -37,10 +37,10 @@ public interface IIndexType<T> where T
return numberChar - Il2CppMetadataIndex.NumberZeroChar;
}
public static int IndexSize(in StructVersion version = default, bool is32Bit = false)
public static int IndexSize(in StructVersion version = default, in ReaderConfig config = default)
=> GetSizeFromTag(version);
public static int ReadIndex<TReader>(ref TReader reader, in StructVersion version = default) where TReader : IReader, allows ref struct
public static int ReadIndex<TReader>(ref Reader<TReader> reader, in StructVersion version = default) where TReader : IReader, allows ref struct
{
var size = GetSizeFromTag(in version);

View File

@@ -10,30 +10,30 @@ using ImageIndex = int;
public partial record struct Il2CppAssemblyDefinition
{
[FieldOffset(20)]
[VersionCondition(LessThan = "15.0")]
[VersionCondition(LessThanOrEqual = "15.0")]
public Il2CppAssemblyNameDefinition LegacyAname;
[FieldOffset(0)]
public ImageIndex ImageIndex;
[FieldOffset(4)]
[VersionCondition(GreaterThan = "24.1")]
[VersionCondition(GreaterThanOrEqual = "24.1")]
public uint Token;
[FieldOffset(20 + 52)]
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public uint ModuleToken;
[FieldOffset(8)]
[VersionCondition(LessThan = "24.0")]
[VersionCondition(LessThanOrEqual = "24.0")]
public int CustomAttributeIndex;
[FieldOffset(12)]
[VersionCondition(GreaterThan = "20.0")]
[VersionCondition(GreaterThanOrEqual = "20.0")]
public int ReferencedAssemblyStart;
[FieldOffset(16)]
[VersionCondition(GreaterThan = "20.0")]
[VersionCondition(GreaterThanOrEqual = "20.0")]
public int ReferencedAssemblyCount;
[FieldOffset(20)]

View File

@@ -26,15 +26,14 @@ public partial record struct Il2CppAssemblyNameDefinition
public StringIndex CultureIndex;
[FieldOffset(8)]
[VersionCondition(LessThan = "24.3")]
[VersionCondition(LessThanOrEqual = "24.3")]
public int HashValueIndex;
[FieldOffset(12)]
public StringIndex PublicKeyIndex;
[FieldOffset(44)]
[VersionCondition(LessThan = "15.0")]
[CustomSerialization("reader.ReadPrimitive<PublicKeyToken>();", "8")]
[VersionCondition(LessThanOrEqual = "15.0")]
private PublicKeyToken _legacyPublicKeyToken;
[FieldOffset(16)]
@@ -59,6 +58,5 @@ public partial record struct Il2CppAssemblyNameDefinition
public int Revision;
[FieldOffset(44)]
[CustomSerialization("reader.ReadPrimitive<PublicKeyToken>();", "8")]
public PublicKeyToken PublicKeyToken;
}

View File

@@ -5,7 +5,7 @@ namespace Il2CppInspector.Next.Metadata;
[VersionedStruct]
public partial record struct Il2CppCustomAttributeTypeRange
{
[VersionCondition(GreaterThan = "24.1")]
[VersionCondition(GreaterThanOrEqual = "24.1")]
public uint Token { get; private set; }
public int Start { get; private set; }

View File

@@ -12,10 +12,10 @@ public partial record struct Il2CppEventDefinition
public MethodIndex Remove { get; private set; }
public MethodIndex Raise { get; private set; }
[VersionCondition(LessThan = "24.0")]
[VersionCondition(LessThanOrEqual = "24.0")]
public int CustomAttributeIndex { get; private set; }
[VersionCondition(GreaterThan = "19.0")]
[VersionCondition(GreaterThanOrEqual = "19.0")]
public uint Token { get; private set; }
public readonly bool IsValid => NameIndex != 0;

View File

@@ -9,10 +9,10 @@ public partial record struct Il2CppFieldDefinition
public StringIndex NameIndex { get; private set; }
public TypeIndex TypeIndex { get; private set; }
[VersionCondition(LessThan = "24.0")]
[VersionCondition(LessThanOrEqual = "24.0")]
public int CustomAttributeIndex { get; private set; }
[VersionCondition(GreaterThan = "19.0")]
[VersionCondition(GreaterThanOrEqual = "19.0")]
public uint Token { get; private set; }
public readonly bool IsValid => NameIndex != 0;

View File

@@ -11,19 +11,19 @@ public partial record struct Il2CppGenericContainer
[field: FieldOffset(0)]
public int OwnerIndex { get; private set; }
[VersionCondition(LessThan = "105.0")]
[VersionCondition(LessThan = "106.0")]
[field: FieldOffset(4)]
public int TypeArgc { get; private set; }
[VersionCondition(GreaterThan = "106.0")]
[VersionCondition(GreaterThanOrEqual = "106.0")]
[field: FieldOffset(4)]
private ushort _newTypeArgc;
[VersionCondition(LessThan = "105.0")]
[VersionCondition(LessThan = "106.0")]
[field: FieldOffset(8)]
public int IsMethod { get; private set; }
[VersionCondition(GreaterThan = "106.0")]
[VersionCondition(GreaterThanOrEqual = "106.0")]
[field: FieldOffset(8)]
public byte _newIsMethod;

View File

@@ -30,320 +30,320 @@ public partial record struct Il2CppGlobalMetadataHeader
public int Sanity { get; private set; }
public int Version { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int StringLiteralOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int StringLiteralSize { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int StringLiteralDataOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int StringLiteralDataSize { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int StringOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int StringSize { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int EventsOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int EventsSize { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int PropertiesOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int PropertiesSize { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int MethodsOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int MethodsSize { get; private set; }
[VersionCondition(GreaterThan = "16.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "16.0", LessThanOrEqual = "35.0")]
[VersionCondition(EqualTo = "16.0")]
public int ParameterDefaultValuesOffset { get; private set; }
[VersionCondition(GreaterThan = "16.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "16.0", LessThanOrEqual = "35.0")]
[VersionCondition(EqualTo = "16.0")]
public int ParameterDefaultValuesSize { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int FieldDefaultValuesOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int FieldDefaultValuesSize { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int FieldAndParameterDefaultValueDataOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int FieldAndParameterDefaultValueDataSize { get; private set; }
[VersionCondition(GreaterThan = "16.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "16.0", LessThanOrEqual = "35.0")]
public int FieldMarshaledSizesOffset { get; private set; }
[VersionCondition(GreaterThan = "16.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "16.0", LessThanOrEqual = "35.0")]
public int FieldMarshaledSizesSize { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int ParametersOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int ParametersSize { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int FieldsOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int FieldsSize { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int GenericParametersOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int GenericParametersSize { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int GenericParameterConstraintsOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int GenericParameterConstraintsSize { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int GenericContainersOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int GenericContainersSize { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int NestedTypesOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int NestedTypesSize { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int InterfacesOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int InterfacesSize { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int VTableMethodsOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int VTableMethodsSize { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int InterfaceOffsetsOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int InterfaceOffsetsSize { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int TypeDefinitionsOffset { get; private set; }
[VersionCondition(LessThan = "35.0")]
[VersionCondition(LessThanOrEqual = "35.0")]
public int TypeDefinitionsSize { get; private set; }
[VersionCondition(LessThan = "24.1")]
[VersionCondition(LessThanOrEqual = "24.1")]
public int RgctxEntriesOffset { get; private set; }
[VersionCondition(LessThan = "24.1")]
[VersionCondition(LessThanOrEqual = "24.1")]
public int RgctxEntriesCount { get; private set; }
[VersionCondition(GreaterThan = "16.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "16.0", LessThanOrEqual = "35.0")]
public int ImagesOffset { get; private set; }
[VersionCondition(GreaterThan = "16.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "16.0", LessThanOrEqual = "35.0")]
public int ImagesSize { get; private set; }
[VersionCondition(GreaterThan = "16.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "16.0", LessThanOrEqual = "35.0")]
public int AssembliesOffset { get; private set; }
[VersionCondition(GreaterThan = "16.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "16.0", LessThanOrEqual = "35.0")]
public int AssembliesSize { get; private set; }
[VersionCondition(GreaterThan = "19.0", LessThan = "24.5")]
[VersionCondition(GreaterThanOrEqual = "19.0", LessThanOrEqual = "24.5")]
public int MetadataUsageListsOffset { get; private set; }
[VersionCondition(GreaterThan = "19.0", LessThan = "24.5")]
[VersionCondition(GreaterThanOrEqual = "19.0", LessThanOrEqual = "24.5")]
public int MetadataUsageListsCount { get; private set; }
[VersionCondition(GreaterThan = "19.0", LessThan = "24.5")]
[VersionCondition(GreaterThanOrEqual = "19.0", LessThanOrEqual = "24.5")]
public int MetadataUsagePairsOffset { get; private set; }
[VersionCondition(GreaterThan = "19.0", LessThan = "24.5")]
[VersionCondition(GreaterThanOrEqual = "19.0", LessThanOrEqual = "24.5")]
public int MetadataUsagePairsCount { get; private set; }
[VersionCondition(GreaterThan = "19.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "19.0", LessThanOrEqual = "35.0")]
public int FieldRefsOffset { get; private set; }
[VersionCondition(GreaterThan = "19.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "19.0", LessThanOrEqual = "35.0")]
public int FieldRefsSize { get; private set; }
[VersionCondition(GreaterThan = "20.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "20.0", LessThanOrEqual = "35.0")]
public int ReferencedAssembliesOffset { get; private set; }
[VersionCondition(GreaterThan = "20.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "20.0", LessThanOrEqual = "35.0")]
public int ReferencedAssembliesSize { get; private set; }
[VersionCondition(GreaterThan = "21.0", LessThan = "27.2")]
[VersionCondition(GreaterThanOrEqual = "21.0", LessThanOrEqual = "27.2")]
public int AttributesInfoOffset { get; private set; }
[VersionCondition(GreaterThan = "21.0", LessThan = "27.2")]
[VersionCondition(GreaterThanOrEqual = "21.0", LessThanOrEqual = "27.2")]
public int AttributesInfoCount { get; private set; }
[VersionCondition(GreaterThan = "21.0", LessThan = "27.2")]
[VersionCondition(GreaterThanOrEqual = "21.0", LessThanOrEqual = "27.2")]
public int AttributesTypesOffset { get; private set; }
[VersionCondition(GreaterThan = "21.0", LessThan = "27.2")]
[VersionCondition(GreaterThanOrEqual = "21.0", LessThanOrEqual = "27.2")]
public int AttributesTypesCount { get; private set; }
[VersionCondition(GreaterThan = "29.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "29.0", LessThanOrEqual = "35.0")]
public int AttributeDataOffset { get; private set; }
[VersionCondition(GreaterThan = "29.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "29.0", LessThanOrEqual = "35.0")]
public int AttributeDataSize { get; private set; }
[VersionCondition(GreaterThan = "29.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "29.0", LessThanOrEqual = "35.0")]
public int AttributeDataRangeOffset { get; private set; }
[VersionCondition(GreaterThan = "29.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "29.0", LessThanOrEqual = "35.0")]
public int AttributeDataRangeSize { get; private set; }
[VersionCondition(GreaterThan = "22.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "22.0", LessThanOrEqual = "35.0")]
public int UnresolvedIndirectCallParameterTypesOffset { get; private set; }
[VersionCondition(GreaterThan = "22.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "22.0", LessThanOrEqual = "35.0")]
public int UnresolvedIndirectCallParameterTypesSize { get; private set; }
[VersionCondition(GreaterThan = "22.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "22.0", LessThanOrEqual = "35.0")]
public int UnresolvedIndirectCallParameterRangesOffset { get; private set; }
[VersionCondition(GreaterThan = "22.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "22.0", LessThanOrEqual = "35.0")]
public int UnresolvedIndirectCallParameterRangesSize { get; private set; }
[VersionCondition(GreaterThan = "23.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "23.0", LessThanOrEqual = "35.0")]
public int WindowsRuntimeTypeNamesOffset { get; private set; }
[VersionCondition(GreaterThan = "23.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "23.0", LessThanOrEqual = "35.0")]
public int WindowsRuntimeTypeNamesSize { get; private set; }
[VersionCondition(GreaterThan = "27.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "27.0", LessThanOrEqual = "35.0")]
public int WindowsRuntimeStringsOffset { get; private set; }
[VersionCondition(GreaterThan = "27.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "27.0", LessThanOrEqual = "35.0")]
public int WindowsRuntimeStringsSize { get; private set; }
[VersionCondition(GreaterThan = "24.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "24.0", LessThanOrEqual = "35.0")]
public int ExportedTypeDefinitionsOffset { get; private set; }
[VersionCondition(GreaterThan = "24.0", LessThan = "35.0")]
[VersionCondition(GreaterThanOrEqual = "24.0", LessThanOrEqual = "35.0")]
public int ExportedTypeDefinitionsSize { get; private set; }
// new, v38 metadata sections
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata StringLiterals { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata StringLiteralData { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata Strings { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata Events { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata Properties { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata Methods { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata ParameterDefaultValues { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata FieldDefaultValues { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata FieldAndParameterDefaultValueData { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata FieldMarshaledSizes { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata Parameters { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata Fields { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata GenericParameters { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata GenericParameterConstraints { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata GenericContainers { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata NestedTypes { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata Interfaces { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata VtableMethods { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata InterfaceOffsets { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata TypeDefinitions { get; private set; }
[VersionCondition(GreaterThan = "104.0")]
[VersionCondition(GreaterThanOrEqual = "104.0")]
public Il2CppSectionMetadata TypeInlineArrays { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata Images { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata Assemblies { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata FieldRefs { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata ReferencedAssemblies { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata AttributeData { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata AttributeDataRanges { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata UnresolvedIndirectCallParameterTypes { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata UnresolvedIndirectCallParameterRanges { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata WindowsRuntimeTypeNames { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata WindowsRuntimeStrings { get; private set; }
[VersionCondition(GreaterThan = "38.0")]
[VersionCondition(GreaterThanOrEqual = "38.0")]
public Il2CppSectionMetadata ExportedTypeDefinitions { get; private set; }

View File

@@ -14,21 +14,21 @@ public partial record struct Il2CppImageDefinition
public TypeDefinitionIndex TypeStart { get; private set; }
public uint TypeCount { get; private set; }
[VersionCondition(GreaterThan = "24.0")]
[VersionCondition(GreaterThanOrEqual = "24.0")]
public TypeDefinitionIndex ExportedTypeStart { get; private set; }
[VersionCondition(GreaterThan = "24.0")]
[VersionCondition(GreaterThanOrEqual = "24.0")]
public uint ExportedTypeCount { get; private set; }
public MethodIndex EntryPointIndex { get; private set; }
[VersionCondition(GreaterThan = "19.0")]
[VersionCondition(GreaterThanOrEqual = "19.0")]
public uint Token { get; private set; }
[VersionCondition(GreaterThan = "24.1")]
[VersionCondition(GreaterThanOrEqual = "24.1")]
public CustomAttributeIndex CustomAttributeStart { get; private set; }
[VersionCondition(GreaterThan = "24.1")]
[VersionCondition(GreaterThanOrEqual = "24.1")]
public uint CustomAttributeCount { get; private set; }
public readonly bool IsValid => NameIndex != 0;

View File

@@ -10,33 +10,33 @@ public partial record struct Il2CppMethodDefinition
{
public StringIndex NameIndex { get; private set; }
[VersionCondition(GreaterThan = "16.0")]
[VersionCondition(GreaterThanOrEqual = "16.0")]
public TypeDefinitionIndex DeclaringType { get; private set; }
public TypeIndex ReturnType { get; private set; }
[VersionCondition(GreaterThan = "31.0")]
[VersionCondition(GreaterThanOrEqual = "31.0")]
public uint ReturnParameterToken { get; private set; }
public ParameterIndex ParameterStart { get; private set; }
[VersionCondition(LessThan = "24.0")]
[VersionCondition(LessThanOrEqual = "24.0")]
public int CustomAttributeIndex { get; private set; }
public GenericContainerIndex GenericContainerIndex { get; private set; }
[VersionCondition(LessThan = "24.1")]
[VersionCondition(LessThanOrEqual = "24.1")]
public int MethodIndex { get; private set; }
[VersionCondition(LessThan = "24.1")]
[VersionCondition(LessThanOrEqual = "24.1")]
public int InvokerIndex { get; private set; }
[VersionCondition(LessThan = "24.1")]
[VersionCondition(LessThanOrEqual = "24.1")]
public int ReversePInvokeWrapperIndex { get; private set; }
[VersionCondition(LessThan = "24.1")]
[VersionCondition(LessThanOrEqual = "24.1")]
public int RgctxStartIndex { get; private set; }
[VersionCondition(LessThan = "24.1")]
[VersionCondition(LessThanOrEqual = "24.1")]
public int RgctxCount { get; private set; }
public uint Token { get; private set; }

View File

@@ -9,7 +9,7 @@ public partial record struct Il2CppParameterDefinition
public StringIndex NameIndex { get; private set; }
public uint Token { get; private set; }
[VersionCondition(LessThan = "24.0")]
[VersionCondition(LessThanOrEqual = "24.0")]
public int CustomAttributeIndex { get; private set; }
public TypeIndex TypeIndex { get; private set; }

View File

@@ -13,10 +13,10 @@ public partial record struct Il2CppPropertyDefinition
public MethodIndex Set { get; private set; }
public PropertyAttributes Attrs { get; private set; }
[VersionCondition(LessThan = "24.0")]
[VersionCondition(LessThanOrEqual = "24.0")]
public int CustomAttributeIndex { get; private set; }
[VersionCondition(GreaterThan = "19.0")]
[VersionCondition(GreaterThanOrEqual = "19.0")]
public uint Token { get; private set; }
public readonly bool IsValid => NameIndex != 0;

View File

@@ -6,7 +6,7 @@ using StringLiteralIndex = int;
[VersionedStruct]
public partial record struct Il2CppStringLiteral
{
[VersionCondition(LessThan = "31.0")]
[VersionCondition(LessThanOrEqual = "31.0")]
public uint Length { get; private set; }
public StringLiteralIndex DataIndex { get; private set; }
}

View File

@@ -15,38 +15,38 @@ public partial record struct Il2CppTypeDefinition
public StringIndex NameIndex { get; private set; }
public StringIndex NamespaceIndex { get; private set; }
[VersionCondition(LessThan = "24.0")]
[VersionCondition(LessThanOrEqual = "24.0")]
public int CustomAttributeIndex { get; private set; }
public TypeIndex ByValTypeIndex { get; private set; }
[VersionCondition(LessThan = "24.5")]
[VersionCondition(LessThanOrEqual = "24.5")]
public TypeIndex ByRefTypeIndex { get; private set; }
public TypeIndex DeclaringTypeIndex { get; private set; }
public TypeIndex ParentIndex { get; private set; }
[VersionCondition(LessThan = "31.0")]
[VersionCondition(LessThanOrEqual = "31.0")]
public TypeIndex ElementTypeIndex { get; private set; }
[VersionCondition(LessThan = "24.1")]
[VersionCondition(LessThanOrEqual = "24.1")]
public int RgctxStartIndex { get; private set; }
[VersionCondition(LessThan = "24.1")]
[VersionCondition(LessThanOrEqual = "24.1")]
public int RgctxCount { get; private set; }
public GenericContainerIndex GenericContainerIndex { get; private set; }
[VersionCondition(LessThan = "22.0")]
[VersionCondition(LessThanOrEqual = "22.0")]
public int ReversePInvokeWrapperIndex { get; private set; }
[VersionCondition(LessThan = "22.0")]
[VersionCondition(LessThanOrEqual = "22.0")]
public int MarshalingFunctionsIndex { get; private set; }
[VersionCondition(GreaterThan = "21.0", LessThan = "22.0")]
[VersionCondition(GreaterThanOrEqual = "21.0", LessThanOrEqual = "22.0")]
public int CcwFunctionIndex { get; private set; }
[VersionCondition(GreaterThan = "21.0", LessThan = "22.0")]
[VersionCondition(GreaterThanOrEqual = "21.0", LessThanOrEqual = "22.0")]
public int GuidIndex { get; private set; }
public TypeAttributes Flags { get; private set; }
@@ -71,7 +71,7 @@ public partial record struct Il2CppTypeDefinition
public Il2CppTypeDefinitionBitfield Bitfield { get; private set; }
[VersionCondition(GreaterThan = "19.0")]
[VersionCondition(GreaterThanOrEqual = "19.0")]
public uint Token { get; private set; }
public readonly bool IsValid => NameIndex != 0;