public PacketHeader(string prefix) { base.Setup(); packetPrefix = prefix; packetReceiveIndex = 0; packetType = Packet.PacketType.User; int byteCountMaxPlayer = UDPConnectionManager.GetMaxPlayerCount(); byteCountMaxPlayer = (int)CountBits(byteCountMaxPlayer); // bit count for player index senderPlayerId = UDPConnectionManager.singleton.GetPlayerId(); int bitLen = byteCountMaxPlayer + 5 + Packet.GetPrefixBitLen(); headerInBits = new bool[bitLen]; int headerIndex = 0; bool[] bytes = ByteArray2BitArray(IntToBytes((int)senderPlayerId)); AppendBitsFromBoolArrayToBoolComplete(ref headerIndex, byteCountMaxPlayer, bytes, ref headerInBits); bytes = ByteArray2BitArray(IntToBytes((int)Packet.GetPrefixBitLen())); AppendBitsFromBoolArrayToBoolComplete(ref headerIndex, 5, bytes, ref headerInBits); int prefixIndex = UDPConnectionManager.PrefixIndex(prefix); bytes = ByteArray2BitArray(IntToBytes(prefixIndex)); AppendBitsFromBoolArrayToBoolComplete(ref headerIndex, Packet.GetPrefixBitLen(), bytes, ref headerInBits); }
public void ResetPacketHeader(int prefixBitLen) { packetType = Packet.PacketType.User; int byteCountMaxPlayer = UDPConnectionManager.GetMaxPlayerCount(); byteCountMaxPlayer = (int)CountBits(byteCountMaxPlayer); // bit count for player index int bitLen = byteCountMaxPlayer + 5 + prefixBitLen; headerInBits = new bool[bitLen]; int headerIndex = 0; senderPlayerId = UDPConnectionManager.singleton.GetPlayerId(); bool[] bytes = ByteArray2BitArray(IntToBytes((int)senderPlayerId)); AppendBitsFromBoolArrayToBoolComplete(ref headerIndex, byteCountMaxPlayer, bytes, ref headerInBits); bytes = ByteArray2BitArray(IntToBytes(prefixBitLen)); AppendBitsFromBoolArrayToBoolComplete(ref headerIndex, 5, bytes, ref headerInBits); int prefixIndex = UDPConnectionManager.PrefixIndex(packetPrefix); bytes = ByteArray2BitArray(IntToBytes(prefixIndex)); AppendBitsFromBoolArrayToBoolComplete(ref headerIndex, prefixBitLen, bytes, ref headerInBits); }