summaryrefslogtreecommitdiff
path: root/src/cgame
diff options
context:
space:
mode:
Diffstat (limited to 'src/cgame')
-rw-r--r--src/cgame/cg_servercmds.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/cgame/cg_servercmds.c b/src/cgame/cg_servercmds.c
index 035b8c56..e955e8ab 100644
--- a/src/cgame/cg_servercmds.c
+++ b/src/cgame/cg_servercmds.c
@@ -81,32 +81,31 @@ static void CG_ParseTeamInfo( void )
int i;
int count;
int client;
- int fields;
- if( cg.snap->ps.stats[ STAT_TEAM ] == TEAM_ALIENS )
- fields = 4; // aliens don't have upgrades
- else
- fields = 5;
+ count = trap_Argc( );
- count = ( trap_Argc( ) - 1 ) / fields;
+ for( i = 1; i < count; i++ ) // i is also incremented when writing into cgs.clientinfo
+ {
+ client = atoi( CG_Argv( i ) );
- cgs.teaminfoReceievedTime = cg.time;
+ // wrong team? drop the remaining info
+ if( cgs.clientinfo[ client ].team != cg.snap->ps.stats[ STAT_TEAM ] )
+ return;
- for( i = 0; i < count; i++ )
- {
- 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 * fields + 2 ) );
- cgs.clientinfo[ client ].health = atoi( CG_Argv( i * fields + 3 ) );
- cgs.clientinfo[ client ].curWeaponClass = atoi( CG_Argv( i * fields + 4 ) );
+ cgs.clientinfo[ client ].location = atoi( CG_Argv( ++i ) );
+ cgs.clientinfo[ client ].health = atoi( CG_Argv( ++i ) );
+ cgs.clientinfo[ client ].curWeaponClass = atoi( CG_Argv( ++i ) );
if( cg.snap->ps.stats[ STAT_TEAM ] == TEAM_HUMANS )
- cgs.clientinfo[ client ].upgrade = atoi( CG_Argv( i * fields + 5 ) );
+ cgs.clientinfo[ client ].upgrade = atoi( CG_Argv( ++i ) );
}
+
+ cgs.teaminfoReceievedTime = cg.time;
}