Exemple #1
0
        public static int Execute(List <string> args)
        {
            bool RealMode              = false;
            bool UpdateInGameId        = false;
            bool GenerateGracesEnglish = false;

            if (args.Contains("-real"))
            {
                Console.WriteLine("Real Mode activated, resulting file will contain both English and Japanese data as expected by an unmodified game.");
                RealMode = true;
            }
            if (args.Contains("-updateInGameId"))
            {
                Console.WriteLine("Updating InGameIDs in the database.");
                UpdateInGameId = true;
            }
            if (args.Contains("-generateGracesEnglish"))
            {
                Console.WriteLine("Generating English version of GracesJapanese.");
                GenerateGracesEnglish = true;
            }


            Console.WriteLine("Opening STRING_DIC.SO...");
            TSSFile TSS;

            try {
                TSS = new TSSFile("STRING_DIC.SO", Util.GameTextEncoding.ShiftJIS, Util.Endianness.BigEndian);
            } catch (System.IO.FileNotFoundException) {
                Console.WriteLine("Could not open STRING_DIC.SO, exiting.");
                return(-1);
            }


            if (args.Contains("-engorigdmp"))
            {
                Console.WriteLine("Exporting original text (english)...");
                System.IO.File.WriteAllBytes("STRING_DIC_original_eng_export.txt", TSS.ExportTextForEnglishDump());
            }
            if (args.Contains("-origdmp"))
            {
                Console.WriteLine("Exporting original text (all)...");
                System.IO.File.WriteAllBytes("STRING_DIC_original_export.txt", TSS.ExportText());
            }


            Console.WriteLine("Importing databases...");
            if (!TSS.ImportSQL(placeEnglishInJpnEntry: !RealMode, updateDatabaseWithInGameStringId: UpdateInGameId, generateGracesEnglish: GenerateGracesEnglish))
            {
                Console.WriteLine("Could not import all databases! Exiting...");
                return(-1);
            }


            // Empty unused strings
            if (!RealMode)
            {
                foreach (TSSEntry e in TSS.Entries)
                {
                    if (e.StringEng != null)
                    {
                        e.StringEng = "";
                    }
                }
            }


            Console.WriteLine("Writing translated file...");
            System.IO.File.WriteAllBytes("STRING_DIC_translated.SO", TSS.Serialize());


            Console.WriteLine("Writing text dump...");
            System.IO.File.WriteAllBytes("STRING_DIC_translated_export.txt", TSS.ExportText());


            Console.WriteLine("Done!");
            return(0);
        }