public Message(GameFormatReader.Common.EndianBinaryReader stream)
        {
            charOffset = stream.ReadInt32();
            msgID = (ushort)stream.ReadInt16();
            unknwn1 = (ushort)stream.ReadInt16();
            unknwn2 = (ushort)stream.ReadInt16();
            msgType = (ushort)stream.ReadInt16();
            boxType = stream.ReadByte();
            drawType = stream.ReadByte();
            boxPos = stream.ReadByte();
            itemID = stream.ReadByte();
            unknwn3 = stream.ReadByte();
            unknwn4 = stream.ReadByte();
            unknwn5 = stream.ReadByte();
            unknwn6 = stream.ReadByte();
            unknwn7 = stream.ReadByte();
            maxLines = (ushort)stream.ReadInt16();
            pad = stream.ReadByte();

            charData = new List<byte>();
        }
        public void WriteCharData(GameFormatReader.Common.EndianBinaryWriter stream)
        {
            stream.Write(charData.ToArray());

            if (charData[charData.Count - 1] != (char)0)
            {
                stream.Write((byte)0);
            }
        }
        public void WriteEntryData(GameFormatReader.Common.EndianBinaryWriter stream)
        {
            //Write entry data to stream
            stream.Write((int)charOffset);

            stream.Write((short)msgID);

            stream.Write((short)unknwn1);

            stream.Write((short)unknwn2);

            stream.Write((short)msgType);

            stream.Write((byte)boxType);

            stream.Write((byte)drawType);

            stream.Write((byte)boxPos);

            stream.Write((byte)itemID);

            stream.Write((byte)unknwn3);

            stream.Write((byte)unknwn4);

            stream.Write((byte)unknwn5);

            stream.Write((byte)unknwn6);

            stream.Write((byte)unknwn7);

            stream.Write((short)maxLines);

            stream.Write((byte)pad);
        }
        public void GetCharData(GameFormatReader.Common.EndianBinaryReader stream, uint charDataSize)
        {
            charData = new List<byte>(stream.ReadBytes((int)charDataSize));

            originalCharLength = (uint)charData.Count;

            ControlCodesToTags();
        }