| 24 | } |
| 25 | |
| 26 | void CPacketChunkUnpacker::FeedPacket(const NETADDR &Addr, const CNetPacketConstruct &Packet, CNetConnection *pConnection, int ClientId) |
| 27 | { |
| 28 | dbg_assert(!m_Valid, "Chunk unpacker is already unpacking"); |
| 29 | m_Valid = true; |
| 30 | m_Addr = Addr; |
| 31 | m_pConnection = pConnection; |
| 32 | m_ClientId = ClientId; |
| 33 | m_CurrentChunk = 0; |
| 34 | m_Data = Packet; |
| 35 | dbg_assert((m_Data.m_Flags & (NET_PACKETFLAG_CONNLESS | NET_PACKETFLAG_CONTROL)) == 0 && m_Data.m_DataSize > 0 && m_Data.m_NumChunks > 0, |
| 36 | "Invalid packet for chunk unpacker: flags=%d size=%d chunks=%d", m_Data.m_Flags, m_Data.m_DataSize, m_Data.m_NumChunks); |
| 37 | } |
| 38 | |
| 39 | bool CPacketChunkUnpacker::UnpackNextChunk(CNetChunk *pChunk) |
| 40 | { |