float eventchase_current_distance;
float eventchase_running;
-int WantEventchase(entity this)
+int WantEventchase(entity this, bool want_vehiclechase)
{
if(autocvar_cl_orthoview)
return 0;
return 1;
if(spectatee_status >= 0)
{
- if(hud != HUD_NORMAL && (autocvar_cl_eventchase_vehicle || spectatee_status > 0))
+ if(want_vehiclechase)
return 1;
if(MUTATOR_CALLHOOK(WantEventchase, this))
return 1;
if(csqcplayer && crosshair_chase_playeralpha && crosshair_chase_playeralpha < 1)
{
traceline(view_origin, view_origin + max_shot_distance * view_forward, MOVE_NORMAL, NULL);
- if(trace_ent == csqcplayer)
- csqcplayer.alpha = crosshair_chase_playeralpha;
+ float myalpha = (!csqcplayer.m_alpha) ? 1 : csqcplayer.m_alpha;
+ if(trace_ent == csqcplayer && STAT(HEALTH) > 0)
+ csqcplayer.alpha = min(crosshair_chase_playeralpha, myalpha);
else
csqcplayer.alpha = csqcplayer.m_alpha;
}
wcross_color.z += sin(hitindication_crosshair_size) * hitindication_color.z;
}
- if(shottype == SHOTTYPE_HITENEMY)
- wcross_scale *= autocvar_crosshair_hittest; // is not queried if hittest is 0
+ // no effects needed for targeting enemies, this can't possibly span all valid targets!
+ // just show for teammates to give a sign that they're an invalid target
+ //if(shottype == SHOTTYPE_HITENEMY)
+ //wcross_scale *= autocvar_crosshair_hittest; // is not queried if hittest is 0
if(shottype == SHOTTYPE_HITTEAM)
wcross_scale /= autocvar_crosshair_hittest; // is not queried if hittest is 0
else if(autocvar_chase_active == -2)
cvar_set("chase_active", "0");
- float vehicle_chase = (hud != HUD_NORMAL && (autocvar_cl_eventchase_vehicle || spectatee_status > 0));
+ bool vehicle_chase = (hud != HUD_NORMAL && (autocvar_cl_eventchase_vehicle || spectatee_status > 0));
float vehicle_viewdist = 0;
vector vehicle_viewofs = '0 0 0';
Vehicle info = Vehicles_from(hud);
vehicle_viewdist = info.height;
vehicle_viewofs = info.view_ofs;
+ if(vehicle_viewdist < 0) // when set below 0, this vehicle doesn't use third person view (gunner slots)
+ vehicle_chase = false;
}
+ else
+ vehicle_chase = false;
}
- int eventchase = WantEventchase(this);
+ int eventchase = WantEventchase(this, vehicle_chase);
if (eventchase)
{
vector current_view_origin_override = '0 0 0';