/* ================= SCR_CalcRefdef Must be called whenever vid changes Internal use only ================= */ static void SCR_CalcRefdef (void) { float size; int h; scr_fullupdate = 0; // force a background redraw vid.recalc_refdef = 0; // bound viewsize if (scr_viewsize.integer < 30) Cvar_SetValue ("viewsize", 30); else if (scr_viewsize.integer > 120) Cvar_SetValue ("viewsize", 120); // bound field of view if (scr_fov.integer < 10) Cvar_SetValue ("fov", 10); else if (scr_fov.integer > 170) Cvar_SetValue ("fov", 170); oldfov = scr_fov.integer; oldscreensize = scr_viewsize.integer; // force the status bar to redraw SB_ViewSizeChanged (); Sbar_Changed(); if (scr_viewsize.integer >= 110) sb_lines = 0; // no status bar else sb_lines = 36; size = scr_viewsize.integer > 100 ? 100.0 : scr_viewsize.integer; if (cl.intermission) { size = 100.0; // intermission is always full screen sb_lines = 0; } size /= 100.0; h = vid.height - sb_lines; r_refdef.vrect.width = vid.width * size; if (r_refdef.vrect.width < 96) { size = 96.0 / vid.width; r_refdef.vrect.width = 96; // min for icons } r_refdef.vrect.height = vid.height * size; if (r_refdef.vrect.height > vid.height - sb_lines) r_refdef.vrect.height = vid.height - sb_lines; r_refdef.vrect.x = (vid.width - r_refdef.vrect.width)/2; r_refdef.vrect.y = (h - r_refdef.vrect.height)/2; scr_vrect = r_refdef.vrect; }
/* ================= SCR_SizeDown_f Keybinding command ================= */ void SCR_SizeDown_f (void) { Cvar_SetValue ("viewsize",scr_viewsize.value-10); SB_ViewSizeChanged(); vid.recalc_refdef = 1; }