void M_Menu_Video_f( void ) { VID_MenuInit(); M_PushMenu( &s_video_menu ); }
static void ResetDefaults( void *unused ) { VID_MenuInit(); }
static void ApplyChanges( void *unused ) { float gamma; /* ** make values consistent */ s_fs_box[!s_current_menu_index].curvalue = s_fs_box[s_current_menu_index].curvalue; s_brightness_slider[!s_current_menu_index].curvalue = s_brightness_slider[s_current_menu_index].curvalue; s_ref_list[!s_current_menu_index].curvalue = s_ref_list[s_current_menu_index].curvalue; /* ** invert sense so greater = brighter, and scale to a range of 0.5 to 1.3 */ gamma = ( 0.8 - ( s_brightness_slider[s_current_menu_index].curvalue/10.0 - 0.5 ) ) + 0.5; Cvar_SetValue( "vid_gamma", gamma ); Cvar_SetValue( "sw_stipplealpha", s_stipple_box.curvalue ); Cvar_SetValue( "gl_picmip", 3 - s_tq_slider.curvalue ); Cvar_SetValue( "vid_fullscreen", s_fs_box[s_current_menu_index].curvalue ); Cvar_SetValue( "gl_ext_palettedtexture", s_paletted_texture_box.curvalue ); Cvar_SetValue( "gl_finish", s_finish_box.curvalue ); Cvar_SetValue( "sw_mode", s_mode_list[SOFTWARE_MENU].curvalue ); Cvar_SetValue( "gl_mode", s_mode_list[OPENGL_MENU].curvalue ); Cvar_SetValue( "vid_widescreen", s_aspect_ratio_list[s_current_menu_index].curvalue ); // NeVo - aspect ratio support // NeVo - fog toggle, overbright mode, and camera modes Cvar_SetValue ("ui_fogenabled", s_fogtoggle_list.curvalue); // NeVo - giant f*****g hack if (ui_fogenabled->value) { Cvar_SetValue ("r_skyfog", 1.0); Cvar_SetValue ("r_waterfog", 1.0); } else { Cvar_SetValue ("r_skyfog", 0.0); Cvar_SetValue ("r_waterfog", 0.0); } Cvar_SetValue ("r_overbrightbits", s_overbrights_list.curvalue*2.0); Cvar_SetValue ("cl_thirdPerson", s_cameramode_list[s_current_menu_index].curvalue); switch ( s_ref_list[s_current_menu_index].curvalue ) { case REF_SOFT: Cvar_Set( "vid_ref", "soft" ); break; case REF_OPENGL: Cvar_Set( "vid_ref", "gl" ); Cvar_Set( "gl_driver", "opengl32" ); break; case REF_3DFX: Cvar_Set( "vid_ref", "gl" ); Cvar_Set( "gl_driver", "3dfxgl" ); break; case REF_POWERVR: Cvar_Set( "vid_ref", "gl" ); Cvar_Set( "gl_driver", "pvrgl" ); break; case REF_VERITE: Cvar_Set( "vid_ref", "gl" ); Cvar_Set( "gl_driver", "veritegl" ); break; case REF_D3D9: // NeVo Cvar_Set( "vid_ref", "d3d9" ); break; default: // NeVo - default to software Cvar_Set( "vid_ref", "soft" ); break; } /* ** update appropriate stuff if we're running OpenGL and gamma ** has been modified */ if ( stricmp( vid_ref->string, "gl" ) == 0 ) { if ( vid_gamma->modified ) { vid_ref->modified = 1; if ( stricmp( gl_driver->string, "3dfxgl" ) == 0 ) { char envbuffer[1024]; float g; vid_ref->modified = 1; g = 2.00 * ( 0.8 - ( vid_gamma->value - 0.5 ) ) + 1.0F; Com_sprintf( envbuffer, sizeof(envbuffer), "SSTV2_GAMMA=%f", g ); putenv( envbuffer ); Com_sprintf( envbuffer, sizeof(envbuffer), "SST_GAMMA=%f", g ); putenv( envbuffer ); vid_gamma->modified = 0; } } if ( gl_driver->modified ) vid_ref->modified = 1; } //M_ForceMenuOff(); VID_MenuInit(); }