ret = ref_store = ref_store * (1 - frac) + (value) * frac;
#define lowpass_limited(value, frac, limit, ref_store, ret) MACRO_BEGIN \
-{ \
float __ignore; lowpass(value, frac, ref_store, __ignore); \
ret = ref_store = bound((value) - (limit), ref_store, (value) + (limit)); \
-} MACRO_END
+MACRO_END
#define highpass(value, frac, ref_store, ret) MACRO_BEGIN \
-{ \
float __f = 0; lowpass(value, frac, ref_store, __f); \
ret = (value) - __f; \
-} MACRO_END
+MACRO_END
#define highpass_limited(value, frac, limit, ref_store, ret) MACRO_BEGIN \
-{ \
float __f = 0; lowpass_limited(value, frac, limit, ref_store, __f); \
ret = (value) - __f; \
-} MACRO_END
+MACRO_END
#define lowpass2(value, frac, ref_store, ref_out) MACRO_BEGIN \
-{ \
lowpass(value.x, frac, ref_store.x, ref_out.x); \
lowpass(value.y, frac, ref_store.y, ref_out.y); \
-} MACRO_END
+MACRO_END
#define highpass2(value, frac, ref_store, ref_out) MACRO_BEGIN \
-{ \
highpass(value.x, frac, ref_store.x, ref_out.x); \
highpass(value.y, frac, ref_store.y, ref_out.y); \
-} MACRO_END
+MACRO_END
#define highpass2_limited(value, frac, limit, ref_store, ref_out) MACRO_BEGIN \
-{ \
highpass_limited(value.x, frac, limit, ref_store.x, ref_out.x); \
highpass_limited(value.y, frac, limit, ref_store.y, ref_out.y); \
-} MACRO_END
+MACRO_END
#define lowpass3(value, frac, ref_store, ref_out) MACRO_BEGIN \
-{ \
lowpass(value.x, frac, ref_store.x, ref_out.x); \
lowpass(value.y, frac, ref_store.y, ref_out.y); \
lowpass(value.z, frac, ref_store.z, ref_out.z); \
-} MACRO_END
+MACRO_END
#define highpass3(value, frac, ref_store, ref_out) MACRO_BEGIN \
-{ \
highpass(value.x, frac, ref_store.x, ref_out.x); \
highpass(value.y, frac, ref_store.y, ref_out.y); \
highpass(value.z, frac, ref_store.z, ref_out.z); \
-} MACRO_END
+MACRO_END
void calc_followmodel_ofs(entity view)
{
vel = view.velocity;
else
{
- MAKE_VECTORS_NEW(view_angles, forward, right, up);
+ vector forward, right, up;
+ MAKE_VECTORS(view_angles, forward, right, up);
vel.x = view.velocity * forward;
vel.y = view.velocity * right * -1;
vel.z = view.velocity * up;
if (autocvar_cl_followmodel_velocity_absolute)
{
vector fixed_gunorg;
- MAKE_VECTORS_NEW(view_angles, forward, right, up);
+ vector forward, right, up;
+ MAKE_VECTORS(view_angles, forward, right, up);
fixed_gunorg.x = gunorg * forward;
fixed_gunorg.y = gunorg * right * -1;
fixed_gunorg.z = gunorg * up;
vector pos = view_origin;
vector dir = view_forward;
- MAKE_VECTORS_NEW(autocvar_chase_active ? warpzone_save_view_angles : view_angles, forward, right, up);
+ vector forward, right, up;
+ MAKE_VECTORS(autocvar_chase_active ? warpzone_save_view_angles : view_angles, forward, right, up);
pos += right * -wepent.movedir.y
+ up * wepent.movedir.z;
curspeed = 0;
else
{
- MAKE_VECTORS_NEW(view_angles, forward, right, up);
+ vector forward, right, up;
+ MAKE_VECTORS(view_angles, forward, right, up);
v = pmove_vel;
if(csqcplayer)
v = csqcplayer.velocity;
}
#define CROSSHAIR_DO_BLUR(M,sz,wcross_name,wcross_alpha) \
- MACRO_BEGIN { \
+ 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
+ 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)
return;
}
+ if (cursor_active == -1) // starting to display the cursor
+ {
+ // since HUD_Mouse is called by CSQC_UpdateView before CSQC_InputEvent,
+ // in the first frame mousepos is the mouse position of the last time
+ // the cursor was displayed, thus we ignore it to avoid a glictch
+ cursor_active = 1;
+ return;
+ }
+
if(!autocvar_hud_cursormode)
update_mousepos();
else if(eventchase_current_distance != chase_distance)
eventchase_current_distance = chase_distance;
- MAKE_VECTORS_NEW(view_angles, forward, right, up);
+ vector forward, right, up;
+ MAKE_VECTORS(view_angles, forward, right, up);
vector eventchase_target_origin = (current_view_origin - (forward * eventchase_current_distance));
WarpZone_TraceBox(current_view_origin, autocvar_cl_eventchase_mins, autocvar_cl_eventchase_maxs, eventchase_target_origin, MOVE_WORLDONLY, this);
{
if(!minigame_wasactive)
{
- localcmd("+button14\n");
+ localcmd("+button12\n");
minigame_wasactive = true;
}
}
else if(minigame_wasactive)
{
- localcmd("-button14\n");
+ localcmd("-button12\n");
minigame_wasactive = false;
}
R_EndPolygon();
}
- if(autocvar_cl_reticle)
+ if(autocvar_cl_reticle && !MUTATOR_CALLHOOK(DrawReticle))
{
string reticle_image = string_null;
bool wep_zoomed = false;
setproperty(VF_ORIGIN, '0 0 0');
setproperty(VF_ANGLES, '0 0 0');
setproperty(VF_PERSPECTIVE, 1);
- MAKE_VECTORS_NEW('0 0 0', forward, right, up);
+ vector forward, right, up;
+ MAKE_VECTORS('0 0 0', forward, right, up);
vector v1, v2;
cvar_set("vid_conwidth", "800");
cvar_set("vid_conheight", "600");