/* ================= 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: // 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; } 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.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_SoundOptionsMenu_Event ================= */ static void UI_SoundOptionsMenu_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: break; case ID_NETWORK: UI_PopMenu(); UI_NetworkOptionsMenu(); break; /* case ID_A3D: if( soundOptionsInfo.a3d.curvalue ) { trap_Cmd_ExecuteText( EXEC_NOW, "s_enable_a3d\n" ); } else { trap_Cmd_ExecuteText( EXEC_NOW, "s_disable_a3d\n" ); } soundOptionsInfo.a3d.curvalue = (int)trap_Cvar_VariableValue( "s_usingA3D" ); break; */ case ID_BACK: UI_PopMenu(); break; case ID_APPLY: trap_Cvar_SetValue( "s_volume", soundOptionsInfo.sfxvolume.curvalue / 10 ); soundOptionsInfo.sfxvolume_original = soundOptionsInfo.sfxvolume.curvalue; trap_Cvar_SetValue( "s_musicvolume", soundOptionsInfo.musicvolume.curvalue / 10 ); soundOptionsInfo.musicvolume_original = soundOptionsInfo.musicvolume.curvalue; // Check if something changed that requires the sound system to be restarted. if (soundOptionsInfo.quality_original != soundOptionsInfo.quality.curvalue || soundOptionsInfo.soundSystem_original != soundOptionsInfo.soundSystem.curvalue) { int speed; switch ( soundOptionsInfo.quality.curvalue ) { default: case 0: speed = 11025; break; case 1: speed = 22050; break; case 2: speed = 44100; break; } if (speed == DEFAULT_SDL_SND_SPEED) speed = 0; trap_Cvar_SetValue( "s_sdlSpeed", speed ); soundOptionsInfo.quality_original = soundOptionsInfo.quality.curvalue; trap_Cvar_SetValue( "s_useOpenAL", (soundOptionsInfo.soundSystem.curvalue == UISND_OPENAL) ); soundOptionsInfo.soundSystem_original = soundOptionsInfo.soundSystem.curvalue; UI_ForceMenuOff(); trap_Cmd_ExecuteText( EXEC_APPEND, "snd_restart\n" ); } break; } }