コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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());
        }
コード例 #4
0
        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
                    }
                });
            });
        }
コード例 #5
0
 internal async Task SaveTextFile(int fileNum, TextFile textFile, ReferencedGarc garcGameText)
 {
     await garcGameText.SetFile(fileNum, textFile.Write());
 }