public static void Serialize(IMessageWriter writer, GameOptionsData gameOptionsData) { writer.StartMessage(MessageFlags.HostGame); using (var memory = new MemoryStream()) using (var writerBin = new BinaryWriter(memory)) { gameOptionsData.Serialize(writerBin, GameOptionsData.LatestVersion); writer.WriteBytesAndSize(memory.ToArray()); } writer.EndMessage(); }
/// <summary> /// This is used to generate individual GameOptionsData packets. /// </summary> /// <param name="data">The options to serialize.</param> /// <param name="game">The Game's ID.</param> /// <param name="netId">The NetId of the player (as found in the Character.NetId property).</param> /// <returns>A packet that can be sent to the client directly.</returns> public IMessageWriter GenerateDataPacket(GameOptionsData data, int game, uint netId) { var writer = Provider.Get(MessageType.Reliable); writer.StartMessage(Api.Net.Messages.MessageFlags.GameData); writer.Write(game); writer.StartMessage((byte)GameDataType.RpcFlag); writer.WritePacked(netId); writer.Write((byte)Structures.RpcCalls.SyncSettings); using (var stream = new MemoryStream()) using (BinaryWriter bWriter = new BinaryWriter(stream)) { data.Serialize(bWriter, 4); writer.WriteBytesAndSize(stream.ToArray()); } writer.EndMessage(); writer.EndMessage(); return(writer); }
public static void Serialize(IMessageWriter writer, GameOptionsData gameOptionsData) { writer.StartMessage(MessageFlags.HostGame); gameOptionsData.Serialize(writer); writer.EndMessage(); }
public static void Serialize(IMessageWriter writer, GameOptionsData gameOptionsData) { gameOptionsData.Serialize(writer); }