]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - netconn.h
r_showtris/r_shownormals/r_showcollisionbrushes are no longer obscured
[xonotic/darkplaces.git] / netconn.h
index bbd1b88ed1cb3de1498bc284d78f0efa5e7490de..63df664494c0f3833439d997001e283f3cbc8cba 100755 (executable)
--- 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);