diff options
Diffstat (limited to 'src/cgame')
| -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 ) );    }  }  | 
