public void Write(BitStream stream) { // TODO: this is suboptimal if (stream == null || m_writeData == null) { if (stream == null) { Debug.Fail("BitReaderWriter - Write - stream is null"); } if (m_writeData == null) { Debug.Fail("BitReaderWriter - Write - m_writeData is null"); } return; } // Store old bit position int pos = stream.BitPosition; // Write data m_writeData.Serialize(stream, false); // Measure data len int len = stream.BitPosition - pos; // Restore old position stream.SetBitPositionWrite(pos); // Write data len stream.WriteVariant((uint)len); // Write data again m_writeData.Serialize(stream, false); }
public void Write(BitStream stream) { // TODO: this is suboptimal if (stream == null || m_writeData == null) { if (stream == null) Debug.Fail("BitReaderWriter - Write - stream is null"); if ( m_writeData == null) Debug.Fail("BitReaderWriter - Write - m_writeData is null"); return; } // Store old bit position int pos = stream.BitPosition; // Write data m_writeData.Serialize(stream, false); // Measure data len int len = stream.BitPosition - pos; // Restore old position stream.SetBitPositionWrite(pos); // Write data len stream.WriteVariant((uint)len); // Write data again m_writeData.Serialize(stream, false); }
public void Write(BitStream stream) { // TODO: this is suboptimal // Store old bit position int pos = stream.BitPosition; // Write data m_writeData.Serialize(stream, false); // Measure data len int len = stream.BitPosition - pos; // Restore old position stream.SetBitPositionWrite(pos); // Write data len stream.WriteVariant((uint)len); // Write data again m_writeData.Serialize(stream, false); }
public static void WriteTypeId(this VRage.Library.Collections.BitStream stream, TypeId typeId) { stream.WriteVariant((uint)typeId.Value); }
public static void WriteNetworkId(this VRage.Library.Collections.BitStream stream, NetworkId networkId) { stream.WriteVariant((uint)networkId.Value); }
/// <summary> /// Serializes id to hash list. /// Server sends the hashlist to client, client reorders type table to same order as server. /// </summary> public void Serialize(BitStream stream) { if (stream.Writing) { stream.WriteVariant((uint)m_idToType.Count); for (int i = 0; i < m_idToType.Count; i++) { stream.WriteInt32(m_idToType[i].TypeHash); } } else { int count = (int)stream.ReadUInt32Variant(); Debug.Assert(m_idToType.Count == count, "Number of received types does not match number of registered types"); m_staticEventTable = new MyEventTable(null); for (int i = 0; i < count; i++) { int typeHash = stream.ReadInt32(); Debug.Assert(m_hashLookup.ContainsKey(typeHash), "Type hash not found!"); var type = m_hashLookup[typeHash]; m_idToType[i] = type; m_staticEventTable.AddStaticEvents(type.Type); } } }