}
// do lockview after event chase camera so that it still applies whenever necessary.
- if(autocvar_cl_lockview)
+ if(autocvar_cl_lockview || (!autocvar_hud_cursormode && (autocvar__hud_configure && spectatee_status <= 0 || intermission > 1)))
{
setproperty(VF_ORIGIN, freeze_org);
setproperty(VF_ANGLES, freeze_ang);
var float autocvar_g_waypointsprite_turrets = TRUE;
var float autocvar_g_waypointsprite_turrets_maxdist = 5000;
+var float autocvar_hud_cursormode = TRUE;
float autocvar_hud_colorflash_alpha;
float autocvar_hud_configure_checkcollisions;
float autocvar_hud_configure_grid;
}
if (!hud_configure_prev)
{
- setcursormode(1);
+ if(autocvar_hud_cursormode) { setcursormode(1); }
hudShiftState = 0;
}
}
- else if (hud_configure_prev)
+ else if (hud_configure_prev && autocvar_hud_cursormode)
setcursormode(0);
hud_configure_prev = autocvar__hud_configure;
if(autocvar__menu_alpha == 1)
return;
+ if not(autocvar_hud_cursormode)
+ {
+ mousepos = mousepos + getmousepos() * autocvar_menu_mouse_speed;
+
+ mousepos_x = bound(0, mousepos_x, vid_conwidth);
+ mousepos_y = bound(0, mousepos_y, vid_conheight);
+ }
+
if(mouseClicked)
{
if(prevMouseClicked == 0)
if(!mv_active)
return;
+ if not(autocvar_hud_cursormode)
+ {
+ mv_mousepos = mv_mousepos + getmousepos();
+
+ mv_mousepos_x = bound(0, mv_mousepos_x, vid_conwidth);
+ mv_mousepos_y = bound(0, mv_mousepos_y, vid_conheight);
+ }
+
center = (vid_conwidth - 1)/2;
xmin = vid_conwidth*0.05; // 5% border must suffice
xmax = vid_conwidth - xmin;
precache_sound ("misc/invshot.wav");
mv_active = 1;
- setcursormode(1);
+ if(autocvar_hud_cursormode) { setcursormode(1); }
+ else { mv_mousepos = '0.5 0 0' * vid_conwidth + '0 0.5 0' * vid_conheight; }
mv_selection = -1;
for(n_ssdirs = 0; ; ++n_ssdirs)