public void Serialize( StreamWriter streamWriter, SerializationContext serializationContext, object value, PropertyMetaData propertyMetaData = null) { if (value == null) { return; } var mes = (VendingMachineFullUpdateMessage)value; streamWriter.WriteInt32((int)mes.N3MessageType); streamWriter.WriteIdentity(mes.Identity); streamWriter.WriteByte(mes.Unknown); streamWriter.WriteInt32(mes.TypeIdentifier); streamWriter.WriteIdentity(mes.NpcIdentity); if (mes.NpcIdentity.Instance == 0) { streamWriter.WriteSingle(mes.Coordinates.X); streamWriter.WriteSingle(mes.Coordinates.Y); streamWriter.WriteSingle(mes.Coordinates.Z); streamWriter.WriteSingle(mes.Heading.X); streamWriter.WriteSingle(mes.Heading.Y); streamWriter.WriteSingle(mes.Heading.Z); streamWriter.WriteSingle(mes.Heading.W); } streamWriter.WriteInt32(mes.PlayfieldId); streamWriter.WriteInt32(mes.Unknown4); streamWriter.WriteInt32(mes.Unknown5); streamWriter.WriteInt16(mes.Unknown6); if (mes.Stats == null) { streamWriter.WriteInt32(0x3f1); } else { int len = mes.Stats.Length; len = (len + 1) * 0x3f1; streamWriter.WriteInt32(len); foreach (GameTuple<CharacterStat, uint> v in mes.Stats) { streamWriter.WriteInt32((int)v.Value1); streamWriter.WriteUInt32(v.Value2); } } if (mes.Unknown7 == null) { streamWriter.WriteInt32(0); } else { streamWriter.WriteInt32(mes.Unknown7.Length); streamWriter.WriteString(mes.Unknown7); } streamWriter.WriteInt32(mes.Unknown8); streamWriter.WriteInt32(mes.Unknown9); streamWriter.WriteInt32((mes.Unknown10.Length + 1) * 0x3f1); foreach (Identity id in mes.Unknown10) { streamWriter.WriteIdentity(id); } streamWriter.WriteInt32(mes.Unknown11); }
public void Serialize( StreamWriter streamWriter, SerializationContext serializationContext, object value, PropertyMetaData propertyMetaData = null) { if (value == null) { return; } var mes = (VendingMachineFullUpdateMessage)value; streamWriter.WriteInt32((int)mes.N3MessageType); streamWriter.WriteIdentity(mes.Identity); streamWriter.WriteByte(mes.Unknown); streamWriter.WriteInt32(mes.TypeIdentifier); streamWriter.WriteIdentity(mes.NpcIdentity); if (mes.NpcIdentity.Instance == 0) { streamWriter.WriteSingle(mes.Coordinates.X); streamWriter.WriteSingle(mes.Coordinates.Y); streamWriter.WriteSingle(mes.Coordinates.Z); streamWriter.WriteSingle(mes.Heading.X); streamWriter.WriteSingle(mes.Heading.Y); streamWriter.WriteSingle(mes.Heading.Z); streamWriter.WriteSingle(mes.Heading.W); } streamWriter.WriteInt32(mes.PlayfieldId); streamWriter.WriteInt32(mes.Unknown4); streamWriter.WriteInt32(mes.Unknown5); streamWriter.WriteInt16(mes.Unknown6); if (mes.Stats == null) { streamWriter.WriteInt32(0x3f1); } else { int len = mes.Stats.Length; len = (len + 1) * 0x3f1; streamWriter.WriteInt32(len); foreach (GameTuple <CharacterStat, uint> v in mes.Stats) { streamWriter.WriteInt32((int)v.Value1); streamWriter.WriteUInt32(v.Value2); } } if (mes.Unknown7 == null) { streamWriter.WriteInt32(0); } else { streamWriter.WriteInt32(mes.Unknown7.Length); streamWriter.WriteString(mes.Unknown7); } streamWriter.WriteInt32(mes.Unknown8); streamWriter.WriteInt32(mes.Unknown9); streamWriter.WriteInt32((mes.Unknown10.Length + 1) * 0x3f1); foreach (Identity id in mes.Unknown10) { streamWriter.WriteIdentity(id); } streamWriter.WriteInt32(mes.Unknown11); }