1class OptionsMenuVideo
extends ScriptedWidgetEventHandler
5 protected Widget m_SettingsRoot;
7 protected Widget m_DetailsBodyDefault;
8 protected Widget m_DetailsBodyConnectivity;
9 protected TextWidget m_DetailsLabel;
13 protected OptionsMenu
m_Menu;
15 #ifdef PLATFORM_CONSOLE
17 protected ref OptionSelectorMultistate m_FlipModeSelector;
21 protected ref OptionSelectorMultistate m_OverallQualitySelector;
24 protected ref OptionSelectorMultistate m_DisplayModeSelector;
25 protected ref OptionSelectorMultistate m_ResolutionSelector;
26 protected ref OptionSelectorSlider m_BrightnessSelector;
27 protected ref OptionSelectorMultistate m_VSyncSelector;
31 protected ref OptionSelectorMultistate m_ObjectDetailSelector;
32 protected ref OptionSelectorMultistate m_TerrainDetailSelector;
33 protected ref OptionSelectorMultistate m_TextureDetailSelector;
34 protected ref OptionSelectorMultistate m_ShadowDetailSelector;
35 protected ref OptionSelectorMultistate m_VisibilitySelector;
36 protected ref OptionSelectorMultistate m_ObjectVisibilitySelector;
39 protected ref OptionSelectorMultistate m_TextureFilteringSelector;
40 protected ref OptionSelectorMultistate m_TerrainSurfaceDetailSelector;
41 protected ref OptionSelectorMultistate m_PPAASelector;
42 protected ref OptionSelectorMultistate m_HWAASelector;
43 protected ref OptionSelectorMultistate m_ATOCSelector;
44 protected ref OptionSelectorMultistate m_AOSelector;
45 protected ref OptionSelectorMultistate m_PPQualitySelector;
46 protected ref OptionSelectorMultistate m_SSRQualitySelector;
49 #ifdef PLATFORM_CONSOLE
51 protected ref ListOptionsAccess m_FlipModeOption;
55 protected ref ListOptionsAccess m_OverallQualityOption;
58 protected ref ListOptionsAccess m_DisplayModeOption;
59 protected ref ListOptionsAccess m_ResolutionOption;
60 protected ref NumericOptionsAccess m_BrightnessOption;
61 protected ref ListOptionsAccess m_VSyncOption;
65 protected ref ListOptionsAccess m_ObjectDetailOption;
66 protected ref ListOptionsAccess m_TerrainDetailOption;
67 protected ref ListOptionsAccess m_TextureDetailOption;
68 protected ref ListOptionsAccess m_ShadowDetailOption;
69 protected ref ListOptionsAccess m_VisibilityOption;
70 protected ref ListOptionsAccess m_ObjectVisibilityOption;
73 protected ref ListOptionsAccess m_TextureFilteringOption;
74 protected ref ListOptionsAccess m_TerrainSurfaceDetailOption;
75 protected ref ListOptionsAccess m_PPAAOption;
76 protected ref ListOptionsAccess m_HWAAOption;
77 protected ref ListOptionsAccess m_ATOCOption;
78 protected ref ListOptionsAccess m_AOOption;
79 protected ref ListOptionsAccess m_PPQualityOption;
80 protected ref ListOptionsAccess m_SSRQualityOption;
85 void OptionsMenuVideo( Widget parent, Widget details_root,
GameOptions options, OptionsMenu menu )
87 m_Root =
GetGame().GetWorkspace().CreateWidgets( GetLayoutName(), parent );
90 m_DetailsBodyDefault =
m_DetailsRoot.FindAnyWidget(
"settings_details_body");
91 m_DetailsBodyConnectivity =
m_DetailsRoot.FindAnyWidget(
"settings_details_body_connectivity");
92 m_DetailsLabel = TextWidget.Cast(
m_DetailsRoot.FindAnyWidget(
"details_label" ) );
95 SetOptions( options );
98 #ifdef PLATFORM_CONSOLE
103 m_Root.FindAnyWidget(
"overall_quality_setting_option" ).SetUserID(
OptionAccessType.AT_QUALITY_PREFERENCE );
104 m_Root.FindAnyWidget(
"display_mode_setting_option" ).SetUserID(
OptionAccessType.AT_OPTIONS_DISPLAY_MODE );
106 m_Root.FindAnyWidget(
"brightness_setting_option" ).SetUserID(
OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER );
115 m_Root.FindAnyWidget(
"visibility_setting_option" ).SetUserID(
OptionAccessType.AT_OPTIONS_VISIBILITY_COMBO );
116 m_Root.FindAnyWidget(
"object_visibility_setting_option" ).SetUserID(
OptionAccessType.AT_OPTIONS_OBJECT_VISIBILITY_COMBO );
120 m_Root.FindAnyWidget(
"terrain_surface_detail_setting_option" ).SetUserID(
OptionAccessType.AT_OPTIONS_TERRAIN_SHADER );
135 m_Root.FindAnyWidget(
"video_settings_scroll" ).GetScreenSize(
x,
y );
136 m_Root.FindAnyWidget(
"video_settings_root" ).GetScreenSize(
x, y2 );
138 m_Root.FindAnyWidget(
"video_settings_scroll" ).SetAlpha( f );
140 m_Root.SetHandler(
this );
143 void ~OptionsMenuVideo()
150 #ifdef PLATFORM_CONSOLE
152 array<string> opt1 = {
"#STR_ENABLED",
"#STR_DISABLED",
"#STR_SELECTIVE" };
153 m_FlipModeSelector =
new OptionSelectorMultistate(
m_Root.FindAnyWidget(
"vsync_setting_option" ), m_FlipModeOption.GetIndex(),
this,
false, opt1 );
156 array<string> opt1 = {
"#options_controls_disabled",
"#options_controls_enabled" };
157 array<string> opt2 = {
"#options_video_fullscreen",
"#options_video_windowed" };
158 array<string> opt3 = {
"#options_video_low",
"#options_video_medium",
"#options_video_high" };
159 array<string> opt4 = {
"#options_video_poor",
"#options_video_low",
"#options_video_medium",
"#options_video_high",
"#options_video_extreme" };
160 array<string> opt41 = {
"#options_video_low",
"#options_video_medium",
"#options_video_high",
"#options_video_extreme" };
161 array<string> opt6 = {
"#options_controls_disabled",
"#options_video_low",
"#options_video_medium",
"#options_video_high",
"#options_video_extreme" };
162 array<string> opt7 = {
"#options_controls_disabled",
"#options_video_low",
"#options_video_medium",
"#options_video_high" };
163 array<string> opt9 = {
"#options_controls_disabled",
"#options_video_low",
"#options_video_high" };
167 m_OverallQualitySelector = OptionSelectorMultistate.NewFromAccess(
m_Root.FindAnyWidget(
"overall_quality_setting_option" ), m_OverallQualityOption,
this,
false );
170 m_DisplayModeSelector =
new OptionSelectorMultistate(
m_Root.FindAnyWidget(
"display_mode_setting_option" ), m_DisplayModeOption.GetIndex(),
this,
false, opt2 );
171 m_ResolutionSelector = OptionSelectorMultistate.NewFromAccess(
m_Root.FindAnyWidget(
"resolution_setting_option" ), m_ResolutionOption,
this,
false );
172 m_BrightnessSelector =
new OptionSelectorSlider(
m_Root.FindAnyWidget(
"brightness_setting_option" ), m_BrightnessOption.ReadValue(),
this,
false, m_BrightnessOption.GetMin(), m_BrightnessOption.GetMax() );
173 m_VSyncSelector =
new OptionSelectorMultistate(
m_Root.FindAnyWidget(
"vsync_setting_option" ), m_VSyncOption.GetIndex(),
this,
false, opt1 );
177 m_ObjectDetailSelector = OptionSelectorMultistate.NewFromAccess(
m_Root.FindAnyWidget(
"object_detail_setting_option" ), m_ObjectDetailOption,
this,
false );
178 m_TerrainDetailSelector = OptionSelectorMultistate.NewFromAccess(
m_Root.FindAnyWidget(
"terrain_detail_setting_option" ), m_TerrainDetailOption,
this,
false );
179 m_TextureDetailSelector = OptionSelectorMultistate.NewFromAccess(
m_Root.FindAnyWidget(
"texture_detail_setting_option" ), m_TextureDetailOption,
this,
false );
180 m_ShadowDetailSelector =
new OptionSelectorMultistate(
m_Root.FindAnyWidget(
"shadow_detail_setting_option" ), m_ShadowDetailOption.GetIndex(),
this,
false, opt4 );
181 m_VisibilitySelector = OptionSelectorMultistate.NewFromAccess(
m_Root.FindAnyWidget(
"visibility_setting_option" ), m_VisibilityOption,
this,
false );
182 m_ObjectVisibilitySelector = OptionSelectorMultistate.NewFromAccess(
m_Root.FindAnyWidget(
"object_visibility_setting_option" ), m_ObjectVisibilityOption,
this,
false );
184 m_TextureFilteringSelector =
new OptionSelectorMultistate(
m_Root.FindAnyWidget(
"texture_filtering_setting_option" ), m_TextureFilteringOption.GetIndex(),
this,
false, opt3 );
185 m_TerrainSurfaceDetailSelector =
new OptionSelectorMultistate(
m_Root.FindAnyWidget(
"terrain_surface_detail_setting_option" ), m_TerrainSurfaceDetailOption.GetIndex(),
this,
false, opt41 );
187 m_PPAASelector =
new OptionSelectorMultistate(
m_Root.FindAnyWidget(
"ppaa_setting_option" ), m_PPAAOption.GetIndex(),
this,
false, opt6 );
188 m_HWAASelector =
new OptionSelectorMultistate(
m_Root.FindAnyWidget(
"hwaa_setting_option" ), m_HWAAOption.GetIndex(),
this,
false, opt7 );
189 m_ATOCSelector =
new OptionSelectorMultistate(
m_Root.FindAnyWidget(
"atoc_setting_option" ), m_ATOCOption.GetIndex(),
this,
false, opt1 );
190 m_AOSelector =
new OptionSelectorMultistate(
m_Root.FindAnyWidget(
"ao_setting_option" ), m_AOOption.GetIndex(),
this,
false, opt6 );
191 m_PPQualitySelector =
new OptionSelectorMultistate(
m_Root.FindAnyWidget(
"pp_setting_option" ), m_PPQualityOption.GetIndex(),
this,
false, opt3 );
192 m_SSRQualitySelector =
new OptionSelectorMultistate(
m_Root.FindAnyWidget(
"ssr_setting_option" ), m_SSRQualityOption.GetIndex(),
this,
false, opt9 );
195 #ifdef PLATFORM_CONSOLE
197 m_FlipModeSelector.m_OptionChanged.Insert( OnFlipModeChanged );
201 m_OverallQualitySelector.m_OptionChanged.Insert( OnOverallQualityChanged );
204 m_DisplayModeSelector.m_OptionChanged.Insert( OnDisplayModeChanged );
205 m_ResolutionSelector.m_OptionChanged.Insert( OnResolutionChanged );
206 m_BrightnessSelector.m_OptionChanged.Insert( OnBrightnessChanged );
207 m_VSyncSelector.m_OptionChanged.Insert( OnVSyncChanged );
211 m_ObjectDetailSelector.m_OptionChanged.Insert( OnObjectDetailChanged );
212 m_TerrainDetailSelector.m_OptionChanged.Insert( OnTerrainDetailChanged );
213 m_TextureDetailSelector.m_OptionChanged.Insert( OnTextureDetailChanged );
214 m_ShadowDetailSelector.m_OptionChanged.Insert( OnShadowDetailChanged );
215 m_VisibilitySelector.m_OptionChanged.Insert( OnVisibilityChanged );
216 m_ObjectVisibilitySelector.m_OptionChanged.Insert( OnObjectVisibilityChanged );
219 m_TextureFilteringSelector.m_OptionChanged.Insert( OnTextureFilteringChanged );
220 m_TerrainSurfaceDetailSelector.m_OptionChanged.Insert( OnTerrainSurfaceDetailChanged );
221 m_PPAASelector.m_OptionChanged.Insert( OnPPAAChanged );
222 m_HWAASelector.m_OptionChanged.Insert( OnHWAAChanged );
223 m_ATOCSelector.m_OptionChanged.Insert( OnATOCChanged );
224 m_AOSelector.m_OptionChanged.Insert( OnAOChanged );
225 m_PPQualitySelector.m_OptionChanged.Insert( OnPPQualityChanged );
226 m_SSRQualitySelector.m_OptionChanged.Insert( OnSSRQualityChanged );
230 string GetLayoutName()
233 return "gui/layouts/new_ui/options/ps/video_tab.layout";
235 #ifdef PLATFORM_WINDOWS
236 return "gui/layouts/new_ui/options/pc/video_tab.layout";
244 if (m_FlipModeSelector)
246 SetFocus( m_FlipModeSelector.GetParent() );
268 #ifndef PLATFORM_CONSOLE
269 m_DisplayModeSelector.SetValue( m_DisplayModeOption.GetIndex(),
false );
270 m_ResolutionSelector.SetValue( m_ResolutionOption.GetIndex(),
false );
271 m_BrightnessSelector.SetValue( m_BrightnessOption.ReadValue(),
false );
272 m_VSyncSelector.SetValue( m_VSyncOption.GetIndex(),
false );
274 m_OverallQualitySelector.SetValue( m_OverallQualityOption.GetIndex(),
false );
278 #ifndef PLATFORM_CONSOLE
279 m_OverallQualitySelector.SetValue( m_OverallQualityOption.GetIndex(),
false );
285 #ifdef PLATFORM_CONSOLE
287 m_FlipModeSelector.SetValue( m_FlipModeOption.GetDefaultIndex(),
false );
290 m_DisplayModeSelector.SetValue( m_DisplayModeOption.GetDefaultIndex(),
false );
291 m_ResolutionSelector.SetValue( m_ResolutionOption.GetDefaultIndex(),
false );
292 m_BrightnessSelector.SetValue( m_BrightnessOption.GetDefault(),
false );
293 m_VSyncSelector.SetValue( m_VSyncOption.GetDefaultIndex(),
false );
294 int idx = m_OverallQualityOption.GetDefaultIndex();
295 m_OverallQualitySelector.SetValue( m_OverallQualityOption.GetDefaultIndex(),
true );
306 #ifdef PLATFORM_CONSOLE
308 m_FlipModeOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_FLIPMODE ) );
312 m_OverallQualityOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_QUALITY_PREFERENCE ) );
315 m_DisplayModeOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_DISPLAY_MODE ) );
316 m_ResolutionOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_RESOLUTION ) );
317 m_BrightnessOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER ) );
318 m_VSyncOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_VSYNC_VALUE ) );
322 m_ObjectDetailOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OBJECTS_DETAIL ) );
323 m_TerrainDetailOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_TERRAIN ) );
324 m_TextureDetailOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_TEXTURE_DETAIL ) );
325 m_ShadowDetailOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_SHADOW_DETAIL ) );
326 m_VisibilityOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_VISIBILITY_COMBO ) );
327 m_ObjectVisibilityOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_OBJECT_VISIBILITY_COMBO ) );
330 m_TextureFilteringOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_ANISO_DETAIL ) );
331 m_TerrainSurfaceDetailOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_TERRAIN_SHADER ) );
333 m_PPAAOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_FXAA_VALUE ) );
334 m_HWAAOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_FSAA_DETAIL ) );
335 m_ATOCOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_ATOC_DETAIL ) );
336 m_AOOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_AMBIENT_OCCLUSION ) );
337 m_PPQualityOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_POSTPROCESS_EFFECTS ) );
338 m_SSRQualityOption = ListOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_WATER_DETAIL ) );
342 void ToggleDependentOptions(
int mode,
bool state)
346 void InitDependentOptionsVisibility()
352 #ifdef PLATFORM_CONSOLE
354 m_FlipModeSelector.SetValue( m_FlipModeOption.GetIndex(),
false );
358 m_ObjectDetailSelector.SetValue( m_ObjectDetailOption.GetIndex(),
false );
359 m_TerrainDetailSelector.SetValue( m_TerrainDetailOption.GetIndex(),
false );
360 m_TextureDetailSelector.SetValue( m_TextureDetailOption.GetIndex(),
false );
361 m_ShadowDetailSelector.SetValue( m_ShadowDetailOption.GetIndex(),
false );
362 m_VisibilitySelector.SetValue( m_VisibilityOption.GetIndex(),
false );
363 m_ObjectVisibilitySelector.SetValue( m_ObjectVisibilityOption.GetIndex(),
false );
366 m_TextureFilteringSelector.SetValue( m_TextureFilteringOption.GetIndex(),
false );
367 m_TerrainSurfaceDetailSelector.SetValue( m_TerrainSurfaceDetailOption.GetIndex(),
false );
368 m_PPAASelector.SetValue( m_PPAAOption.GetIndex(),
false );
369 m_HWAASelector.SetValue( m_HWAAOption.GetIndex(),
false );
370 if ( m_HWAAOption.GetIndex() == 0 )
372 m_ATOCSelector.Disable();
376 m_ATOCSelector.Enable();
378 m_ATOCSelector.SetValue( m_ATOCOption.GetIndex(),
false );
379 m_AOSelector.SetValue( m_AOOption.GetIndex(),
false );
380 m_PPQualitySelector.SetValue( m_PPQualityOption.GetIndex(),
false );
381 m_SSRQualitySelector.SetValue( m_SSRQualityOption.GetIndex(),
false );
387 if ( w && w.IsInherited( ScrollWidget ) )
392 m_Menu.ColorHighlight( w );
397 override bool OnMouseLeave( Widget w, Widget enterW,
int x,
int y )
399 if ( w && w.IsInherited( ScrollWidget ) )
408 void OnOptionChanged()
410 #ifndef PLATFORM_CONSOLE
411 int customPresetIndex = m_OverallQualityOption.GetItemsCount() - 1;
412 if ( m_OverallQualityOption.GetIndex() != customPresetIndex )
414 m_OverallQualitySelector.SetValue( customPresetIndex );
419 #ifdef PLATFORM_CONSOLE
421 void OnFlipModeChanged(
int value )
423 m_FlipModeOption.SetIndex( value );
429 void OnOverallQualityChanged(
int value )
431 m_OverallQualityOption.SetIndex( value );
432 m_OverallQualityOption.Test();
439 m_OverallQualityOption.SetIndex( value );
444 void OnDisplayModeChanged(
int value )
446 m_DisplayModeOption.SetIndex( value );
450 void OnResolutionChanged(
int value )
452 m_ResolutionOption.SetIndex( value );
456 void OnBrightnessChanged(
float value )
458 m_BrightnessOption.WriteValue( value );
462 void OnVSyncChanged(
float value )
464 m_VSyncOption.SetIndex( value );
468 void OnColorDepthChanged(
int value )
474 void OnObjectDetailChanged(
int value )
476 m_ObjectDetailOption.SetIndex( value );
481 void OnTerrainDetailChanged(
int value )
483 m_TerrainDetailOption.SetIndex( value );
488 void OnTextureDetailChanged(
int value )
490 m_TextureDetailOption.SetIndex( value );
495 void OnShadowDetailChanged(
int value )
497 m_ShadowDetailOption.SetIndex( value );
502 void OnVisibilityChanged(
int value )
504 m_VisibilityOption.SetIndex( value );
509 void OnObjectVisibilityChanged(
int value )
511 m_ObjectVisibilityOption.SetIndex( value );
516 void OnTextureFilteringChanged(
int value )
518 m_TextureFilteringOption.SetIndex( value );
523 void OnTerrainSurfaceDetailChanged(
int value )
525 m_TerrainSurfaceDetailOption.SetIndex( value );
530 void OnPPAAChanged(
int value )
532 m_PPAAOption.SetIndex( value );
537 void OnHWAAChanged(
int value )
539 m_HWAAOption.SetIndex( value );
542 m_ATOCSelector.Disable();
546 m_ATOCSelector.Enable();
548 int atoc = m_ATOCSelector.GetValue();
551 m_ATOCSelector.SetValue(atoc);
558 void OnATOCChanged(
int value )
560 m_ATOCOption.SetIndex( value );
565 void OnAOChanged(
int value )
567 m_AOOption.SetIndex( value );
572 void OnPPQualityChanged(
int value )
574 m_PPQualityOption.SetIndex( value );
579 void OnSSRQualityChanged(
int value )
581 m_SSRQualityOption.SetIndex( value );
587 override bool OnFocus( Widget w,
int x,
int y )
589 OptionsMenu menu = OptionsMenu.Cast(
GetGame().GetUIManager().GetMenu() );
591 menu.OnFocus( w,
x,
y );
594 if (TextMapUpdateWidget(w.GetUserID()))
599 if ( w.IsInherited( SliderWidget ) )
605 return ( w != null );
608 bool TextMapUpdateWidget(
int key)
610 bool connectivityInfoShown = key ==
OptionIDsScript.OPTION_CONNECTIVITY_INFO;
612 Param tmp = m_TextMap.Get(key);
614 m_DetailsBodyDefault.Show(!connectivityInfoShown);
615 m_DetailsBodyConnectivity.Show(connectivityInfoShown);
617 if (
Class.CastTo(p,tmp))
620 m_DetailsText.Show(
true);
621 m_DetailsLabel.SetText(p.param1);
622 m_DetailsText.SetText(p.param2);
624 m_DetailsText.Update();
625 m_DetailsLabel.Update();
627 m_DetailsBodyConnectivity.Update();
637 #ifdef PLATFORM_CONSOLE
661 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_OBJECT_VISIBILITY_COMBO,
new Param2<string, string>(
"#STR_option_video_objectvisibility_title",
"#STR_option_video_objectvisibility_desc" ) );
override bool OnMouseEnter(Widget w, int x, int y)
override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
Super root of all classes in Enforce script.
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
OptionIDsScript
Used for script-based game options. For anything C++ based, you would most likely use "Option Access ...
proto native CGame GetGame()
OptionAccessType
C++ OptionAccessType.
ServerBrowserMenuNew m_Menu
override bool OnFocus(Widget w, int x, int y)