diff options
Diffstat (limited to 'src/cgame/cg_servercmds.c')
-rw-r--r-- | src/cgame/cg_servercmds.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/cgame/cg_servercmds.c b/src/cgame/cg_servercmds.c index 64ef7985..dff02805 100644 --- a/src/cgame/cg_servercmds.c +++ b/src/cgame/cg_servercmds.c @@ -81,24 +81,31 @@ static void CG_ParseTeamInfo( void ) int i; int count; int client; + int fields; - count = ( trap_Argc( ) - 1 ) / 5; + if( cg.snap->ps.stats[ STAT_TEAM ] == TEAM_ALIENS ) + fields = 4; // aliens don't have upgrades + else + fields = 5; + + count = ( trap_Argc( ) - 1 ) / fields; cgs.teaminfoReceievedTime = cg.time; for( i = 0; i < count; i++ ) { - client = atoi( CG_Argv( i * 5 + 1 ) ); + client = atoi( CG_Argv( i * fields + 1 ) ); if( client < 0 || client >= MAX_CLIENTS ) { CG_Printf( "[skipnotify]CG_ParseTeamInfo: bad client number: %d\n", client ); return; } - cgs.clientinfo[ client ].location = atoi( CG_Argv( i * 5 + 2 ) ); - cgs.clientinfo[ client ].health = atoi( CG_Argv( i * 5 + 3 ) ); - cgs.clientinfo[ client ].curWeaponClass = atoi( CG_Argv( i * 5 + 4 ) ); - cgs.clientinfo[ client ].upgrade = atoi( CG_Argv( i * 5 + 5 ) ); + cgs.clientinfo[ client ].location = atoi( CG_Argv( i * fields + 2 ) ); + cgs.clientinfo[ client ].health = atoi( CG_Argv( i * fields + 3 ) ); + cgs.clientinfo[ client ].curWeaponClass = atoi( CG_Argv( i * fields + 4 ) ); + if( cg.snap->ps.stats[ STAT_TEAM ] == TEAM_HUMANS ) + cgs.clientinfo[ client ].upgrade = atoi( CG_Argv( i * fields + 5 ) ); } } |