Esempio n. 1
0
 /// <summary>
 /// Serialize the snapshot without compression.
 /// </summary>
 /// <param name="writer"></param>
 public override void Serialize(NetworkWriter writer)
 {
     writer.Write(NetworkMatch.m_match_elapsed_seconds);
     writer.Write((byte)m_num_snapshots);
     for (int i = 0; i < m_num_snapshots; i++)
     {
         writer.Write(m_snapshots[i].m_net_id);
         writer.Write(m_snapshots[i].m_pos.x);
         writer.Write(m_snapshots[i].m_pos.y);
         writer.Write(m_snapshots[i].m_pos.z);
         writer.Write(NetworkCompress.CompressQuaternion(m_snapshots[i].m_rot));
         writer.Write(HalfHelper.Compress(m_snapshots[i].m_vel.x));
         writer.Write(HalfHelper.Compress(m_snapshots[i].m_vel.y));
         writer.Write(HalfHelper.Compress(m_snapshots[i].m_vel.z));
         writer.Write(HalfHelper.Compress(m_snapshots[i].m_vrot.x));
         writer.Write(HalfHelper.Compress(m_snapshots[i].m_vrot.y));
         writer.Write(HalfHelper.Compress(m_snapshots[i].m_vrot.z));
     }
 }
Esempio n. 2
0
 /// <summary>
 /// Deserialize the snapshot without compression.
 /// </summary>
 /// <param name="reader"></param>
 public override void Deserialize(NetworkReader reader)
 {
     m_server_timestamp = reader.ReadSingle();
     m_num_snapshots    = (int)reader.ReadByte();
     for (int i = 0; i < m_num_snapshots; i++)
     {
         NetworkInstanceId net_id = reader.ReadNetworkId();
         Vector3           pos    = default(Vector3);
         pos.x = reader.ReadSingle();
         pos.y = reader.ReadSingle();
         pos.z = reader.ReadSingle();
         Quaternion rot = NetworkCompress.DecompressQuaternion(reader.ReadUInt32());
         Vector3    vel = default(Vector3);
         vel.x = HalfHelper.Decompress(reader.ReadUInt16());
         vel.y = HalfHelper.Decompress(reader.ReadUInt16());
         vel.z = HalfHelper.Decompress(reader.ReadUInt16());
         Vector3 vrot = default(Vector3);
         vrot.x         = HalfHelper.Decompress(reader.ReadUInt16());
         vrot.y         = HalfHelper.Decompress(reader.ReadUInt16());
         vrot.z         = HalfHelper.Decompress(reader.ReadUInt16());
         m_snapshots[i] = new NewPlayerSnapshot(net_id, pos, rot,
                                                vel, vrot);
     }
 }