From 0dc127d29430a50ae968cd290dcaf2f576c7df11 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sat, 18 Sep 2021 19:13:38 -0700 Subject: [PATCH] Add gfpak hash export to ahtblist --- pkNX.WinForms/Dumping/GameDumperSWSH.cs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pkNX.WinForms/Dumping/GameDumperSWSH.cs b/pkNX.WinForms/Dumping/GameDumperSWSH.cs index c6e9b02a..e40bd3d7 100644 --- a/pkNX.WinForms/Dumping/GameDumperSWSH.cs +++ b/pkNX.WinForms/Dumping/GameDumperSWSH.cs @@ -101,6 +101,7 @@ public void DumpAHTB() var result = new HashSet(); var list = new List(); + var gf = new List(); foreach (var f in files) { var bytes = File.ReadAllBytes(f); @@ -141,12 +142,32 @@ public void DumpAHTB() list.AddRange(summaries); } } + + for (var i = 0; i < pak.HashAbsolute.Length; i++) + { + var x = pak.HashAbsolute[i]; + gf.Add($"{x.HashFnv1aPathFull:X16}\t{f}.Absolute[{i}]"); + } + + for (var i = 0; i < pak.HashInFolder.Length; i++) + { + var x = pak.HashInFolder[i]; + var folder = x.Folder; + gf.Add($"{folder.HashFnv1aPathFolderName:X16}\t{f}.Folder[{i}] ({folder.FileCount})"); + for (int j = 0; j < x.Files.Length; j++) + { + var y = x.Files[j]; + gf.Add($"{y.HashFnv1aPathFileName:X16}\t{f}.Folder[{i}][{j}] ({y.Index})"); + } + } } var outname = GetPath("ahtb.txt"); var outname2 = GetPath("ahtblist.txt"); + var outname3 = GetPath("gfpakhash.txt"); File.WriteAllLines(outname, result); File.WriteAllLines(outname2, list); + File.WriteAllLines(outname3, gf); } public static Dictionary ReadAHTB(byte[] bytes)