summaryrefslogtreecommitdiff
path: root/src/cgame/cg_servercmds.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cgame/cg_servercmds.c')
-rw-r--r--src/cgame/cg_servercmds.c19
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 ) );
}
}