private static BdatStringCollection DeserializeBdatStringArchive(string arhFilename, string ardFilename) { var header = File.ReadAllBytes(arhFilename); var archive = new FileArchive(header, ardFilename); var files = new List <byte[]>(); var fileNames = new List <string>(); files.Add(archive.ReadFile("/bdat/common.bdat")); fileNames.Add(Path.GetFileNameWithoutExtension("common.bdat")); files.Add(archive.ReadFile("/bdat/common_gmk.bdat")); fileNames.Add(Path.GetFileNameWithoutExtension("common_gmk.bdat")); foreach (var file in archive.GetChildFileInfos("/bdat/gb/")) { byte[] bdat = archive.ReadFile(file); if (bdat == null) { continue; } files.Add(bdat); fileNames.Add(Path.GetFileNameWithoutExtension(file.Filename)); } BdatStringCollection tables = DeserializeStrings.ReadBdats(files.ToArray(), fileNames.ToArray()); return(tables); }