private void LogSend(byte[] bytes) { P2PNetworkReader p2PNetworkReader = new P2PNetworkReader(bytes); ushort num = p2PNetworkReader.ReadUInt16(); ushort num2 = p2PNetworkReader.ReadUInt16(); StringBuilder stringBuilder = new StringBuilder(); for (int i = 4; i < (int)(4 + num); i++) { stringBuilder.AppendFormat("{0:X2}", bytes[i]); if (i > 150) { break; } } Debug.Log(string.Concat(new object[] { "ConnectionSend con:", this.m_ConnectionId, " bytes:", num, " msgId:", num2, " ", stringBuilder })); }
protected void HandleReader(P2PNetworkReader reader, int received_size, int channel_id) { while ((ulong)reader.Position < (ulong)((long)received_size)) { ushort num = reader.ReadUInt16(); short num2 = reader.ReadInt16(); uint position = reader.Position; reader.SetGuard(position + (uint)num); P2PConnection.s_Size = position + (uint)num; if (this.m_LogNetworkMessages) { Debug.Log(string.Concat(new object[] { "ConnectionRecv con:", this.m_ConnectionId, " bytes:", num, " msgId:", num2 })); } List <P2PNetworkMessageDelegate> list = null; if (this.m_MessageHandlersDict.ContainsKey(num2)) { list = this.m_MessageHandlersDict[num2]; } if (list != null) { this.m_NetMsg.m_MsgType = num2; this.m_NetMsg.m_Reader = reader; this.m_NetMsg.m_Connection = this; this.m_NetMsg.m_ChannelId = channel_id; for (int i = 0; i < list.Count; i++) { list[i](this.m_NetMsg); } this.m_LastMessageTime = Time.time; } else if (P2PLogFilter.logError) { Debug.LogError(string.Format("Unknown message type {0} connection id: {1}", P2PMsgType.MsgTypeToString(num2), this.m_ConnectionId)); } if (position + (uint)num != reader.Position) { int num3 = (int)(position + (uint)num - reader.Position); if (num3 > 0 && P2PLogFilter.logInfo) { Debug.Log(string.Format("Message {0} conn_id: {1} was not fully read, performing seek by {2} bytes", P2PMsgType.MsgTypeToString(num2), this.m_ConnectionId, num3)); } if (num3 < 0 && P2PLogFilter.logError) { Debug.LogError(string.Format("Message {0} conn_id: {1} reading over the buffer limit (this is really bad), performing seek by {2} bytes", P2PMsgType.MsgTypeToString(num2), this.m_ConnectionId, num3)); } reader.Seek(num3); } reader.RemoveGuard(); } }
public override void Deserialize(P2PNetworkReader reader) { int num = (int)reader.ReadUInt16(); this.scripts = new P2PCRCMessageEntry[num]; for (int i = 0; i < this.scripts.Length; i++) { P2PCRCMessageEntry p2PCRCMessageEntry = default(P2PCRCMessageEntry); p2PCRCMessageEntry.name = reader.ReadString(); p2PCRCMessageEntry.channel = reader.ReadByte(); this.scripts[i] = p2PCRCMessageEntry; } }
public override void OnReplicationDeserialize(P2PNetworkReader reader, bool initial_state) { if (initial_state) { foreach (GameObject obj in this.m_ReplacedMap.Values) { UnityEngine.Object.Destroy(obj); } this.m_ReplacedMap.Clear(); this.m_ObjectsRemovedFromStatic.Clear(); this.EnableObjectsInQuadTree(); List <Vector3> allPoints = this.m_DestroyedObjects.GetAllPoints(); for (int i = 0; i < allPoints.Count; i++) { StaticObjectClass objectsInPos = this.m_QuadTree.GetObjectsInPos(allPoints[i]); if (objectsInPos != null && objectsInPos.m_GameObject != null) { objectsInPos.m_GameObject.SetActive(true); if (objectsInPos.m_GameObject.transform.parent != null) { objectsInPos.m_GameObject.transform.parent.gameObject.SetActive(true); } objectsInPos.m_State = 0; } } this.m_DestroyedObjects.Clear(); ushort num = reader.ReadUInt16(); for (int j = 0; j < (int)num; j++) { Vector3 vector = reader.ReadVector3(); StaticObjectClass objectsInPos2 = this.m_QuadTree.GetObjectsInPos(vector); if (objectsInPos2 != null && objectsInPos2.m_GameObject != null) { objectsInPos2.m_GameObject.SetActive(false); if (objectsInPos2.m_GameObject.transform.parent != null) { objectsInPos2.m_GameObject.transform.parent.gameObject.SetActive(false); } } this.m_DestroyedObjects.InsertPoint(vector, false); } ObjectWithTrunk.OnLoad(); this.OnLoaded(); } }
public override void Deserialize(P2PNetworkReader reader) { this.errorCode = (int)reader.ReadUInt16(); }