This writes the 32-bit value to the stream using variable-length-encoding.
public void WritePackedUInt32(uint value) { if (value <= 240) { this.Write((byte) value); } else if (value <= 0x8ef) { this.Write((byte) (((value - 240) / 0x100) + 0xf1)); this.Write((byte) ((value - 240) % 0x100)); } else if (value <= 0x108ef) { this.Write((byte) 0xf9); this.Write((byte) ((value - 0x8f0) / 0x100)); this.Write((byte) ((value - 0x8f0) % 0x100)); } else if (value <= 0xffffff) { this.Write((byte) 250); this.Write((byte) (value & 0xff)); this.Write((byte) ((value >> 8) & 0xff)); this.Write((byte) ((value >> 0x10) & 0xff)); } else { this.Write((byte) 0xfb); this.Write((byte) (value & 0xff)); this.Write((byte) ((value >> 8) & 0xff)); this.Write((byte) ((value >> 0x10) & 0xff)); this.Write((byte) ((value >> 0x18) & 0xff)); } }
public override void Serialize(NetworkWriter writer) { writer.WritePackedUInt32((uint) this.oldConnectionId); writer.WritePackedUInt32((uint) this.playerControllerId); writer.Write(this.netId); writer.WriteBytesAndSize(this.msgData, this.msgSize); }