vec3_t aimSpot; float GetVarFactor( float angval ) { if( 0 > angval ) { angval = -angval; } if ( angval > 30 ) { return 2.5; } if( angval > 15 ) { return 1.5; } if( angval > 10 ) { return 0.75; } return (float)0.4; } INT 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 ) { if( strstr( Game->name, "1.0" ) ) { GetTag_10( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.1" ) ) { GetTag_11( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.2" ) ) { GetTag_12( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.3" ) ) { GetTag_13( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.4" ) ) { GetTag_14( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.5" ) ) { GetTag_15( &Game->cg_entities[i], aimSpot ); } if( IsVisible( 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; if( strstr( Game->name, "1.0" ) ) { GetTag_10( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.1" ) ) { GetTag_11( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.2" ) ) { GetTag_12( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.3" ) ) { GetTag_13( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.4" ) ) { GetTag_14( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.5" ) ) { GetTag_15( &Game->cg_entities[i], aimSpot ); } if( i < 0 ) { return; } GetAngleToOrigin( aimSpot, AngleX, AngleY ); *Game->ViewAngleX += AngleX; *Game->ViewAngleY += AngleY; } VOID DoHumanTeamAim( INT i ) { FLOAT AngleX, AngleY; if( strstr( Game->name, "1.0" ) ) { GetTag_10( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.1" ) ) { GetTag_11( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.2" ) ) { GetTag_12( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.3" ) ) { GetTag_13( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.4" ) ) { GetTag_14( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.5" ) ) { GetTag_15( &Game->cg_entities[i], aimSpot ); } if( i < 0 ) { return; } GetAngleToOrigin( aimSpot, AngleX, AngleY ); if( AngleX != 0 ) { if( AngleX > 0 ) { *Game->ViewAngleX += GetVarFactor( AngleX ); } else { *Game->ViewAngleX -= GetVarFactor( AngleX ); } } if( AngleY != 0 ) { if( AngleY > 0 ) { *Game->ViewAngleY += GetVarFactor( AngleY ); } else { *Game->ViewAngleY -= GetVarFactor( AngleY ); } } } INT NearestAllCHTarget( ) { 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( strstr( Game->name, "1.0" ) ) { GetTag_10( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.1" ) ) { GetTag_11( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.2" ) ) { GetTag_12( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.3" ) ) { GetTag_13( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.4" ) ) { GetTag_14( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.5" ) ) { GetTag_15( &Game->cg_entities[i], aimSpot ); } if( IsVisible( aimSpot ) ) { GetAngleToOrigin( aimSpot, AngleX, AngleY ); CHDist = sqrt( AngleX*AngleX + AngleY*AngleY ); if ( (CHDist < lastCHDist) ) { lastCHDist = CHDist; iBestTargetCH = i; } } } } return iBestTargetCH; } VOID DoAllAim( INT i ) { FLOAT AngleX, AngleY; if( strstr( Game->name, "1.0" ) ) { GetTag_10( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.1" ) ) { GetTag_11( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.2" ) ) { GetTag_12( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.3" ) ) { GetTag_13( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.4" ) ) { GetTag_14( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.5" ) ) { GetTag_15( &Game->cg_entities[i], aimSpot ); } if( i < 0 ) { return; } GetAngleToOrigin( aimSpot, AngleX, AngleY ); *Game->ViewAngleX += AngleX; *Game->ViewAngleY += AngleY; } VOID DoHumanAllAim( INT i ) { FLOAT AngleX, AngleY; if( strstr( Game->name, "1.0" ) ) { GetTag_10( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.1" ) ) { GetTag_11( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.2" ) ) { GetTag_12( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.3" ) ) { GetTag_13( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.4" ) ) { GetTag_14( &Game->cg_entities[i], aimSpot ); } else if( strstr( Game->name, "1.5" ) ) { GetTag_15( &Game->cg_entities[i], aimSpot ); } if( i < 0 ) { return; } GetAngleToOrigin( aimSpot, AngleX, AngleY ); if( AngleX != 0 ) { if( AngleX > 0 ) { *Game->ViewAngleX += GetVarFactor( AngleX ); } else { *Game->ViewAngleX -= GetVarFactor( AngleX ); } } if( AngleY != 0 ) { if( AngleY > 0 ) { *Game->ViewAngleY += GetVarFactor( AngleY ); } else { *Game->ViewAngleY -= GetVarFactor( AngleY ); } } }