public async Task SaveTextFile(int fileNum, TextFile textFile) { var garcGameText = await this.GetGarc(GarcNames.GameText); await this.SaveTextFile(fileNum, textFile, garcGameText); await this.SaveFile(garcGameText); }
public async Task <TextFile> GetTextFile(int textFile, bool edited = false, Language languageOverride = Language.None) { var garcGameText = await this.GetGarc(GarcNames.GameText, edited : edited, languageOverride : languageOverride); var file = await garcGameText.GetFile(textFile); var tf = new TextFile(this.Version, this.Variables); tf.Read(file); return(tf); }
public async Task <TextFile[]> GetTextFiles(bool edited = false) { var garcGameText = await this.GetGarc(GarcNames.GameText, edited : edited); var files = await garcGameText.GetFiles(); return(files.Select(file => { var tf = new TextFile(this.Version, this.Variables); tf.Read(file); return tf; }).ToArray()); }
public async Task FindGarcText() { await this.CleanAndMakeDir("Garc"); await this.CleanAndMakeDir("Text"); await this.ForEachGarc(async ( gRef, garc, garcIdx ) => { var garcData = await garc.Write(); var garcOutPath = Path.Combine("Garc", $"{gRef.RomFsPath}.bin".Replace('\\', '_')); await File.WriteAllBytesAsync(garcOutPath, garcData); await this.ForEachGarcFile(garc, async(file, fileIdx) => { var fileOutPath = Path.Combine("Garc", $"{gRef.RomFsPath}.{fileIdx}.bin".Replace('\\', '_')); await File.WriteAllBytesAsync(fileOutPath, file); try { var textFile = new TextFile(this.Game.Version); textFile.Read(file); TestContext.Progress.WriteLine($"Found valid text file: {gRef.RomFsPath}:{fileIdx}"); var outFileName = $"{gRef.RomFsPath}.{fileIdx}.txt".Replace('\\', '_'); var outFilePath = Path.Combine("Text", outFileName); await File.WriteAllLinesAsync(outFilePath, textFile.Lines); } catch { // Ignored } }); }); }
internal async Task SaveTextFile(int fileNum, TextFile textFile, ReferencedGarc garcGameText) { await garcGameText.SetFile(fileNum, textFile.Write()); }