protected async Task ForEachGarcFile(ReferencedGarc garc, Func <byte[], int, Task> action, int min = 000, int max = -1) { if (max < 0) { max = this.MaxGarcIndex; } for (var fileIdx = 0; fileIdx < garc.Garc.FileCount; fileIdx++) { var file = await garc.GetFile(fileIdx); await action(file, fileIdx); } }
private static async Task WriteGarc(ReferencedGarc garc, GarcReference gRef) { if (GarcsToSkip.Contains(gRef.RomFsPath)) { return; } var garcData = await garc.Garc.Write(); await File.WriteAllBytesAsync($"Garc\\{gRef.RomFsPath.Replace( '\\', '_' )}.bin", garcData); for (var file = 0; file < garc.Garc.FileCount; file++) { var fileData = await garc.GetFile(file); await File.WriteAllBytesAsync($"Garc\\{gRef.RomFsPath.Replace( '\\', '_' )}.{file}.bin", fileData); } }