/* ================= Options_Event ================= */ static void Options_Event( void* ptr, int event ) { if( event != QM_ACTIVATED ) { return; } switch( ((menucommon_s*)ptr)->id ) { case ID_GRAPHICS: UI_GraphicsOptionsMenu(); break; case ID_DISPLAY: UI_DisplayOptionsMenu(); break; case ID_SOUND: UI_SoundOptionsMenu(); break; case ID_NETWORK: UI_NetworkOptionsMenu(); break; case ID_BACK: UI_PopMenu(); break; } }
/* ================= GraphicsOptions_Event ================= */ static void GraphicsOptions_Event( void* ptr, int event ) { InitialVideoOptions_s *ivo; if( event != QM_ACTIVATED ) { return; } switch( ((menucommon_s*)ptr)->id ) { case ID_MODE: // clamp 3dfx video modes if ( s_graphicsoptions.driver.curvalue == 1 ) { if ( s_graphicsoptions.mode.curvalue < 2 ) s_graphicsoptions.mode.curvalue = 2; else if ( s_graphicsoptions.mode.curvalue > 6 ) s_graphicsoptions.mode.curvalue = 6; } break; case ID_LIST: ivo = &s_ivo_templates[s_graphicsoptions.list.curvalue]; s_graphicsoptions.mode.curvalue = ivo->mode; s_graphicsoptions.tq.curvalue = ivo->tq; s_graphicsoptions.lighting.curvalue = ivo->lighting; s_graphicsoptions.colordepth.curvalue = ivo->colordepth; s_graphicsoptions.texturebits.curvalue = ivo->texturebits; s_graphicsoptions.geometry.curvalue = ivo->geometry; s_graphicsoptions.filter.curvalue = ivo->filter; s_graphicsoptions.fs.curvalue = ivo->fullscreen; break; case ID_DRIVERINFO: UI_DriverInfo_Menu(); break; case ID_BACK2: UI_PopMenu(); break; case ID_GRAPHICS: break; case ID_DISPLAY: UI_PopMenu(); UI_DisplayOptionsMenu(); break; case ID_SOUND: UI_PopMenu(); UI_SoundOptionsMenu(); break; case ID_NETWORK: UI_PopMenu(); UI_NetworkOptionsMenu(); break; } }
/* ================= UI_DisplayOptionsMenu_Event ================= */ static void UI_DisplayOptionsMenu_Event( void* ptr, int event ) { if( event != QM_ACTIVATED ) { return; } switch( ((menucommon_s*)ptr)->id ) { case ID_GRAPHICS: UI_PopMenu(); UI_GraphicsOptionsMenu(); break; case ID_DISPLAY: break; case ID_SOUND: UI_PopMenu(); UI_SoundOptionsMenu(); break; case ID_NETWORK: UI_PopMenu(); UI_NetworkOptionsMenu(); break; case ID_BRIGHTNESS: trap_Cvar_SetValue( "r_gamma", displayOptionsInfo.brightness.curvalue / 10.0f ); break; case ID_IGNOREHWG: trap_Cvar_SetValue( "r_ignorehwgamma", displayOptionsInfo.ignoreHWG.curvalue ); trap_Cmd_ExecuteText( EXEC_APPEND, "vid_restart\n" ); break; case ID_BACK: UI_PopMenu(); break; case ID_ANAGLYPH: trap_Cvar_SetValue( "r_anaglyphMode", displayOptionsInfo.anaglyph.curvalue ); if ( !displayOptionsInfo.anaglyph.curvalue ) { displayOptionsInfo.greyscale.generic.flags |= QMF_GRAYED; } else { displayOptionsInfo.greyscale.generic.flags &= ~QMF_GRAYED; } break; case ID_GREYSCALE: trap_Cvar_SetValue( "r_greyscale", ( displayOptionsInfo.greyscale.curvalue / 100.0f ) ); displayOptionsInfo.apply.generic.flags &= ~( QMF_HIDDEN | QMF_INACTIVE ); break; } }
/* ================= UI_NetworkOptionsMenu_Event ================= */ static void UI_NetworkOptionsMenu_Event( void* ptr, int event ) { if( event != QM_ACTIVATED ) { return; } switch( ((menucommon_s*)ptr)->id ) { case ID_GRAPHICS: UI_PopMenu(); UI_GraphicsOptionsMenu(); break; case ID_DISPLAY: UI_PopMenu(); UI_DisplayOptionsMenu(); break; case ID_SOUND: UI_PopMenu(); UI_SoundOptionsMenu(); break; case ID_NETWORK: break; case ID_RATE: if( networkOptionsInfo.rate.curvalue == 0 ) { UI_trap_Cvar_SetValue( "rate", 2500 ); } else if( networkOptionsInfo.rate.curvalue == 1 ) { UI_trap_Cvar_SetValue( "rate", 3000 ); } else if( networkOptionsInfo.rate.curvalue == 2 ) { UI_trap_Cvar_SetValue( "rate", 4000 ); } else if( networkOptionsInfo.rate.curvalue == 3 ) { UI_trap_Cvar_SetValue( "rate", 5000 ); } else if( networkOptionsInfo.rate.curvalue == 4 ) { UI_trap_Cvar_SetValue( "rate", 25000 ); } break; case ID_BACK: UI_PopMenu(); break; } }
/* ================= UI_DisplayOptionsMenu_Event ================= */ static void UI_DisplayOptionsMenu_Event( void* ptr, int event ) { if( event != QM_ACTIVATED ) { return; } switch( ((menucommon_s*)ptr)->id ) { case ID_GRAPHICS: UI_PopMenu(); UI_GraphicsOptionsMenu(); break; case ID_DISPLAY: break; case ID_SOUND: UI_PopMenu(); UI_SoundOptionsMenu(); break; case ID_NETWORK: UI_PopMenu(); UI_NetworkOptionsMenu(); break; case ID_BRIGHTNESS: trap_Cvar_SetValue( "r_gamma", displayOptionsInfo.brightness.curvalue / 10.0f ); break; case ID_SCREENSIZE: trap_Cvar_SetValue( "cg_viewsize", displayOptionsInfo.screensize.curvalue * 10 ); break; case ID_BACK: UI_PopMenu(); break; } }
/* ================= GraphicsOptions_Event ================= */ static void GraphicsOptions_Event( void* ptr, int event ) { InitialVideoOptions_s *ivo; if( event != QM_ACTIVATED ) { return; } switch( ((menucommon_s*)ptr)->id ) { case ID_RATIO: s_graphicsoptions.mode.curvalue = ratioToRes[ s_graphicsoptions.ratio.curvalue ]; // fall through to apply mode constraints case ID_MODE: s_graphicsoptions.ratio.curvalue = resToRatio[ s_graphicsoptions.mode.curvalue ]; break; case ID_LIST: ivo = &s_ivo_templates[s_graphicsoptions.list.curvalue]; s_graphicsoptions.mode.curvalue = GraphicsOptions_FindDetectedResolution(ivo->mode); s_graphicsoptions.ratio.curvalue = resToRatio[ s_graphicsoptions.mode.curvalue ]; s_graphicsoptions.tq.curvalue = ivo->tq; s_graphicsoptions.lighting.curvalue = ivo->lighting; s_graphicsoptions.flares.curvalue = ivo->flares; s_graphicsoptions.texturebits.curvalue = ivo->texturebits; s_graphicsoptions.geometry.curvalue = ivo->geometry; s_graphicsoptions.filter.curvalue = ivo->filter; s_graphicsoptions.multisample.curvalue = ivo->multisample; s_graphicsoptions.fs.curvalue = ivo->fullscreen; break; case ID_DRIVERINFO: UI_DriverInfo_Menu(); break; case ID_BACK2: UI_PopMenu(); break; case ID_GRAPHICS: break; case ID_DISPLAY: UI_PopMenu(); UI_DisplayOptionsMenu(); break; case ID_SOUND: UI_PopMenu(); UI_SoundOptionsMenu(); break; case ID_NETWORK: UI_PopMenu(); UI_NetworkOptionsMenu(); break; } }