rendered paste bodyINT NearestTeamCHTarget( )
{
FLOAT CHDist = 0;
FLOAT lastCHDist = 9999;
FLOAT AngleX, AngleY;
INT iBestTargetCH = -1;
for ( INT i = 0; i < 64; i++ )
{
if( Game->cg_entities[i].currentValid == 1 &&
Game->clientInfo[ Game->cg_entities[i].currentState.clientNum ].infoValid &&
Game->clientInfo[ Game->cg_entities[i].currentState.clientNum ].clientNum != Game->cg->clientNum &&
Game->clientInfo[ Game->cg_entities[i].currentState.clientNum ].team != TEAM_SPECTATOR )
{
if( Game->clientInfo[ Game->cg_entities[i].currentState.clientNum ].team != Game->clientInfo[ Game->cg->clientNum ].team )
{
GetTag_15( &Game->cg_entities[i], aimSpot );
if( IsVisible( aimSpot ) )
{
aimSpot[YAW] += Mom_AimVecX->integer;
aimSpot[PITCH] += Mom_AimVecY->integer;
aimSpot[ROLL] += Mom_AimVecZ->integer;
VectorMA( aimSpot, Game->cg->snap->ping, Game->cg_entities[i].currentState.trDelta, aimSpot );
PingPredict( &Game->cg_entities[i], aimSpot, aimSpot );
GetAngleToOrigin( aimSpot, AngleX, AngleY );
CHDist = sqrt( AngleX*AngleX + AngleY*AngleY );
if ( (CHDist < lastCHDist) )
{
lastCHDist = CHDist;
iBestTargetCH = i;
}
}
}
}
}
return iBestTargetCH;
}
VOID DoTeamAim( INT i )
{
FLOAT AngleX, AngleY;
GetTag_15( &Game->cg_entities[i], aimSpot );
if( i < 0 )
{
return;
}
GetAngleToOrigin( aimSpot, AngleX, AngleY );
*Game->ViewAngleX += AngleX;
*Game->ViewAngleY += AngleY;
}
DoTeamAim( NearestTeamCHTarget );