summaryrefslogtreecommitdiff
path: root/src/game/g_team.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/g_team.c')
-rw-r--r--src/game/g_team.c42
1 files changed, 15 insertions, 27 deletions
diff --git a/src/game/g_team.c b/src/game/g_team.c
index 845ea65e..7ec6855c 100644
--- a/src/game/g_team.c
+++ b/src/game/g_team.c
@@ -77,7 +77,7 @@ gentity_t *Team_GetLocation( gentity_t *ent )
best = NULL;
bestlen = 3.0f * 8192.0f * 8192.0f;
- VectorCopy( ent->client->ps.origin, origin );
+ VectorCopy( ent->r.currentOrigin, origin );
for( eloc = level.locationHead; eloc; eloc = eloc->nextTrain )
{
@@ -160,28 +160,9 @@ void TeamplayInfoMessage( gentity_t *ent )
int h, a = 0;
int clients[ TEAM_MAXOVERLAY ];
- //hack: always send each client's teaminfo to it for CG_PLAYER_LOCATION
- h = ent->client->ps.stats[ STAT_HEALTH ];
- if( h < 0 )
- h = 0;
-
- trap_SendServerCommand( ent - g_entities,
- va("tinfo %i %i %i %i %i %i",
- 1,
- ent - g_entities,
- ent->client->pers.location,
- h,
- a,
- ent->client->ps.weapon ) );
-
if( ! ent->client->pers.teamInfo )
return;
- if( !ent->inuse ||
- ( !( ent->client->ps.stats[ STAT_TEAM ] == TEAM_HUMANS ) &&
- !( ent->client->ps.stats[ STAT_TEAM ] == TEAM_ALIENS ) ) )
- return;
-
// figure out what client should be on the display
// we are limited to 8, but we want to use the top eight players
// but in client order (so they don't keep changing position on the overlay)
@@ -247,12 +228,17 @@ void CheckTeamStatus( void )
if( ent->client->pers.connected != CON_CONNECTED )
continue;
- loc = Team_GetLocation( ent );
- if( loc )
- ent->client->pers.location = loc->health;
- else
- ent->client->pers.location = 0;
-
+ if( ent->inuse && ( ent->client->ps.stats[ STAT_TEAM ] == TEAM_HUMANS ||
+ ent->client->ps.stats[ STAT_TEAM ] == TEAM_ALIENS ) )
+ {
+
+ loc = Team_GetLocation( ent );
+
+ if( loc )
+ ent->client->pers.location = loc->s.generic1;
+ else
+ ent->client->pers.location = 0;
+ }
}
for( i = 0; i < g_maxclients.integer; i++ )
@@ -261,7 +247,9 @@ void CheckTeamStatus( void )
if( ent->client->pers.connected != CON_CONNECTED )
continue;
- TeamplayInfoMessage( ent );
+ if( ent->inuse && ( ent->client->ps.stats[ STAT_TEAM ] == TEAM_HUMANS ||
+ ent->client->ps.stats[ STAT_TEAM ] == TEAM_ALIENS ) )
+ TeamplayInfoMessage( ent );
}
}
}