static NetPacket() { HeaderSizes = NetUtils.AllocatePinnedUninitializedArray <int>(PropertiesCount); for (int i = 0; i < HeaderSizes.Length; i++) { switch ((PacketProperty)i) { case PacketProperty.Channeled: case PacketProperty.Ack: HeaderSizes[i] = NetConstants.ChanneledHeaderSize; break; case PacketProperty.Ping: HeaderSizes[i] = NetConstants.HeaderSize + 2; break; case PacketProperty.ConnectRequest: HeaderSizes[i] = NetConnectRequestPacket.HeaderSize; break; case PacketProperty.ConnectAccept: HeaderSizes[i] = NetConnectAcceptPacket.Size; break; case PacketProperty.Disconnect: HeaderSizes[i] = NetConstants.HeaderSize + 8; break; case PacketProperty.Pong: HeaderSizes[i] = NetConstants.HeaderSize + 10; break; default: HeaderSizes[i] = NetConstants.HeaderSize; break; } } }