public void Marshal(Span <byte> span, int protocolVersion) { var writer = new SpanWriter(span); writer.WriteFixedString(_name, 30); writer.WriteFixedString(_user, 24); writer.WriteByte((byte)_status); // 3 unknown bytes }
public void Marshal(Span <byte> span, int protocolVersion) { var writer = new SpanWriter(span); // DoL writes byte 0x00 and then region ID as a byte // but region is represented elsewhere as a ushort writer.WriteUInt16BigEndian(_region.Id); writer.Skip(20); writer.WriteFixedString(_region.Port.ToString(), 5); writer.WriteFixedString(_region.Port.ToString(), 5); // yeah, twice writer.WriteFixedString(_region.Address.ToString(), 20); }