123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664 |
- class OptionsMenuVideo extends ScriptedWidgetEventHandler
- {
- protected Widget m_Root;
-
- protected Widget m_SettingsRoot;
- protected Widget m_DetailsRoot;
- protected Widget m_DetailsBodyDefault;
- protected Widget m_DetailsBodyConnectivity;
- protected TextWidget m_DetailsLabel;
- protected RichTextWidget m_DetailsText;
-
- protected GameOptions m_Options;
- protected OptionsMenu m_Menu;
-
- #ifdef PLATFORM_CONSOLE
- #ifdef PLATFORM_PS4
- protected ref OptionSelectorMultistate m_FlipModeSelector;
- #endif
- #else
- //Overall
- protected ref OptionSelectorMultistate m_OverallQualitySelector;
-
- //Screen
- protected ref OptionSelectorMultistate m_DisplayModeSelector;
- protected ref OptionSelectorMultistate m_ResolutionSelector;
- protected ref OptionSelectorSlider m_BrightnessSelector;
- protected ref OptionSelectorMultistate m_VSyncSelector;
- //protected ref OptionSelectorMultistate m_ColorDepthSelector;
-
- //Scene
- protected ref OptionSelectorMultistate m_ObjectDetailSelector;
- protected ref OptionSelectorMultistate m_TerrainDetailSelector;
- protected ref OptionSelectorMultistate m_TextureDetailSelector;
- protected ref OptionSelectorMultistate m_ShadowDetailSelector;
- protected ref OptionSelectorMultistate m_VisibilitySelector;
- protected ref OptionSelectorMultistate m_ObjectVisibilitySelector;
-
- //Rendering
- protected ref OptionSelectorMultistate m_TextureFilteringSelector;
- protected ref OptionSelectorMultistate m_TerrainSurfaceDetailSelector;
- protected ref OptionSelectorMultistate m_PPAASelector;
- protected ref OptionSelectorMultistate m_HWAASelector;
- protected ref OptionSelectorMultistate m_ATOCSelector;
- protected ref OptionSelectorMultistate m_AOSelector;
- protected ref OptionSelectorMultistate m_PPQualitySelector;
- protected ref OptionSelectorMultistate m_SSRQualitySelector;
- #endif
-
- #ifdef PLATFORM_CONSOLE
- #ifdef PLATFORM_PS4
- protected ref ListOptionsAccess m_FlipModeOption;
- #endif
- #else
- //Overall
- protected ref ListOptionsAccess m_OverallQualityOption;
-
- //Screen
- protected ref ListOptionsAccess m_DisplayModeOption;
- protected ref ListOptionsAccess m_ResolutionOption;
- protected ref NumericOptionsAccess m_BrightnessOption;
- protected ref ListOptionsAccess m_VSyncOption;
- //protected ref ListOptionsAccess m_ColorDepthOption;
-
- //Scene
- protected ref ListOptionsAccess m_ObjectDetailOption;
- protected ref ListOptionsAccess m_TerrainDetailOption;
- protected ref ListOptionsAccess m_TextureDetailOption;
- protected ref ListOptionsAccess m_ShadowDetailOption;
- protected ref ListOptionsAccess m_VisibilityOption;
- protected ref ListOptionsAccess m_ObjectVisibilityOption;
-
- //Rendering
- protected ref ListOptionsAccess m_TextureFilteringOption;
- protected ref ListOptionsAccess m_TerrainSurfaceDetailOption;
- protected ref ListOptionsAccess m_PPAAOption;
- protected ref ListOptionsAccess m_HWAAOption;
- protected ref ListOptionsAccess m_ATOCOption;
- protected ref ListOptionsAccess m_AOOption;
- protected ref ListOptionsAccess m_PPQualityOption;
- protected ref ListOptionsAccess m_SSRQualityOption;
- #endif
-
- protected ref map<int, ref Param2<string, string>> m_TextMap;
-
- void OptionsMenuVideo( Widget parent, Widget details_root, GameOptions options, OptionsMenu menu )
- {
- m_Root = GetGame().GetWorkspace().CreateWidgets( GetLayoutName(), parent );
-
- m_DetailsRoot = details_root;
- m_DetailsBodyDefault = m_DetailsRoot.FindAnyWidget("settings_details_body");
- m_DetailsBodyConnectivity = m_DetailsRoot.FindAnyWidget("settings_details_body_connectivity");
- m_DetailsLabel = TextWidget.Cast( m_DetailsRoot.FindAnyWidget( "details_label" ) );
- m_DetailsText = RichTextWidget.Cast( m_DetailsRoot.FindAnyWidget( "details_content" ) );
-
- SetOptions( options );
- m_Menu = menu;
-
- #ifdef PLATFORM_CONSOLE
- #ifdef PLATFORM_PS4
- m_Root.FindAnyWidget( "vsync_setting_option" ).SetUserID( OptionAccessType.AT_OPTIONS_FLIPMODE );
- #endif
- #else
- m_Root.FindAnyWidget( "overall_quality_setting_option" ).SetUserID( OptionAccessType.AT_QUALITY_PREFERENCE );
- m_Root.FindAnyWidget( "display_mode_setting_option" ).SetUserID( OptionAccessType.AT_OPTIONS_DISPLAY_MODE );
- m_Root.FindAnyWidget( "resolution_setting_option" ).SetUserID( OptionAccessType.AT_OPTIONS_RESOLUTION );
- m_Root.FindAnyWidget( "brightness_setting_option" ).SetUserID( OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER );
- m_Root.FindAnyWidget( "vsync_setting_option" ).SetUserID( OptionAccessType.AT_VSYNC_VALUE );
- //m_Root.FindAnyWidget( "color_depth_setting_option" ).SetUserID( OptionAccessType.AT_HDR_DETAIL );
-
- //Scene
- m_Root.FindAnyWidget( "object_detail_setting_option" ).SetUserID( OptionAccessType.AT_OBJECTS_DETAIL );
- m_Root.FindAnyWidget( "terrain_detail_setting_option" ).SetUserID( OptionAccessType.AT_OPTIONS_TERRAIN );
- m_Root.FindAnyWidget( "texture_detail_setting_option" ).SetUserID( OptionAccessType.AT_TEXTURE_DETAIL );
- m_Root.FindAnyWidget( "shadow_detail_setting_option" ).SetUserID( OptionAccessType.AT_SHADOW_DETAIL );
- m_Root.FindAnyWidget( "visibility_setting_option" ).SetUserID( OptionAccessType.AT_OPTIONS_VISIBILITY_COMBO );
- m_Root.FindAnyWidget( "object_visibility_setting_option" ).SetUserID( OptionAccessType.AT_OPTIONS_OBJECT_VISIBILITY_COMBO );
-
- //Rendering
- m_Root.FindAnyWidget( "texture_filtering_setting_option" ).SetUserID( OptionAccessType.AT_ANISO_DETAIL );
- m_Root.FindAnyWidget( "terrain_surface_detail_setting_option" ).SetUserID( OptionAccessType.AT_OPTIONS_TERRAIN_SHADER );
- m_Root.FindAnyWidget( "ppaa_setting_option" ).SetUserID( OptionAccessType.AT_OPTIONS_FXAA_VALUE );
- m_Root.FindAnyWidget( "hwaa_setting_option" ).SetUserID( OptionAccessType.AT_FSAA_DETAIL );
- m_Root.FindAnyWidget( "atoc_setting_option" ).SetUserID( OptionAccessType.AT_ATOC_DETAIL );
- m_Root.FindAnyWidget( "ao_setting_option" ).SetUserID( OptionAccessType.AT_AMBIENT_OCCLUSION );
- m_Root.FindAnyWidget( "pp_setting_option" ).SetUserID( OptionAccessType.AT_POSTPROCESS_EFFECTS );
- m_Root.FindAnyWidget( "ssr_setting_option" ).SetUserID( OptionAccessType.AT_WATER_DETAIL );
- #endif
-
- FillTextMap();
- InitSelectors();
- RefreshCustom();
- GetGame().BeginOptionsVideo();
-
- float x, y, y2;
- m_Root.FindAnyWidget( "video_settings_scroll" ).GetScreenSize( x, y );
- m_Root.FindAnyWidget( "video_settings_root" ).GetScreenSize( x, y2 );
- int f = ( y2 > y );
- m_Root.FindAnyWidget( "video_settings_scroll" ).SetAlpha( f );
-
- m_Root.SetHandler( this );
- }
-
- void ~OptionsMenuVideo()
- {
- GetGame().EndOptionsVideo();
- }
-
- void InitSelectors()
- {
- #ifdef PLATFORM_CONSOLE
- #ifdef PLATFORM_PS4
- array<string> opt1 = { "#STR_ENABLED", "#STR_DISABLED", "#STR_SELECTIVE" };
- m_FlipModeSelector = new OptionSelectorMultistate( m_Root.FindAnyWidget( "vsync_setting_option" ), m_FlipModeOption.GetIndex(), this, false, opt1 );
- #endif
- #else
- array<string> opt1 = { "#options_controls_disabled", "#options_controls_enabled" };
- array<string> opt2 = { "#options_video_fullscreen", "#options_video_windowed" };
- array<string> opt3 = { "#options_video_low", "#options_video_medium", "#options_video_high" };
- array<string> opt4 = { "#options_video_poor", "#options_video_low", "#options_video_medium", "#options_video_high", "#options_video_extreme" };
- array<string> opt41 = { "#options_video_low", "#options_video_medium", "#options_video_high", "#options_video_extreme" };
- array<string> opt6 = { "#options_controls_disabled", "#options_video_low", "#options_video_medium", "#options_video_high", "#options_video_extreme" };
- array<string> opt7 = { "#options_controls_disabled", "#options_video_low", "#options_video_medium", "#options_video_high" };
- array<string> opt9 = { "#options_controls_disabled", "#options_video_low", "#options_video_high" };
-
-
- //Overall
- m_OverallQualitySelector = OptionSelectorMultistate.NewFromAccess( m_Root.FindAnyWidget( "overall_quality_setting_option" ), m_OverallQualityOption, this, false );
-
- //Screen
- m_DisplayModeSelector = new OptionSelectorMultistate( m_Root.FindAnyWidget( "display_mode_setting_option" ), m_DisplayModeOption.GetIndex(), this, false, opt2 );
- m_ResolutionSelector = OptionSelectorMultistate.NewFromAccess( m_Root.FindAnyWidget( "resolution_setting_option" ), m_ResolutionOption, this, false );
- m_BrightnessSelector = new OptionSelectorSlider( m_Root.FindAnyWidget( "brightness_setting_option" ), m_BrightnessOption.ReadValue(), this, false, m_BrightnessOption.GetMin(), m_BrightnessOption.GetMax() );
- m_VSyncSelector = new OptionSelectorMultistate( m_Root.FindAnyWidget( "vsync_setting_option" ), m_VSyncOption.GetIndex(), this, false, opt1 );
- //m_ColorDepthSelector = new OptionSelectorMultistate( m_Root.FindAnyWidget( "color_depth_setting_option" ), m_ColorDepthOption.GetIndex(), this, false, opt3 );
-
- //Scene
- m_ObjectDetailSelector = OptionSelectorMultistate.NewFromAccess( m_Root.FindAnyWidget( "object_detail_setting_option" ), m_ObjectDetailOption, this, false );
- m_TerrainDetailSelector = OptionSelectorMultistate.NewFromAccess( m_Root.FindAnyWidget( "terrain_detail_setting_option" ), m_TerrainDetailOption, this, false );
- m_TextureDetailSelector = OptionSelectorMultistate.NewFromAccess( m_Root.FindAnyWidget( "texture_detail_setting_option" ), m_TextureDetailOption, this, false );
- m_ShadowDetailSelector = new OptionSelectorMultistate( m_Root.FindAnyWidget( "shadow_detail_setting_option" ), m_ShadowDetailOption.GetIndex(), this, false, opt4 );
- m_VisibilitySelector = OptionSelectorMultistate.NewFromAccess( m_Root.FindAnyWidget( "visibility_setting_option" ), m_VisibilityOption, this, false );
- m_ObjectVisibilitySelector = OptionSelectorMultistate.NewFromAccess( m_Root.FindAnyWidget( "object_visibility_setting_option" ), m_ObjectVisibilityOption, this, false );
- //Rendering
- m_TextureFilteringSelector = new OptionSelectorMultistate( m_Root.FindAnyWidget( "texture_filtering_setting_option" ), m_TextureFilteringOption.GetIndex(), this, false, opt3 );
- m_TerrainSurfaceDetailSelector = new OptionSelectorMultistate( m_Root.FindAnyWidget( "terrain_surface_detail_setting_option" ), m_TerrainSurfaceDetailOption.GetIndex(), this, false, opt41 );
-
- m_PPAASelector = new OptionSelectorMultistate( m_Root.FindAnyWidget( "ppaa_setting_option" ), m_PPAAOption.GetIndex(), this, false, opt6 );
- m_HWAASelector = new OptionSelectorMultistate( m_Root.FindAnyWidget( "hwaa_setting_option" ), m_HWAAOption.GetIndex(), this, false, opt7 );
- m_ATOCSelector = new OptionSelectorMultistate( m_Root.FindAnyWidget( "atoc_setting_option" ), m_ATOCOption.GetIndex(), this, false, opt1 );
- m_AOSelector = new OptionSelectorMultistate( m_Root.FindAnyWidget( "ao_setting_option" ), m_AOOption.GetIndex(), this, false, opt6 );
- m_PPQualitySelector = new OptionSelectorMultistate( m_Root.FindAnyWidget( "pp_setting_option" ), m_PPQualityOption.GetIndex(), this, false, opt3 );
- m_SSRQualitySelector = new OptionSelectorMultistate( m_Root.FindAnyWidget( "ssr_setting_option" ), m_SSRQualityOption.GetIndex(), this, false, opt9 );
- #endif
-
- #ifdef PLATFORM_CONSOLE
- #ifdef PLATFORM_PS4
- m_FlipModeSelector.m_OptionChanged.Insert( OnFlipModeChanged );
- #endif
- #else
- //Overall
- m_OverallQualitySelector.m_OptionChanged.Insert( OnOverallQualityChanged );
-
- //Screen
- m_DisplayModeSelector.m_OptionChanged.Insert( OnDisplayModeChanged );
- m_ResolutionSelector.m_OptionChanged.Insert( OnResolutionChanged );
- m_BrightnessSelector.m_OptionChanged.Insert( OnBrightnessChanged );
- m_VSyncSelector.m_OptionChanged.Insert( OnVSyncChanged );
- //m_ColorDepthSelector.m_OptionChanged.Insert( OnColorDepthChanged );
-
- //Scene
- m_ObjectDetailSelector.m_OptionChanged.Insert( OnObjectDetailChanged );
- m_TerrainDetailSelector.m_OptionChanged.Insert( OnTerrainDetailChanged );
- m_TextureDetailSelector.m_OptionChanged.Insert( OnTextureDetailChanged );
- m_ShadowDetailSelector.m_OptionChanged.Insert( OnShadowDetailChanged );
- m_VisibilitySelector.m_OptionChanged.Insert( OnVisibilityChanged );
- m_ObjectVisibilitySelector.m_OptionChanged.Insert( OnObjectVisibilityChanged );
-
- //Rendering
- m_TextureFilteringSelector.m_OptionChanged.Insert( OnTextureFilteringChanged );
- m_TerrainSurfaceDetailSelector.m_OptionChanged.Insert( OnTerrainSurfaceDetailChanged );
- m_PPAASelector.m_OptionChanged.Insert( OnPPAAChanged );
- m_HWAASelector.m_OptionChanged.Insert( OnHWAAChanged );
- m_ATOCSelector.m_OptionChanged.Insert( OnATOCChanged );
- m_AOSelector.m_OptionChanged.Insert( OnAOChanged );
- m_PPQualitySelector.m_OptionChanged.Insert( OnPPQualityChanged );
- m_SSRQualitySelector.m_OptionChanged.Insert( OnSSRQualityChanged );
- #endif
- }
-
- string GetLayoutName()
- {
- #ifdef PLATFORM_PS4
- return "gui/layouts/new_ui/options/ps/video_tab.layout";
- #else
- #ifdef PLATFORM_WINDOWS
- return "gui/layouts/new_ui/options/pc/video_tab.layout";
- #endif
- #endif
- }
-
- void Focus()
- {
- #ifdef PLATFORM_PS4
- if (m_FlipModeSelector)
- {
- SetFocus( m_FlipModeSelector.GetParent() );
- }
- #endif
- }
-
- void ReloadOptions()
- {
- m_Menu.ReloadOptions();
- }
-
- bool IsChanged()
- {
- return false;
- }
-
- void Apply()
- {
-
- }
-
- void Revert()
- {
- #ifndef PLATFORM_CONSOLE
- m_DisplayModeSelector.SetValue( m_DisplayModeOption.GetIndex(), false );
- m_ResolutionSelector.SetValue( m_ResolutionOption.GetIndex(), false );
- m_BrightnessSelector.SetValue( m_BrightnessOption.ReadValue(), false );
- m_VSyncSelector.SetValue( m_VSyncOption.GetIndex(), false );
- //m_ColorDepthSelector.SetValue( m_ColorDepthOption.GetIndex(), false );
- m_OverallQualitySelector.SetValue( m_OverallQualityOption.GetIndex(), false );
- #endif
-
- RefreshCustom();
- #ifndef PLATFORM_CONSOLE
- m_OverallQualitySelector.SetValue( m_OverallQualityOption.GetIndex(), false );
- #endif
- }
-
- void SetToDefaults()
- {
- #ifdef PLATFORM_CONSOLE
- #ifdef PLATFORM_PS4
- m_FlipModeSelector.SetValue( m_FlipModeOption.GetDefaultIndex(), false );
- #endif
- #else
- m_DisplayModeSelector.SetValue( m_DisplayModeOption.GetDefaultIndex(), false );
- m_ResolutionSelector.SetValue( m_ResolutionOption.GetDefaultIndex(), false );
- m_BrightnessSelector.SetValue( m_BrightnessOption.GetDefault(), false );
- m_VSyncSelector.SetValue( m_VSyncOption.GetDefaultIndex(), false );
- int idx = m_OverallQualityOption.GetDefaultIndex();
- m_OverallQualitySelector.SetValue( m_OverallQualityOption.GetDefaultIndex(), true );
- #endif
-
- RefreshCustom();
- //DefaultValuesToCustom();
- }
-
- void SetOptions( GameOptions options )
- {
- m_Options = options;
-
- #ifdef PLATFORM_CONSOLE
- #ifdef PLATFORM_PS4
- m_FlipModeOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_FLIPMODE ) );
- #endif
- #else
- //Overall
- m_OverallQualityOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_QUALITY_PREFERENCE ) );
-
- //Screen
- m_DisplayModeOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_DISPLAY_MODE ) );
- m_ResolutionOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_RESOLUTION ) );
- m_BrightnessOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER ) );
- m_VSyncOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_VSYNC_VALUE ) );
- //m_ColorDepthOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_HDR_DETAIL ) );
-
- //Scene
- m_ObjectDetailOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OBJECTS_DETAIL ) );
- m_TerrainDetailOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_TERRAIN ) );
- m_TextureDetailOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_TEXTURE_DETAIL ) );
- m_ShadowDetailOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_SHADOW_DETAIL ) );
- m_VisibilityOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_VISIBILITY_COMBO ) );
- m_ObjectVisibilityOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_OBJECT_VISIBILITY_COMBO ) );
-
- //Rendering
- m_TextureFilteringOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_ANISO_DETAIL ) );
- m_TerrainSurfaceDetailOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_TERRAIN_SHADER ) );
-
- m_PPAAOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_FXAA_VALUE ) );
- m_HWAAOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_FSAA_DETAIL ) );
- m_ATOCOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_ATOC_DETAIL ) );
- m_AOOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_AMBIENT_OCCLUSION ) );
- m_PPQualityOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_POSTPROCESS_EFFECTS ) );
- m_SSRQualityOption = ListOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_WATER_DETAIL ) );
- #endif
- }
-
- void ToggleDependentOptions(int mode, bool state)
- {
- }
-
- void InitDependentOptionsVisibility()
- {
- }
-
- void RefreshCustom()
- {
- #ifdef PLATFORM_CONSOLE
- #ifdef PLATFORM_PS4
- m_FlipModeSelector.SetValue( m_FlipModeOption.GetIndex(), false );
- #endif
- #else
- //Scene
- m_ObjectDetailSelector.SetValue( m_ObjectDetailOption.GetIndex(), false );
- m_TerrainDetailSelector.SetValue( m_TerrainDetailOption.GetIndex(), false );
- m_TextureDetailSelector.SetValue( m_TextureDetailOption.GetIndex(), false );
- m_ShadowDetailSelector.SetValue( m_ShadowDetailOption.GetIndex(), false );
- m_VisibilitySelector.SetValue( m_VisibilityOption.GetIndex(), false );
- m_ObjectVisibilitySelector.SetValue( m_ObjectVisibilityOption.GetIndex(), false );
-
- //Rendering
- m_TextureFilteringSelector.SetValue( m_TextureFilteringOption.GetIndex(), false );
- m_TerrainSurfaceDetailSelector.SetValue( m_TerrainSurfaceDetailOption.GetIndex(), false );
- m_PPAASelector.SetValue( m_PPAAOption.GetIndex(), false );
- m_HWAASelector.SetValue( m_HWAAOption.GetIndex(), false );
- if ( m_HWAAOption.GetIndex() == 0 )
- {
- m_ATOCSelector.Disable();
- }
- else
- {
- m_ATOCSelector.Enable();
- }
- m_ATOCSelector.SetValue( m_ATOCOption.GetIndex(), false );
- m_AOSelector.SetValue( m_AOOption.GetIndex(), false );
- m_PPQualitySelector.SetValue( m_PPQualityOption.GetIndex(), false );
- m_SSRQualitySelector.SetValue( m_SSRQualityOption.GetIndex(), false );
- #endif
- }
-
- override bool OnMouseEnter( Widget w, int x, int y )
- {
- if ( w && w.IsInherited( ScrollWidget ) )
- {
- return false;
- }
-
- m_Menu.ColorHighlight( w );
-
- return true;
- }
-
- override bool OnMouseLeave( Widget w, Widget enterW, int x, int y )
- {
- if ( w && w.IsInherited( ScrollWidget ) )
- {
- return false;
- }
-
- m_Menu.ColorNormal( w );
- return true;
- }
-
- void OnOptionChanged()
- {
- #ifndef PLATFORM_CONSOLE
- int customPresetIndex = m_OverallQualityOption.GetItemsCount() - 1;
- if ( m_OverallQualityOption.GetIndex() != customPresetIndex )
- {
- m_OverallQualitySelector.SetValue( customPresetIndex );
- }
- #endif
- }
-
- #ifdef PLATFORM_CONSOLE
- #ifdef PLATFORM_PS4
- void OnFlipModeChanged( int value )
- {
- m_FlipModeOption.SetIndex( value );
- OnOptionChanged();
- m_Menu.OnChanged();
- }
- #endif
- #else
- void OnOverallQualityChanged( int value )
- {
- m_OverallQualityOption.SetIndex( value );
- m_OverallQualityOption.Test(); //here's the bastard!
- m_Options.Test();
- //SetOptions(m_Options);
-
- ReloadOptions();
-
- //InitSelectors();
- m_OverallQualityOption.SetIndex( value );
- RefreshCustom();
- m_Menu.OnChanged();
- }
-
- void OnDisplayModeChanged( int value )
- {
- m_DisplayModeOption.SetIndex( value );
- m_Menu.OnChanged();
- }
-
- void OnResolutionChanged( int value )
- {
- m_ResolutionOption.SetIndex( value );
- m_Menu.OnChanged();
- }
-
- void OnBrightnessChanged( float value )
- {
- m_BrightnessOption.WriteValue( value );
- m_Menu.OnChanged();
- }
-
- void OnVSyncChanged( float value )
- {
- m_VSyncOption.SetIndex( value );
- m_Menu.OnChanged();
- }
-
- void OnColorDepthChanged( int value )
- {
- //m_ColorDepthOption.SetIndex( value );
- m_Menu.OnChanged();
- }
-
- void OnObjectDetailChanged( int value )
- {
- m_ObjectDetailOption.SetIndex( value );
- OnOptionChanged();
- m_Menu.OnChanged();
- }
-
- void OnTerrainDetailChanged( int value )
- {
- m_TerrainDetailOption.SetIndex( value );
- OnOptionChanged();
- m_Menu.OnChanged();
- }
-
- void OnTextureDetailChanged( int value )
- {
- m_TextureDetailOption.SetIndex( value );
- OnOptionChanged();
- m_Menu.OnChanged();
- }
-
- void OnShadowDetailChanged( int value )
- {
- m_ShadowDetailOption.SetIndex( value );
- OnOptionChanged();
- m_Menu.OnChanged();
- }
-
- void OnVisibilityChanged( int value )
- {
- m_VisibilityOption.SetIndex( value );
- OnOptionChanged();
- m_Menu.OnChanged();
- }
-
- void OnObjectVisibilityChanged( int value )
- {
- m_ObjectVisibilityOption.SetIndex( value );
- OnOptionChanged();
- m_Menu.OnChanged();
- }
-
- void OnTextureFilteringChanged( int value )
- {
- m_TextureFilteringOption.SetIndex( value );
- OnOptionChanged();
- m_Menu.OnChanged();
- }
-
- void OnTerrainSurfaceDetailChanged( int value )
- {
- m_TerrainSurfaceDetailOption.SetIndex( value );
- OnOptionChanged();
- m_Menu.OnChanged();
- }
-
- void OnPPAAChanged( int value )
- {
- m_PPAAOption.SetIndex( value );
- OnOptionChanged();
- m_Menu.OnChanged();
- }
-
- void OnHWAAChanged( int value )
- {
- m_HWAAOption.SetIndex( value );
- if ( value == 0 )
- {
- m_ATOCSelector.Disable();
- }
- else
- {
- m_ATOCSelector.Enable();
- // with HWAA enabled, reapply last AToC option as it depends on HWAA
- int atoc = m_ATOCSelector.GetValue();
- if (atoc)
- {
- m_ATOCSelector.SetValue(atoc);
- }
- }
- OnOptionChanged();
- m_Menu.OnChanged();
- }
-
- void OnATOCChanged( int value )
- {
- m_ATOCOption.SetIndex( value );
- OnOptionChanged();
- m_Menu.OnChanged();
- }
-
- void OnAOChanged( int value )
- {
- m_AOOption.SetIndex( value );
- OnOptionChanged();
- m_Menu.OnChanged();
- }
-
- void OnPPQualityChanged( int value )
- {
- m_PPQualityOption.SetIndex( value );
- OnOptionChanged();
- m_Menu.OnChanged();
- }
-
- void OnSSRQualityChanged( int value )
- {
- m_SSRQualityOption.SetIndex( value );
- OnOptionChanged();
- m_Menu.OnChanged();
- }
- #endif
-
- override bool OnFocus( Widget w, int x, int y )
- {
- OptionsMenu menu = OptionsMenu.Cast( GetGame().GetUIManager().GetMenu() );
- if ( menu )
- menu.OnFocus( w, x, y );
- if ( w )
- {
- if (TextMapUpdateWidget(w.GetUserID()))
- {
- return true;
- }
-
- if ( w.IsInherited( SliderWidget ) )
- {
- return true;
- }
- }
- m_DetailsRoot.Show( false );
- return ( w != null );
- }
-
- bool TextMapUpdateWidget(int key)
- {
- bool connectivityInfoShown = key == OptionIDsScript.OPTION_CONNECTIVITY_INFO;
- Param2<string, string> p;
- Param tmp = m_TextMap.Get(key);
-
- m_DetailsBodyDefault.Show(!connectivityInfoShown);
- m_DetailsBodyConnectivity.Show(connectivityInfoShown);
-
- if (Class.CastTo(p,tmp))
- {
- m_DetailsRoot.Show(true);
- m_DetailsText.Show(true);
- m_DetailsLabel.SetText(p.param1);
- m_DetailsText.SetText(p.param2);
-
- m_DetailsText.Update();
- m_DetailsLabel.Update();
- m_DetailsRoot.Update();
- m_DetailsBodyConnectivity.Update(); //...
- return true;
- }
- return false;
- }
-
- void FillTextMap()
- {
- m_TextMap = new map<int, ref Param2<string, string>>;
-
- #ifdef PLATFORM_CONSOLE
- #ifdef PLATFORM_PS4
- m_TextMap.Insert( OptionAccessType.AT_OPTIONS_FLIPMODE, new Param2<string, string>( "#options_video_V-sync", "#options_video_V-sync_desc" ) );
- #endif
- #else
- m_TextMap.Insert( OptionAccessType.AT_QUALITY_PREFERENCE, new Param2<string, string>( "#options_video_quality", "#options_video_quality_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_OPTIONS_DISPLAY_MODE, new Param2<string, string>( "#options_video_display_mode", "#options_video_display_mode_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_OPTIONS_RESOLUTION, new Param2<string, string>( "#options_video_resolution", "#options_video_resolution_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER, new Param2<string, string>( "#options_video_brightness", "#options_video_brightness_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_VSYNC_VALUE, new Param2<string, string>( "#options_video_V-sync", "#options_video_V-sync_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_HDR_DETAIL, new Param2<string, string>( "#options_video_color_depth", "#options_video_color_depth_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_OBJECTS_DETAIL, new Param2<string, string>( "#options_video_object_detail", "#options_video_object_detail_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_OPTIONS_TERRAIN, new Param2<string, string>( "#options_video_terrain_detail", "#options_video_terrain_detail_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_TEXTURE_DETAIL, new Param2<string, string>( "#options_video_texture_detail", "#options_video_texture_detail_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_SHADOW_DETAIL, new Param2<string, string>( "#options_video_shadow_detail", "#options_video_shadow_detail_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_ANISO_DETAIL, new Param2<string, string>( "#options_video_texture_filtering", "#options_video_texture_filtering_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_OPTIONS_TERRAIN_SHADER, new Param2<string, string>( "#options_video_terrain_surface_detail", "#options_video_terrain_surface_detail_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_OPTIONS_FXAA_VALUE, new Param2<string, string>( "#options_video_anti-aliasing", "#options_video_anti-aliasing_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_FSAA_DETAIL, new Param2<string, string>( "#options_video_anti-aliasing_hardware", "#options_video_anti-aliasing_hardware_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_ATOC_DETAIL, new Param2<string, string>( "#options_video_foliage_smoothing", "#options_video_foliage_smoothing_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_AMBIENT_OCCLUSION, new Param2<string, string>( "#options_video_ambient_occlusion", "#options_video_ambient_occlusion_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_POSTPROCESS_EFFECTS, new Param2<string, string>( "#options_video_post_process", "#options_video_post_process_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_WATER_DETAIL, new Param2<string, string>( "#STR_option_video_ssr_quality_tip_header", "#STR_option_video_ssr_quality_tip" ) );
- m_TextMap.Insert( OptionAccessType.AT_OPTIONS_VISIBILITY_COMBO, new Param2<string, string>( "#STR_option_video_visibility", "#STR_option_video_visibility_desc" ) );
- m_TextMap.Insert( OptionAccessType.AT_OPTIONS_OBJECT_VISIBILITY_COMBO, new Param2<string, string>( "#STR_option_video_objectvisibility", "#STR_option_video_objectvisibility_desc" ) );
- #endif
- }
- }
|