Example #1
0
    public static NCLR.TTLP Palette_4bppTo8bpp(NCLR.TTLP palette)
    {
        NCLR.TTLP ttlp = new NCLR.TTLP {
            ID       = palette.ID,
            length   = palette.length,
            unknown1 = palette.unknown1
        };
        List <Color> list = new List <Color>();

        for (int i = 0; i < palette.palettes.Length; i++)
        {
            list.AddRange(palette.palettes[i].colors);
        }
        ttlp.palettes           = new NCLR.NTFP[1];
        ttlp.palettes[0].colors = list.ToArray();
        ttlp.nColors            = (uint)ttlp.palettes[0].colors.Length;
        ttlp.paletteLength      = ttlp.nColors * 2;
        ttlp.depth = ColorDepth.Depth8Bit;
        return(ttlp);
    }
Example #2
0
    public static NCLR.TTLP Palette_8bppTo4bpp(NCLR.TTLP palette)
    {
        int num2;

        Color[]   colorArray;
        NCLR.TTLP ttlp = new NCLR.TTLP {
            ID            = palette.ID,
            length        = palette.length,
            unknown1      = palette.unknown1,
            nColors       = 0x10,
            paletteLength = 0x20,
            depth         = ColorDepth.Depth4Bit
        };
        int num = (int)(palette.nColors % 0x10);

        if (num == 0)
        {
            ttlp.palettes = new NCLR.NTFP[palette.nColors / 0x10];
            for (num2 = 0; num2 < ttlp.palettes.Length; num2++)
            {
                colorArray = new Color[0x10];
                Array.Copy(palette.palettes[0].colors, num2 * 0x10, colorArray, 0, 0x10);
                ttlp.palettes[num2].colors = colorArray;
            }
            return(ttlp);
        }
        ttlp.palettes = new NCLR.NTFP[(palette.nColors / 0x10) + 1];
        for (num2 = 0; num2 < (ttlp.palettes.Length - 1); num2++)
        {
            colorArray = new Color[0x10];
            Array.Copy(palette.palettes[0].colors, num2 * 0x10, colorArray, 0, 0x10);
            ttlp.palettes[num2].colors = colorArray;
        }
        Color[] destinationArray = new Color[num];
        Array.Copy(palette.palettes[0].colors, (long)(palette.nColors / 0x10), destinationArray, 0L, (long)num);
        ttlp.palettes[ttlp.palettes.Length - 1].colors = destinationArray;
        return(ttlp);
    }