public override void WriteTo(System.IO.BinaryWriter writer) { base.WriteTo(writer); FormatChecker.CheckExpression(() => Item.FaceName == null || Item.FaceName.Length < FaceNameLength); FormatChecker.CheckExpression(() => Item.ColorTable != null && Item.ColorTable.Length == ColorTableLength); FormatChecker.CheckExpression(() => BlockSize == ExactBlockSize); writer.Write((ushort)Item.FillAttributes); writer.Write((ushort)Item.PopupFillAttributes); writer.Write((short)Item.ScreenBufferSize.Width); writer.Write((short)Item.ScreenBufferSize.Height); writer.Write((short)Item.WindowSize.Width); writer.Write((short)Item.WindowSize.Height); writer.Write((short)Item.WindowOrigin.X); writer.Write((short)Item.WindowOrigin.Y); writer.Write(new byte[UnusedLength]); //writer.Write(Item.FontSize); writer.Write((short)0); writer.Write((short)Item.FontSize); writer.Write((uint)Item.FontFamily); writer.Write(Item.FontWeight); writer.WriteASCIIZF(Item.FaceName, Encoding.Unicode, FaceNameLength, Item.FaceNamePadding); writer.Write(Item.CursorSize); writer.Write(Convert.ToInt32(Item.FullScreen)); writer.Write(Convert.ToInt32(Item.FastEdit)); writer.Write(Convert.ToInt32(Item.InsertMode)); writer.Write(Convert.ToInt32(Item.AutoPosition)); writer.Write(Item.HistoryBufferSize); writer.Write(Item.NumberOfHistoryBuffers); writer.Write(Convert.ToInt32(Item.HistoryDuplicateAllowed)); writer.Write(Item.ColorTable); }
public override void WriteTo(System.IO.BinaryWriter writer) { base.WriteTo(writer); FormatChecker.CheckExpression(() => Item.MachineID == null || Item.MachineID.Length <= MachineIDLength); FormatChecker.CheckExpression(() => BlockSize == ExactBlockSize); FormatChecker.CheckExpression(() => Item.Droid != null && Item.Droid.Length == 2); FormatChecker.CheckExpression(() => Item.DroidBirth != null && Item.DroidBirth.Length == 2); Length = ComputedSize - base.ComputedSize; FormatChecker.CheckExpression(() => Length >= MinimumLength); writer.Write(Length); writer.Write(Item.Version); writer.WriteASCIIZF(Item.MachineID, Encoding.Default, MachineIDLength); foreach (var guid in Item.Droid) { writer.Write(guid.ToByteArray()); } foreach (var guid in Item.DroidBirth) { writer.Write(guid.ToByteArray()); } }