From 6b1380606621f5675e0d74835b4b78b55ad66aff Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Sun, 7 Jul 2013 16:08:58 -0500 Subject: [PATCH] Fix getting servers from and being listed on id's q3 master server Use q3 master protocol when com_gamename is Quake3Arena (the default), otherwise use dpmaster protocol. --- code/client/cl_main.c | 3 +++ code/qcommon/q_shared.h | 5 +++++ code/server/sv_main.c | 3 +++ 3 files changed, 11 insertions(+) diff --git a/code/client/cl_main.c b/code/client/cl_main.c index c345c973..26faf80f 100644 --- a/code/client/cl_main.c +++ b/code/client/cl_main.c @@ -4145,6 +4145,9 @@ void CL_GlobalServers_f( void ) { com_gamename->string, Cmd_Argv(2)); } } + else if ( !Q_stricmp( com_gamename->string, LEGACY_MASTER_GAMENAME ) ) + 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)); diff --git a/code/qcommon/q_shared.h b/code/qcommon/q_shared.h index b7f03fda..48647f1d 100644 --- a/code/qcommon/q_shared.h +++ b/code/qcommon/q_shared.h @@ -51,6 +51,11 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // Heartbeat for dpmaster protocol. You shouldn't change this unless you know what you're doing #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 +#define LEGACY_MASTER_GAMENAME "Quake3Arena" +#define LEGACY_HEARTBEAT_FOR_MASTER "QuakeArena-1" + #define BASETA "missionpack" #ifndef PRODUCT_VERSION diff --git a/code/server/sv_main.c b/code/server/sv_main.c index e48e0b97..ed50707e 100644 --- a/code/server/sv_main.c +++ b/code/server/sv_main.c @@ -252,6 +252,9 @@ void SV_MasterHeartbeat(const char *message) if ( svs.time < svs.nextHeartbeatTime ) return; + if ( !Q_stricmp( com_gamename->string, LEGACY_MASTER_GAMENAME ) ) + message = LEGACY_HEARTBEAT_FOR_MASTER; + svs.nextHeartbeatTime = svs.time + HEARTBEAT_MSEC; // send to group masters