From 83e94ebf288c684ff0229cfd892d11720f797fda Mon Sep 17 00:00:00 2001 From: Katy Coe Date: Mon, 20 Jul 2020 18:54:01 +0200 Subject: [PATCH] Unity: Fix missing VirtualInvokeData for 5.3.6-5.4.6 --- .../Cpp/UnityHeaders/UnityHeader.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Il2CppInspector.Common/Cpp/UnityHeaders/UnityHeader.cs b/Il2CppInspector.Common/Cpp/UnityHeaders/UnityHeader.cs index ff85bf1..0e522f3 100644 --- a/Il2CppInspector.Common/Cpp/UnityHeaders/UnityHeader.cs +++ b/Il2CppInspector.Common/Cpp/UnityHeaders/UnityHeader.cs @@ -34,7 +34,19 @@ namespace Il2CppInspector.Cpp.UnityHeaders public override string ToString() => Version.ToString(); // Return the contents of this header file as a string - public string GetHeaderText() => ResourceHelper.GetText(typeof(UnityHeader).Namespace + "." + HeaderFilename); + public string GetHeaderText() { + var str = ResourceHelper.GetText(typeof(UnityHeader).Namespace + "." + HeaderFilename); + + // Versions 5.3.6-5.4.6 don't include a definition for VirtualInvokeData + if (Version.Min.CompareTo("5.3.6") >= 0 && Version.Max.CompareTo("5.4.6") <= 0) { + str = str + @"struct VirtualInvokeData +{ + Il2CppMethodPointer methodPtr; + const MethodInfo* method; +} VirtualInvokeData;"; + } + return str; + } // List all header files embedded into this build of Il2CppInspector public static IEnumerable GetAllHeaders() => ResourceHelper.GetNamesForNamespace(typeof(UnityHeader).Namespace)