AnimalCrossingQR.AC.NibbleWriter.WriteNibble C# (CSharp) Method

WriteNibble() public method

public WriteNibble ( byte value ) : void
value byte
return void
        public void WriteNibble(byte value)
        {
            if (byteAligned)
            {
                halfWrittenByte = (byte)(value << 4);
                byteAligned = false;
            }
            else
            {
                halfWrittenByte |= value;
                binaryWriter.Write(halfWrittenByte);
                byteAligned = true;
            }

            NibblesWritten++;
        }

Same methods

NibbleWriter::WriteNibble ( int value ) : void

Usage Example

Esempio n. 1
0
        public byte[] GetRawData()
        {
            MemoryStream memoryStream = new MemoryStream();
            BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
            NibbleWriter nibbleWriter = new NibbleWriter(binaryWriter);

            nibbleWriter.WriteString(Title, 42);
            Author.Write(nibbleWriter);

            ColorPalette.Write(nibbleWriter);

            nibbleWriter.WriteByte(0x00);
            nibbleWriter.WriteByte(0x0A);
            nibbleWriter.WriteByte((byte)Type);
            nibbleWriter.WriteByte(0x00);
            nibbleWriter.WriteByte(0x00);

            for (int j = 0; j < Data.GetLength(1); j++)
                for (int i = 0; i < Data.GetLength(0); i += 2)
                {
                    nibbleWriter.WriteNibble(Data[i + 1, j]);
                    nibbleWriter.WriteNibble(Data[i, j]);
                }

            byte[] result = memoryStream.ToArray();
            memoryStream.Close();

            return result;
        }