X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=netconn.h;h=5e6f4ad7906762ed351b94070fbcb1f428d47754;hb=140a0f8e823a43dcc44f2670d48416ab48f9c243;hp=d875e7a81d5e3f40f18d57f314b686d1b63b7384;hpb=3ad7fd58a384148f78dfd1a541e81a69e90dab8f;p=xonotic%2Fdarkplaces.git diff --git a/netconn.h b/netconn.h index d875e7a8..5e6f4ad7 100755 --- a/netconn.h +++ b/netconn.h @@ -142,11 +142,13 @@ typedef struct netconn_s int receiveMessageLength; unsigned char receiveMessage[NET_MAXMESSAGE]; + // used by both NQ and QW protocols + unsigned int outgoing_unreliable_sequence; + struct netconn_nq_s { unsigned int ackSequence; unsigned int sendSequence; - unsigned int unreliableSendSequence; unsigned int receiveSequence; unsigned int unreliableReceiveSequence; @@ -176,7 +178,6 @@ typedef struct netconn_s 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 } @@ -226,7 +227,9 @@ typedef enum serverlist_maskop_e SLMO_EQUAL, SLMO_GREATER, SLMO_GREATEREQUAL, - SLMO_NOTEQUAL + SLMO_NOTEQUAL, + SLMO_STARTSWITH, + SLMO_NOTSTARTSWITH } serverlist_maskop_t; // struct with all fields that you can search for or sort by @@ -244,6 +247,10 @@ typedef struct serverlist_info_s char map[32]; // name of the session char name[128]; + // qc-defined short status string + char qcstatus[128]; + // frags/ping/name list (if they fit in the packet) + char players[1400]; // max client number int maxplayers; // number of currently connected players (including bots) @@ -252,12 +259,16 @@ typedef struct serverlist_info_s int numbots; // number of currently connected players that are not bots int numhumans; + // number of free slots + int freeslots; // protocol version int protocol; // game data version // (an integer that is used for filtering incompatible servers, // not filterable by QC) int gameversion; + // favorite server flag + qboolean isfavorite; } serverlist_info_t; typedef enum @@ -273,15 +284,26 @@ typedef enum SLIF_PROTOCOL, SLIF_NUMBOTS, SLIF_NUMHUMANS, + SLIF_FREESLOTS, + SLIF_QCSTATUS, + SLIF_PLAYERS, + SLIF_ISFAVORITE, SLIF_COUNT } serverlist_infofield_t; +typedef enum +{ + SLSF_DESCENDING = 1, + SLSF_FAVORITESFIRST = 2 +} serverlist_sortflags_t; + typedef enum { SQS_NONE = 0, SQS_QUERYING, SQS_QUERIED, - SQS_TIMEDOUT + SQS_TIMEDOUT, + SQS_REFRESHING } serverlist_query_state; typedef struct serverlist_entry_s @@ -292,7 +314,7 @@ typedef struct serverlist_entry_s unsigned querycounter; // used to calculate ping when update comes in double querytime; - // query protocol to use on this server + // query protocol to use on this server int protocol; // may be PROTOCOL_QUAKEWORLD or PROTOCOL_DARKPLACES7 serverlist_info_t info; @@ -313,7 +335,7 @@ extern serverlist_mask_t serverlist_andmasks[SERVERLIST_ANDMASKCOUNT]; extern serverlist_mask_t serverlist_ormasks[SERVERLIST_ORMASKCOUNT]; extern serverlist_infofield_t serverlist_sortbyfield; -extern qboolean serverlist_sortdescending; +extern int serverlist_sortflags; // not using the enum, as it is a bitmask extern int serverlist_viewcount; extern serverlist_entry_t *serverlist_viewlist[SERVERLIST_VIEWLISTSIZE]; @@ -322,6 +344,8 @@ extern int serverlist_cachecount; extern qboolean serverlist_consoleoutput; +void ServerList_GetPlayerStatistics(int *numplayerspointer, int *maxplayerspointer); + //============================================================================ // // public network functions @@ -351,6 +375,8 @@ extern cvar_t net_address; 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); @@ -376,12 +402,13 @@ void NetConn_QueryQueueFrame(void); void Net_Stats_f(void); void Net_Slist_f(void); void Net_SlistQW_f(void); +void Net_Refresh_f(void); // ServerList interface (public) // manually refresh the view set, do this after having changed the mask or any other flag void ServerList_RebuildViewList(void); void ServerList_ResetMasks(void); -void ServerList_QueryList(qboolean querydp, qboolean queryqw); +void ServerList_QueryList(qboolean resetcache, qboolean querydp, qboolean queryqw, qboolean consoleoutput); #endif