コード例 #1
0
        static void Main(string[] args)
        {
            Parser.Default.ParseArguments <Options>(args).WithParsed(o =>
            {
                CharTable charTable   = new CharTable(o.ChartablePath);
                Narc font             = new Narc(o.FontPath);
                FontTable fontTable_0 = new FontTable(font.Files[0]);
                Generation.Gen gen    = fontTable_0.Gen;
                switch (gen)
                {
                case Generation.Gen.Gen4:
                    font.Files[0] = fontTable_0.Save(charTable);
                    font.Files[1] = new FontTable(font.Files[1]).Save(charTable);
                    font.Files[2] = new FontTable(font.Files[2]).Save(charTable, StyleType.TOP_LEFT);
                    if (font.Files.Count == 10)     // HGSS
                    {
                        font.Files[4] = new FontTable(font.Files[4]).Save(charTable, StyleType.ROUND);
                    }
                    break;

                case Generation.Gen.Gen5:
                    font.Files[0] = fontTable_0.Save(charTable, StyleType.BOTTOM_RIGHT_5);
                    font.Files[1] = new FontTable(font.Files[1]).Save(charTable, StyleType.BOTTOM_RIGHT_5, FontType.PIXEL_9);
                    font.Files[2] = new FontTable(font.Files[2]).Save(charTable, StyleType.ROUND, FontType.PIXEL_9);
                    break;

                default:
                    return;
                }
                font.Save(o.OutputPath);
            });
        }
コード例 #2
0
        public FontTable(byte[] bytes)
        {
            BinaryReader br     = new BinaryReader(new MemoryStream(bytes));
            int          header = br.ReadInt32();

            br.BaseStream.Position = 0;
            switch (header)
            {
            case 0x10:
                Table = new SimpleFontTable(br);
                Gen   = Generation.Gen.Gen4;
                break;

            case 0x4E465452:
                Table = new NFTRNitroFile(br);
                Gen   = Generation.Gen.Gen5;
                break;
            }
            br.Close();
        }