All pastes #346742 Raw Edit

Miscellany

public cpp v1 · immutable
·published 2007-02-09 13:42 UTC
rendered paste body
int isRadar(vec3_t origin, int *screen) {	vec3_t vec,rot;	float distance;	VectorSubtract(origin, cgame->frame->cg_refdef.vieworg, vec);	vec[2] = 0.0f;	distance = VectorLength(vec)*0.025;	vectoangles(vec,rot);	rot[1] = AngleNormalize180(rot[1] - cgame->frame->cg_refdefViewAngles[1]);	AngleVectors(rot,vec,0,0);	VectorScale(vec,distance,vec);	if (vec[0]>100.0f)	   VectorScale(vec,100.0f/vec[0],vec);	else if (vec[0]<-100.0f)	   VectorScale(vec,-100.0f/vec[0],vec);	if(vec[1]>100.0f)	   VectorScale(vec,100.0f/vec[1],vec);	else if(vec[1]<-100.0f)	   VectorScale(vec,-100.0f/vec[1],vec);	screen[0]=((int)-vec[1]+0)-2;	screen[1]=((int)-vec[0]+0)-2;	return 1;}void drawRadar() {	vec4_t radarcolor = { 0.5f, 0.5f, 0.5f, 0.25f };    drawFillRect(0, 0,100, 100, radarcolor);	int screen[2];	int player;	for (player=0; player < MAX_CLIENTS; player++) {		if (!IS_PLAYER_VALID(player) || !isRadar(cgame->frame->players[player].origin, screen))			continue;		// added in order not to cross radar area	    if (screen[0] < 443) screen[0] = 443;	    if (screen[0] > 637) screen[0] = 637;	    if (screen[1] > 195) screen[1] = 195;	    		syscall_R_SetColor(colorWhite);	    drawFillRect( screen[0]-2, screen[1]-2, 5, 5, colorBlue);				syscall_R_SetColor(NULL);	}}