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);
            }
        }
Пример #2
0
        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);
            }
        }