typedef enum protocolversion_e
{
PROTOCOL_UNKNOWN,
- PROTOCOL_QUAKE, // quake (aka netquake/normalquake/nq) protocol
+ PROTOCOL_DARKPLACES7, // added QuakeWorld-style movement protocol to allow more consistent prediction
+ PROTOCOL_DARKPLACES6, // various changes
+ PROTOCOL_DARKPLACES5, // uses EntityFrame5 entity snapshot encoder/decoder which is based on a Tribes networking article at http://www.garagegames.com/articles/networking1/
+ PROTOCOL_DARKPLACES4, // various changes
+ PROTOCOL_DARKPLACES3, // uses EntityFrame4 entity snapshot encoder/decoder which is broken, this attempted to do partial snapshot updates on a QuakeWorld-like protocol, but it is broken and impossible to fix
+ PROTOCOL_DARKPLACES2, // various changes
+ PROTOCOL_DARKPLACES1, // uses EntityFrame entity snapshot encoder/decoder which is a QuakeWorld-like entity snapshot delta compression method
PROTOCOL_QUAKEDP, // darkplaces extended quake protocol (used by TomazQuake and others), backwards compatible as long as no extended features are used
PROTOCOL_NEHAHRAMOVIE, // Nehahra movie protocol, a big nasty hack dating back to early days of the Quake Standards Group (but only ever used by neh_gl.exe), this is potentially backwards compatible with quake protocol as long as no extended features are used (but in actuality the neh_gl.exe which wrote this protocol ALWAYS wrote the extended information)
- PROTOCOL_DARKPLACES1, // uses EntityFrame_ entity snapshot encoder/decoder which is a QuakeWorld-like entity snapshot delta compression method
- PROTOCOL_DARKPLACES2, // various changes
- PROTOCOL_DARKPLACES3, // uses EntityFrame4 entity snapshot encoder/decoder which is broken, this attempted to do partial snapshot updates on a QuakeWorld-like protocol, but it is broken and impossible to fix
- PROTOCOL_DARKPLACES4, // various changes
- PROTOCOL_DARKPLACES5, // uses EntityFrame5 entity snapshot encoder/decoder which is based on a Tribes networking article at http://www.garagegames.com/articles/networking1/
- PROTOCOL_DARKPLACES6, // various changes
- PROTOCOL_DARKPLACES7, // added QuakeWorld-style movement protocol to allow more consistent prediction
+ PROTOCOL_QUAKE, // quake (aka netquake/normalquake/nq) protocol
}
protocolversion_t;
if (length > 10 && !memcmp(string, "challenge ", 10) && cls.connect_trying)
{
+ char protocolnames[1400];
+ Protocol_Names(protocolnames, sizeof(protocolnames));
LHNETADDRESS_ToString(peeraddress, addressstring2, sizeof(addressstring2), true);
Con_Printf("\"%s\" received, sending connect request back to %s\n", string, addressstring2);
M_Update_Return_Reason("Got challenge response");
- NetConn_WriteString(mysocket, va("\377\377\377\377connect\\protocol\\darkplaces 3\\challenge\\%s", string + 10), peeraddress);
+ NetConn_WriteString(mysocket, va("\377\377\377\377connect\\protocol\\darkplaces 3\\protocols\\%s\\challenge\\%s", protocolnames, string + 10), peeraddress);
return true;
}
if (length == 6 && !memcmp(string, "accept", 6) && cls.connect_trying)
if( !strcmp( cname, serverlist_cache[n].info.cname ) )
break;
if( n == serverlist_cachecount ) {
- // LAN search doesnt require an answer from the master server so we wont
+ // LAN search doesnt require an answer from the master server so we wont
// know the ping nor will it be initialized already...
// find a slot
if( serverlist_cachecount == SERVERLIST_TOTALSIZE )
- return true;
+ return true;
serverquerycount++;
memset(&serverlist_cache[serverlist_cachecount], 0, sizeof(serverlist_cache[serverlist_cachecount]));
}
++serverlist_cachecount;
-
+
}
info = &serverlist_cache[n].info;
if ((s = SearchInfostring(string, "gamename" )) != NULL) strlcpy(info->game, s, sizeof (info->game));else info->game[0] = 0;