X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=netconn.h;h=63df664494c0f3833439d997001e283f3cbc8cba;hb=1bcc071e269a026b1c20cb5613480e60a423c8ad;hp=bbd1b88ed1cb3de1498bc284d78f0efa5e7490de;hpb=3762a6633d1179e5dd4e9b0ab4dd37cca9920354;p=xonotic%2Fdarkplaces.git diff --git a/netconn.h b/netconn.h index bbd1b88e..63df6644 100755 --- a/netconn.h +++ b/netconn.h @@ -37,6 +37,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define NET_PROTOCOL_VERSION 3 +#define NET_EXTRESPONSE_MAX 16 // This is the network info/connection protocol. It is used to find Quake // servers, get info about them, and connect to them. Once connected, the @@ -168,10 +169,6 @@ typedef struct netconn_s 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; @@ -185,9 +182,23 @@ typedef struct netconn_s } qw; - // this tracks which of the last 100 received packet sequence numbers were lost - int packetlostcounter; - unsigned char packetlost[100]; + // bandwidth estimator + double cleartime; // if realtime > nc->cleartime, free to go + + // this tracks packet loss and packet sizes on the most recent packets + // used by shownetgraph feature +#define NETGRAPH_PACKETS 100 +#define NETGRAPH_NOPACKET 0 +#define NETGRAPH_LOSTPACKET -1 +#define NETGRAPH_CHOKEDPACKET -2 + int incoming_packetcounter; + int incoming_reliablesize[NETGRAPH_PACKETS]; + int incoming_unreliablesize[NETGRAPH_PACKETS]; + int incoming_acksize[NETGRAPH_PACKETS]; + int outgoing_packetcounter; + int outgoing_reliablesize[NETGRAPH_PACKETS]; + int outgoing_unreliablesize[NETGRAPH_PACKETS]; + int outgoing_acksize[NETGRAPH_PACKETS]; char address[128]; } netconn_t; @@ -235,8 +246,12 @@ typedef struct serverlist_info_s char name[128]; // max client number int maxplayers; - // number of currently connected players + // number of currently connected players (including bots) int numplayers; + // number of currently connected players that are bots + int numbots; + // number of currently connected players that are not bots + int numhumans; // protocol version int protocol; // game data version @@ -256,6 +271,8 @@ typedef enum SLIF_MAXPLAYERS, SLIF_NUMPLAYERS, SLIF_PROTOCOL, + SLIF_NUMBOTS, + SLIF_NUMHUMANS, SLIF_COUNT } serverlist_infofield_t; @@ -311,6 +328,10 @@ extern qboolean serverlist_consoleoutput; // //============================================================================ +extern char net_extresponse[NET_EXTRESPONSE_MAX][1400]; +extern int net_extresponse_count; +extern int net_extresponse_last; + extern double masterquerytime; extern int masterquerycount; extern int masterreplycount; @@ -319,6 +340,8 @@ extern int serverreplycount; extern sizebuf_t net_message; +extern cvar_t sv_public; + extern cvar_t cl_netlocalping; extern cvar_t cl_netport; @@ -326,7 +349,10 @@ extern cvar_t sv_netport; extern cvar_t net_address; //extern cvar_t net_netaddress_ipv6; -int NetConn_SendUnreliableMessage(netconn_t *conn, sizebuf_t *data, protocolversion_t protocol); +qboolean NetConn_CanSend(netconn_t *conn); +int NetConn_SendUnreliableMessage(netconn_t *conn, sizebuf_t *data, protocolversion_t protocol, int rate, qboolean quakesignon_suppressreliables); +qboolean NetConn_HaveClientPorts(void); +qboolean NetConn_HaveServerPorts(void); void NetConn_CloseClientPorts(void); void NetConn_OpenClientPorts(void); void NetConn_CloseServerPorts(void); @@ -345,6 +371,7 @@ int NetConn_WriteString(lhnetsocket_t *mysocket, const char *string, const lhnet int NetConn_IsLocalGame(void); void NetConn_ClientFrame(void); void NetConn_ServerFrame(void); +void NetConn_SleepMicroseconds(int microseconds); void NetConn_QueryMasters(qboolean querydp, qboolean queryqw); void NetConn_Heartbeat(int priority); void NetConn_QueryQueueFrame(void);