示例#1
0
        public void Import(uint[] Bitmap_Buffer)
        {
            // Convert to nibble map array of bytes
            byte[] Pattern_Buffer = new byte[Bitmap_Buffer.Length / 2];

            if (Save_File.Save_Generation == SaveGeneration.NDS || Save_File.Save_Generation == SaveGeneration.N3DS)
            {
                for (int i = 0; i < Pattern_Buffer.Length; i++)
                {
                    int idx = i * 2;
                    Pattern_Buffer[i] = (byte)((PatternData.ClosestColorRGB(Bitmap_Buffer[idx + 1], PaletteData) << 4) | PatternData.ClosestColorRGB(Bitmap_Buffer[idx], PaletteData)); // these are reversed
                }
            }
            else
            {
                byte[] ConvertedBuffer = new byte[Bitmap_Buffer.Length];
                for (int i = 0; i < ConvertedBuffer.Length; i++)
                {
                    ConvertedBuffer[i] = PatternData.ClosestColorRGB(Bitmap_Buffer[i], PaletteData);
                }
                Pattern_Buffer = PatternUtility.EncodeC4(ConvertedBuffer);
            }

            switch (Save_File.Save_Generation)
            {
            case SaveGeneration.GCN:
            case SaveGeneration.Wii:
                GeneratePatternBitmap(Pattern_Buffer);
                break;

            case SaveGeneration.NDS:
                GenerateWWPatternBitmap(Pattern_Buffer);
                break;

            case SaveGeneration.N3DS:
                GenerateNLPatternBitmap(Pattern_Buffer);
                break;
            }

            Write(Pattern_Buffer);
        }