// radar is damaged, so make blips dance around void radar_blip_draw_distorted(blip *b) { int xdiff, ydiff; float scale; xdiff = -10 + rand()%20; ydiff = -10 + rand()%20; // maybe scale the effect if EMP is active if(emp_active_local()){ scale = emp_current_intensity(); xdiff = (int)((float)xdiff * scale); ydiff = (int)((float)ydiff * scale); } radar_draw_circle( b->x+xdiff, b->y+ydiff, b->rad ); }
void HudGaugeRadarStd::blipDrawDistorted(blip *b, int x, int y) { int xdiff, ydiff; float scale; xdiff = -10 + rand()%20; ydiff = -10 + rand()%20; // maybe scale the effect if EMP is active if(emp_active_local()){ scale = emp_current_intensity(); xdiff = (int)((float)xdiff * scale); ydiff = (int)((float)ydiff * scale); } drawContactCircle(x + xdiff, y + ydiff, b->rad); }
// radar is damaged, so make blips dance around void HudGaugeRadarOrb::blipDrawDistorted(blip *b, vec3d *pos) { float scale; float dist=vm_vec_normalize(pos); vec3d out; float distortion_angle=20; // maybe alter the effect if EMP is active if(emp_active_local()) { scale = emp_current_intensity(); distortion_angle *= frand_range(-3.0f,3.0f)*frand_range(0.0f, scale); dist *= frand_range(MAX(0.75f, 0.75f*scale), MIN(1.25f, 1.25f*scale)); if (dist > 1.25f) dist = 1.25f; if (dist < 0.75f) dist = 0.75f; } vm_vec_random_cone(&out,pos,distortion_angle); vm_vec_scale(&out,dist); drawContactHtl(&out,b->rad); }
// radar is damaged, so make blips dance around void HudGaugeRadarDradis::blipDrawDistorted(blip *b, vec3d *pos, float alpha) { float temp_scale; float dist = vm_vec_normalize(pos); vec3d out; float distortion_angle=20; // maybe alter the effect if EMP is active if (emp_active_local()) { temp_scale = emp_current_intensity(); dist *= frand_range(MAX(0.75f, 0.75f*temp_scale), MIN(1.25f, 1.25f*temp_scale)); distortion_angle *= frand_range(-3.0f,3.0f)*frand_range(0.0f, temp_scale); if (dist > 1.0f) dist = 1.0f; if (dist < 0.1f) dist = 0.1f; } vm_vec_random_cone(&out, pos, distortion_angle); vm_vec_scale(&out, dist); drawContact(&out, -1, unknown_contact_icon, b->dist, alpha, 1.0f); }