Make changing com_gamename use dpmaster protocol instead of efmaster

This commit is contained in:
Zack Middleton 2017-09-18 00:13:24 -05:00
parent d7b202d4eb
commit f4edc947b5
3 changed files with 29 additions and 18 deletions

View File

@ -4401,13 +4401,8 @@ void CL_GlobalServers_f( void ) {
Com_sprintf(command, sizeof(command), "getservers %s", Com_sprintf(command, sizeof(command), "getservers %s",
Cmd_Argv(2)); Cmd_Argv(2));
else else
#ifdef ELITEFORCE
Com_sprintf(command, sizeof(command), "getservers %s",
Cmd_Argv(2));
#else
Com_sprintf(command, sizeof(command), "getservers %s %s", Com_sprintf(command, sizeof(command), "getservers %s %s",
com_gamename->string, Cmd_Argv(2)); com_gamename->string, Cmd_Argv(2));
#endif
for (i=3; i < count; i++) for (i=3; i < count; i++)
{ {

View File

@ -75,16 +75,17 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#endif #endif
// Heartbeat for dpmaster protocol. You shouldn't change this unless you know what you're doing // Heartbeat for dpmaster protocol. You shouldn't change this unless you know what you're doing
#ifdef ELITEFORCE #define HEARTBEAT_FOR_MASTER "DarkPlaces"
#define HEARTBEAT_FOR_MASTER "STEF1"
#else
#define HEARTBEAT_FOR_MASTER "DarkPlaces"
#endif
// When com_gamename is LEGACY_MASTER_GAMENAME, use quake3 master protocol. // When com_gamename is LEGACY_MASTER_GAMENAME, use quake3 master protocol.
// You shouldn't change this unless you know what you're doing // You shouldn't change this unless you know what you're doing
#ifdef ELITEFORCE
#define LEGACY_MASTER_GAMENAME "EliteForce"
#define LEGACY_HEARTBEAT_FOR_MASTER "STEF1"
#else
#define LEGACY_MASTER_GAMENAME "Quake3Arena" #define LEGACY_MASTER_GAMENAME "Quake3Arena"
#define LEGACY_HEARTBEAT_FOR_MASTER "QuakeArena-1" #define LEGACY_HEARTBEAT_FOR_MASTER "QuakeArena-1"
#endif
#define BASETA "missionpack" #define BASETA "missionpack"

View File

@ -243,6 +243,9 @@ void SV_MasterHeartbeat(const char *message)
int i; int i;
int res; int res;
int netenabled; int netenabled;
#ifdef ELITEFORCE
qboolean dpmasterProtocol;
#endif
netenabled = Cvar_VariableIntegerValue("net_enabled"); netenabled = Cvar_VariableIntegerValue("net_enabled");
@ -254,8 +257,17 @@ void SV_MasterHeartbeat(const char *message)
if ( svs.time < svs.nextHeartbeatTime ) if ( svs.time < svs.nextHeartbeatTime )
return; return;
#ifdef ELITEFORCE
if ( !Q_stricmp( com_gamename->string, LEGACY_MASTER_GAMENAME ) ) {
message = LEGACY_HEARTBEAT_FOR_MASTER;
dpmasterProtocol = qfalse;
} else {
dpmasterProtocol = qtrue;
}
#else
if ( !Q_stricmp( com_gamename->string, LEGACY_MASTER_GAMENAME ) ) if ( !Q_stricmp( com_gamename->string, LEGACY_MASTER_GAMENAME ) )
message = LEGACY_HEARTBEAT_FOR_MASTER; message = LEGACY_HEARTBEAT_FOR_MASTER;
#endif
svs.nextHeartbeatTime = svs.time + HEARTBEAT_MSEC; svs.nextHeartbeatTime = svs.time + HEARTBEAT_MSEC;
@ -319,18 +331,21 @@ void SV_MasterHeartbeat(const char *message)
// ever incompatably changes // ever incompatably changes
#ifdef ELITEFORCE #ifdef ELITEFORCE
if(adr[i][0].type != NA_BAD) if ( !dpmasterProtocol ) {
NET_OutOfBandPrint(NS_SERVER, adr[i][0], "\\heartbeat\\%d\\gamename\\%s\\", if(adr[i][0].type != NA_BAD)
Cvar_VariableIntegerValue("net_port"), message); NET_OutOfBandPrint(NS_SERVER, adr[i][0], "\\heartbeat\\%d\\gamename\\%s\\",
if(adr[i][1].type != NA_BAD) Cvar_VariableIntegerValue("net_port"), message);
NET_OutOfBandPrint(NS_SERVER, adr[i][1], "\\heartbeat\\%d\\gamename\\%s\\", if(adr[i][1].type != NA_BAD)
Cvar_VariableIntegerValue("net_port6"), message); NET_OutOfBandPrint(NS_SERVER, adr[i][1], "\\heartbeat\\%d\\gamename\\%s\\",
#else Cvar_VariableIntegerValue("net_port6"), message);
continue;
}
#endif
if(adr[i][0].type != NA_BAD) if(adr[i][0].type != NA_BAD)
NET_OutOfBandPrint( NS_SERVER, adr[i][0], "heartbeat %s\n", message); NET_OutOfBandPrint( NS_SERVER, adr[i][0], "heartbeat %s\n", message);
if(adr[i][1].type != NA_BAD) if(adr[i][1].type != NA_BAD)
NET_OutOfBandPrint( NS_SERVER, adr[i][1], "heartbeat %s\n", message); NET_OutOfBandPrint( NS_SERVER, adr[i][1], "heartbeat %s\n", message);
#endif
} }
} }