From 32093a1822412cb6e6e7821e1963bdac9d8b1d90 Mon Sep 17 00:00:00 2001 From: KillzXGaming Date: Thu, 2 Apr 2020 14:12:59 -0400 Subject: [PATCH] GFPAK : Fix deleting file entries from improper folder indices --- .../FileFormats/Archives/GFPAK.cs | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/File_Format_Library/FileFormats/Archives/GFPAK.cs b/File_Format_Library/FileFormats/Archives/GFPAK.cs index bb35f8a9..05436c68 100644 --- a/File_Format_Library/FileFormats/Archives/GFPAK.cs +++ b/File_Format_Library/FileFormats/Archives/GFPAK.cs @@ -962,22 +962,16 @@ namespace FirstPlugin public bool DeleteFile(ArchiveFileInfo archiveFileInfo) { - int index = 0; - foreach (FileEntry file in files) + int removeindex = files.IndexOf((FileEntry)archiveFileInfo); + foreach (var folder in folders) { - //Remove folder references first - //Regenerate the indices after - foreach (var folder in folders) - { - for (int f = 0; f < folder.FileCount; f++) - if (folder.hashes[f].Index == index) - folder.hashes.RemoveAt(f); - } - - - index++; + for (int f = 0; f < folder.FileCount; f++) + if (folder.hashes[f].Index == removeindex) + folder.hashes.RemoveAt(f); } + RegenerateFileIndices(); + files.Remove((FileEntry)archiveFileInfo); return true;