diff --git a/Il2CppInspector.Common/IL2CPP/Metadata.cs b/Il2CppInspector.Common/IL2CPP/Metadata.cs index f89626e..98e6fb3 100644 --- a/Il2CppInspector.Common/IL2CPP/Metadata.cs +++ b/Il2CppInspector.Common/IL2CPP/Metadata.cs @@ -221,14 +221,10 @@ namespace Il2CppInspector int size = 0; foreach (var i in type.GetTypeInfo().GetFields()) { - // Only process fields for our selected object versioning - var versionAttr = i.GetCustomAttribute(false); - if (versionAttr != null) { - if (versionAttr.Min != -1 && versionAttr.Min > metadataVersion) - continue; - if (versionAttr.Max != -1 && versionAttr.Max < metadataVersion) - continue; - } + // Only process fields for our selected object versioning (always process if none supplied) + var versions = i.GetCustomAttributes(false).Select(v => (v.Min, v.Max)).ToList(); + if (versions.Any() && !versions.Any(v => (v.Min <= metadataVersion || v.Min == -1) && (v.Max >= metadataVersion || v.Max == -1))) + continue; if (i.FieldType == typeof(long) || i.FieldType == typeof(ulong)) size += longSizeBytes;