예제 #1
0
    public static int Remove_NotUsedColors(ref NCLR.NTFP palette, ref byte[][] tiles)
    {
        int         num2;
        int         num  = -1;
        List <bool> list = new List <bool>();

        for (num2 = 0; num2 < palette.colors.Length; num2++)
        {
            list.Add(false);
        }
        for (num2 = 0; num2 < tiles.Length; num2++)
        {
            for (int i = 0; i < tiles[num2].Length; i++)
            {
                list[tiles[num2][i]] = true;
            }
        }
        for (num2 = 0; num2 < list.Count; num2++)
        {
            if (!list[num2])
            {
                num = num2;
            }
        }
        return(num);
    }
예제 #2
0
    public static int Remove_DuplicatedColors(ref NCLR.NTFP palette, ref byte[][] tiles)
    {
        List <Color> list = new List <Color>();
        int          num  = -1;

        for (int i = 0; i < palette.colors.Length; i++)
        {
            if (!list.Contains(palette.colors[i]))
            {
                list.Add(palette.colors[i]);
            }
            else
            {
                int index = list.IndexOf(palette.colors[i]);
                Replace_Color(ref tiles, i, index);
                list.Add(Color.FromArgb(0xf8, 0, 0xf8));
                if (num == -1)
                {
                    num = i;
                }
            }
        }
        palette.colors = list.ToArray();
        return(num);
    }