diff options
author | Paweł Redman <pawel.redman@gmail.com> | 2017-05-18 23:37:50 +0200 |
---|---|---|
committer | Paweł Redman <pawel.redman@gmail.com> | 2017-05-18 23:37:50 +0200 |
commit | 2ad1ec6272744c2910749998f779b32ddcae12fd (patch) | |
tree | 7a29148893c8f59bcb8c13cf91f59e14650e8c91 /src | |
parent | 68d2b3ae9ec3ef78167c20f1c9662c5020ee1f04 (diff) |
Improve version checking.
Diffstat (limited to 'src')
-rw-r--r-- | src/game/g_admin.c | 17 | ||||
-rw-r--r-- | src/game/g_client.c | 4 | ||||
-rw-r--r-- | src/game/g_local.h | 3 |
3 files changed, 16 insertions, 8 deletions
diff --git a/src/game/g_admin.c b/src/game/g_admin.c index e6b3132..daa01dc 100644 --- a/src/game/g_admin.c +++ b/src/game/g_admin.c @@ -10392,11 +10392,26 @@ qboolean G_admin_versions(gentity_t *ent, int skiparg) for (i = 0; i < level.maxclients; i++) { gclient_t *client = level.clients + i; + char userinfo[ MAX_INFO_STRING ], *p; if (client->pers.connected == CON_DISCONNECTED) continue; - ADMBP(va("% 2d '%s'\n", i, client->pers.version)); + ADMBP(va("%02i ", i)); + + trap_GetUserinfo(i, userinfo, sizeof(userinfo)); + p = Info_ValueForKey(userinfo, "version"); + + if (p[0]) + ADMBP(va("'%s'\n", p)); + else { + p = Info_ValueForKey(userinfo, "cl_voip"); + + if (p[0]) + ADMBP("probably GPP or newer\n"); + else + ADMBP("probably stock 1.1\n"); + } } ADMBP_end(); diff --git a/src/game/g_client.c b/src/game/g_client.c index 6044136..f9a72ea 100644 --- a/src/game/g_client.c +++ b/src/game/g_client.c @@ -1142,10 +1142,6 @@ void ClientUserinfoChanged( int clientNum, qboolean forceName ) if( !strcmp( s, "localhost" ) ) client->pers.localClient = qtrue; - // check the version - s = Info_ValueForKey( userinfo, "version" ); - Q_strncpyz( client->pers.version, s, MAX_CLIENT_VERSION ); - // check the item prediction s = Info_ValueForKey( userinfo, "cg_predictItems" ); diff --git a/src/game/g_local.h b/src/game/g_local.h index 5a8d1f8..a3c02c8 100644 --- a/src/game/g_local.h +++ b/src/game/g_local.h @@ -373,8 +373,6 @@ typedef struct long timeLastViewed; } statsCounters_level; -#define MAX_CLIENT_VERSION 80 - // client data that stays across multiple respawns, but is cleared // on each level change or team change at ClientBegin() typedef struct @@ -442,7 +440,6 @@ typedef struct qboolean firstConnect; // This is the first map since connect qboolean useUnlagged; statsCounters_t statscounters; - char version[ MAX_CLIENT_VERSION ]; } clientPersistant_t; #define MAX_UNLAGGED_MARKERS 256 |