From f4edc947b5dbfc4766112fc6c92746eddb316eaa Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Mon, 18 Sep 2017 00:13:24 -0500 Subject: [PATCH] Make changing com_gamename use dpmaster protocol instead of efmaster --- code/client/cl_main.c | 5 ----- code/qcommon/q_shared.h | 11 ++++++----- code/server/sv_main.c | 31 +++++++++++++++++++++++-------- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/code/client/cl_main.c b/code/client/cl_main.c index fbe4b87f..4510f04f 100644 --- a/code/client/cl_main.c +++ b/code/client/cl_main.c @@ -4401,13 +4401,8 @@ void CL_GlobalServers_f( void ) { Com_sprintf(command, sizeof(command), "getservers %s", Cmd_Argv(2)); else -#ifdef ELITEFORCE - Com_sprintf(command, sizeof(command), "getservers %s", - Cmd_Argv(2)); -#else Com_sprintf(command, sizeof(command), "getservers %s %s", com_gamename->string, Cmd_Argv(2)); -#endif for (i=3; i < count; i++) { diff --git a/code/qcommon/q_shared.h b/code/qcommon/q_shared.h index 8eb56f49..643c42f8 100644 --- a/code/qcommon/q_shared.h +++ b/code/qcommon/q_shared.h @@ -75,16 +75,17 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #endif // Heartbeat for dpmaster protocol. You shouldn't change this unless you know what you're doing -#ifdef ELITEFORCE - #define HEARTBEAT_FOR_MASTER "STEF1" -#else - #define HEARTBEAT_FOR_MASTER "DarkPlaces" -#endif +#define HEARTBEAT_FOR_MASTER "DarkPlaces" // When com_gamename is LEGACY_MASTER_GAMENAME, use quake3 master protocol. // 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_HEARTBEAT_FOR_MASTER "QuakeArena-1" +#endif #define BASETA "missionpack" diff --git a/code/server/sv_main.c b/code/server/sv_main.c index 0d2fa57b..683f214f 100644 --- a/code/server/sv_main.c +++ b/code/server/sv_main.c @@ -243,6 +243,9 @@ void SV_MasterHeartbeat(const char *message) int i; int res; int netenabled; +#ifdef ELITEFORCE + qboolean dpmasterProtocol; +#endif netenabled = Cvar_VariableIntegerValue("net_enabled"); @@ -254,8 +257,17 @@ void SV_MasterHeartbeat(const char *message) if ( svs.time < svs.nextHeartbeatTime ) 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 ) ) message = LEGACY_HEARTBEAT_FOR_MASTER; +#endif svs.nextHeartbeatTime = svs.time + HEARTBEAT_MSEC; @@ -319,18 +331,21 @@ void SV_MasterHeartbeat(const char *message) // ever incompatably changes #ifdef ELITEFORCE - if(adr[i][0].type != NA_BAD) - NET_OutOfBandPrint(NS_SERVER, adr[i][0], "\\heartbeat\\%d\\gamename\\%s\\", - Cvar_VariableIntegerValue("net_port"), message); - if(adr[i][1].type != NA_BAD) - NET_OutOfBandPrint(NS_SERVER, adr[i][1], "\\heartbeat\\%d\\gamename\\%s\\", - Cvar_VariableIntegerValue("net_port6"), message); - #else + if ( !dpmasterProtocol ) { + if(adr[i][0].type != NA_BAD) + NET_OutOfBandPrint(NS_SERVER, adr[i][0], "\\heartbeat\\%d\\gamename\\%s\\", + Cvar_VariableIntegerValue("net_port"), message); + if(adr[i][1].type != NA_BAD) + NET_OutOfBandPrint(NS_SERVER, adr[i][1], "\\heartbeat\\%d\\gamename\\%s\\", + Cvar_VariableIntegerValue("net_port6"), message); + continue; + } + #endif + if(adr[i][0].type != NA_BAD) NET_OutOfBandPrint( NS_SERVER, adr[i][0], "heartbeat %s\n", message); if(adr[i][1].type != NA_BAD) NET_OutOfBandPrint( NS_SERVER, adr[i][1], "heartbeat %s\n", message); - #endif } }