+ unsigned char receiveMessage[NET_MAXMESSAGE];
+
+ struct netconn_nq_s
+ {
+ unsigned int ackSequence;
+ unsigned int sendSequence;
+ unsigned int unreliableSendSequence;
+
+ unsigned int receiveSequence;
+ unsigned int unreliableReceiveSequence;
+ }
+ nq;
+ struct netconn_qw_s
+ {
+ // QW protocol
+ qboolean fatal_error;
+
+ float last_received; // for timeouts
+
+ // the statistics are cleared at each client begin, because
+ // the server connecting process gives a bogus picture of the data
+ float frame_latency; // rolling average
+ float frame_rate;
+
+ int drop_count; // dropped packets, cleared each level
+ int good_count; // cleared each level
+
+ int qport;
+
+ // bandwidth estimator
+ double cleartime; // if realtime > nc->cleartime, free to go
+ double rate; // seconds / byte
+
+ // sequencing variables
+ int incoming_sequence;
+ int incoming_acknowledged;
+ int incoming_reliable_acknowledged; // single bit
+
+ int incoming_reliable_sequence; // single bit, maintained local
+
+ int outgoing_sequence;
+ int reliable_sequence; // single bit
+ int last_reliable_sequence; // sequence number of last send
+ }
+ qw;
+
+ // this tracks which of the last 100 received packet sequence numbers were lost
+ int packetlostcounter;
+ unsigned char packetlost[100];