float eventchase_current_distance;
float eventchase_running;
-bool WantEventchase(entity this)
+int WantEventchase(entity this)
{
if(autocvar_cl_orthoview)
- return false;
+ return 0;
if(STAT(GAME_STOPPED) || intermission)
- return true;
+ return 1;
if(this.viewloc)
- return true;
+ return 1;
if(spectatee_status >= 0)
{
if(hud != HUD_NORMAL && (autocvar_cl_eventchase_vehicle || spectatee_status > 0))
- return true;
+ return 1;
if(MUTATOR_CALLHOOK(WantEventchase, this))
- return true;
+ return 1;
if(autocvar_cl_eventchase_frozen && STAT(FROZEN))
- return true;
+ return 1;
if(autocvar_cl_eventchase_death && (STAT(HEALTH) <= 0))
{
if(autocvar_cl_eventchase_death == 2)
{
// don't stop eventchase once it's started (even if velocity changes afterwards)
if(this.velocity == '0 0 0' || eventchase_running)
- return true;
+ return 1;
}
- else return true;
+ else return 1;
+ }
+ if (spectatee_status > 0 && autocvar_cl_eventchase_spectated_change)
+ {
+ if (time <= spectatee_status_changed_time + min(3, autocvar_cl_eventchase_spectated_change_time))
+ return 1;
+ else if (eventchase_running)
+ return -1; // disable chase_active while eventchase is still enabled so to avoid a glicth
}
- if (spectatee_status > 0 && autocvar_cl_eventchase_spectated_change
- && time <= spectatee_status_changed_time + 0.5)
- return true;
}
- return false;
+ return 0;
}
void HUD_Crosshair_Vehicle(entity this)
#define CROSSHAIR_DO_BLUR(M,sz,wcross_name,wcross_alpha) \
MACRO_BEGIN { \
+ vector scaled_sz = sz * wcross_size; \
if(wcross_blur > 0) \
{ \
for(i = -2; i <= 2; ++i) \
for(j = -2; j <= 2; ++j) \
- M(i,j,sz,wcross_name,wcross_alpha*0.04); \
+ M(i,j,sz,scaled_sz,wcross_name,wcross_alpha*0.04); \
} \
else \
{ \
- M(0,0,sz,wcross_name,wcross_alpha); \
+ M(0,0,sz,scaled_sz,wcross_name,wcross_alpha); \
} \
} MACRO_END
-#define CROSSHAIR_DRAW_SINGLE(i,j,sz,wcross_name,wcross_alpha) \
- drawpic(wcross_origin - ('0.5 0 0' * (sz * wcross_size.x + i * wcross_blur) + '0 0.5 0' * (sz * wcross_size.y + j * wcross_blur)), wcross_name, sz * wcross_size, wcross_color, wcross_alpha, DRAWFLAG_NORMAL)
+#define CROSSHAIR_DRAW_SINGLE(i,j,sz,scaled_sz,wcross_name,wcross_alpha) \
+ drawpic(wcross_origin - ('0.5 0 0' * (scaled_sz.x + i * wcross_blur) + '0 0.5 0' * (scaled_sz.y + j * wcross_blur)), wcross_name, scaled_sz, wcross_color, wcross_alpha, DRAWFLAG_NORMAL)
#define CROSSHAIR_DRAW(sz,wcross_name,wcross_alpha) \
CROSSHAIR_DO_BLUR(CROSSHAIR_DRAW_SINGLE,sz,wcross_name,wcross_alpha)
if(autocvar_r_letterbox == 0)
if(autocvar_viewsize < 120)
{
- if(!(gametype == MAPINFO_TYPE_RACE || gametype == MAPINFO_TYPE_CTS))
+ if(!(ISGAMETYPE(RACE) || ISGAMETYPE(CTS)))
Accuracy_LoadLevels();
HUD_Main();
}
}
- if(WantEventchase(this))
+ int eventchase = WantEventchase(this);
+ if (eventchase)
{
vector current_view_origin_override = '0 0 0';
vector view_offset_override = '0 0 0';
if(!local_player.viewloc)
setproperty(VF_ANGLES, WarpZone_TransformVAngles(WarpZone_trace_transform, view_angles));
}
- else if(autocvar_chase_active < 0) // time to disable chase_active if it was set by this code
+
+ if (eventchase <= 0 && autocvar_chase_active < 0) // time to disable chase_active if it was set by this code
{
eventchase_running = false;
cvar_set("chase_active", "0");
// Render the Scene
view_origin = getpropertyvec(VF_ORIGIN);
view_angles = getpropertyvec(VF_ANGLES);
- makevectors(view_angles);
- view_forward = v_forward;
- view_right = v_right;
- view_up = v_up;
+ MAKEVECTORS(makevectors, view_angles, view_forward, view_right, view_up);
#ifdef BLURTEST
if(time > blurtest_time0 && time < blurtest_time1)
else if(cvar("r_glsl_postprocess") == 2)
cvar_set("r_glsl_postprocess", "0");
- /*if(gametype == MAPINFO_TYPE_CTF)
+ /*if(ISGAMETYPE(CTF))
{
ctf_view();
} else */