From ef56ebbd2f9f03bedcc5033598f831b46bb1f007 Mon Sep 17 00:00:00 2001 From: LukeFZ <17146677+LukeFZ@users.noreply.github.com> Date: Thu, 7 Dec 2023 20:53:03 +0100 Subject: [PATCH] Fix header generation when a struct contains an enum pointer --- Il2CppInspector.Common/Cpp/CppDeclarationGenerator.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Il2CppInspector.Common/Cpp/CppDeclarationGenerator.cs b/Il2CppInspector.Common/Cpp/CppDeclarationGenerator.cs index a6729d2..3652065 100644 --- a/Il2CppInspector.Common/Cpp/CppDeclarationGenerator.cs +++ b/Il2CppInspector.Common/Cpp/CppDeclarationGenerator.cs @@ -118,9 +118,13 @@ namespace Il2CppInspector.Cpp if (ti.IsEnum) VisitFieldStructs(ti.GetEnumUnderlyingType()); - foreach (var fi in ti.DeclaredFields) - if (!fi.IsStatic && !fi.IsLiteral && (fi.FieldType.IsEnum || fi.FieldType.IsValueType)) + foreach (var fi in ti.DeclaredFields.Where(fi => !fi.IsStatic && !fi.IsLiteral)) + { + if (fi.FieldType.IsEnum || fi.FieldType.IsValueType) VisitFieldStructs(fi.FieldType); + else if (fi.FieldType.HasElementType) + VisitFieldStructs(fi.FieldType.ElementType); + } TodoFieldStructs.Add(ti); }