rendered paste bodyVOID BoxEsp( int i )
{
FLOAT hx, hy;
vec3_t HeadOrigin = { 0.0f, 0.0f, 60.0f };
VectorAdd( Game->cg_entities[i].lerpOrigin, HeadOrigin, HeadOrigin );
FLOAT fx, fy;
vec3_t FootOrigin = { 0.0f, 0.0f, -10.0f };
VectorAdd( Game->cg_entities[i].lerpOrigin, FootOrigin, FootOrigin );
if( CG_WorldCoordToScreenCoordFloat( HeadOrigin, &hx, &hy ) && CG_WorldCoordToScreenCoordFloat( FootOrigin, &fx, &fy ) )
{
vec3_t MyPos = Game->cg_entities[Game->cg->clientNum].lerpOrigin;
vec3_t OthPos = Game->cg_entities[i].lerpOrigin;
float dx = MyPos.x - OthPos.x;
float dy = MyPos.y - OthPos.y;
float dz = MyPos.z - OthPos.z;
float distance = sqrt(dx*dx + dy*dy + dz*dz);
float SCALEFACTOR = 0.5; ////////////////////////// you will need to play with this till it looks satisfactory
// todo: add a player BB width / height to calculate width and height of scaled rect (wont detect prone
// since head origin and foot origin will never change)
// todo: dynamicly calculate head foot offsets
// todo: smoke a joint and get high
// todo: rewrite entire calculation based on boundingboxs rather than static offsets :(
float x = hx - ( (BB WIDTH) * (SCALEFACTOR * distance));
float y = hy - ( (BB HEIGHT) * (SCALEFACTOR * distance));
float w = fx + ( (BB WIDTH) * (SCALEFACTOR * distance));
float h = fy + ( (BB HEIGHT) * (SCALEFACTOR * distance));
if( Game->clientInfo[ Game->cg_entities[i].currentState.clientNum ].team != Game->clientInfo[ Game->cg->clientNum ].team )
{
DrawRect( x, y, w, h, 1, colorRed );
}
else
{
DrawRect( x, y, w, h, 1, colorGreen );
}
}
}