Methods go in their own XML element

This commit is contained in:
Yoshi Askharoun
2025-09-21 21:25:26 -05:00
parent 4e4f5d3055
commit 47ced82b74
+17 -6
View File
@@ -77,12 +77,6 @@ public partial class Decompiler
_context.SetScriptContent(export, offset, syntaxTree);
}
foreach (var method in export.Methods.OfType<MarkupMethodSchema>())
{
var methodSyntax = DecompileMethodDeclaration(method, export);
_context.SetScriptContent(export, method.CodeOffset, methodSyntax.SyntaxTree);
}
foreach (var offset in export.RefreshGroupOffsets ?? [])
{
AnalyzeRefreshMethod(offset, export, $"{name}_rfsh_0x{offset:X}");
@@ -100,6 +94,23 @@ public partial class Decompiler
if (!xScripts.HasElements)
xScripts.Remove();
List<string> methodsContent = [];
foreach (var method in export.Methods.OfType<MarkupMethodSchema>())
{
var methodSyntax = DecompileMethodDeclaration(method, export);
methodsContent.Add(FormatSyntaxNode(methodSyntax));
}
if (methodsContent.Count > 0)
{
var methodsContentStr = Environment.NewLine
+ string.Join(Environment.NewLine + Environment.NewLine, methodsContent)
+ Environment.NewLine;
XElement xMethods = new(_nsUix + "Methods", new XCData(methodsContentStr));
xExport.Add(xMethods);
}
if (export.InitializeContentOffset is not uint.MaxValue)
AnalyzeMethodForInit(export.InitializeContentOffset, xExport, export, name + "_cont");