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); }
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); }