DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
OptionsMenuGame.c
См. документацию.
1class OptionsMenuGame extends ScriptedWidgetEventHandler
2{
3 private const float HUD_BRIGHTNESS_MIN = -1.0;
4 private const float HUD_BRIGHTNESS_MAX = 0.0;
5
6 protected Widget m_Root;
7
8 protected Widget m_SettingsRoot;
9 protected Widget m_DetailsRoot;
12 protected TextWidget m_DetailsLabel;
14 protected ButtonWidget m_QuickbarButton;
15
16 protected NumericOptionsAccess m_FOVOption;
17 protected ListOptionsAccess m_LanguageOption;
18 protected ListOptionsAccess m_PauseOption;
19 #ifdef PLATFORM_CONSOLE
20 protected NumericOptionsAccess m_BrightnessOption;
21 protected ref OptionSelectorSlider m_BrightnessSelector;
22 #endif
23
24 protected ref OptionSelectorMultistate m_LanguageSelector;
25 protected ref OptionSelectorSlider m_FOVSelector;
26 protected ref OptionSelectorMultistate m_ShowHUDSelector;
27 protected ref OptionSelectorMultistate m_ShowCrosshairSelector;
28 protected ref OptionSelectorMultistate m_ShowQuickbarSelector;
29 protected ref OptionSelectorMultistate m_ShowHUDVehicleSelector;
30 protected ref OptionSelectorMultistate m_ShowGameSelector;
31 protected ref OptionSelectorMultistate m_ShowAdminSelector;
32 protected ref OptionSelectorMultistate m_ShowPlayerSelector;
33 protected ref OptionSelectorMultistate m_ShowServerInfoSelector;
34 protected ref OptionSelectorMultistate m_BleedingIndication;
35 protected ref OptionSelectorMultistate m_ConnectivityInfo;
36 protected ref OptionSelectorSlider m_HUDBrightnessSelector;
37 protected ref OptionSelectorMultistate m_PauseSelector;
38
39 protected GameOptions m_Options;
40 protected OptionsMenu m_Menu;
41
43
44 void OptionsMenuGame(Widget parent, Widget details_root, GameOptions options, OptionsMenu menu)
45 {
46 m_Root = g_Game.GetWorkspace().CreateWidgets(GetLayoutName(), parent);
47
48 m_DetailsRoot = details_root;
49 m_DetailsBodyDefault = m_DetailsRoot.FindAnyWidget("settings_details_body");
50 m_DetailsBodyConnectivity = m_DetailsRoot.FindAnyWidget("settings_details_body_connectivity");
51 m_DetailsLabel = TextWidget.Cast(m_DetailsRoot.FindAnyWidget("details_label"));
52 m_DetailsText = RichTextWidget.Cast(m_DetailsRoot.FindAnyWidget("details_content"));
53
54 m_Options = options;
55 m_Menu = menu;
56
57 m_FOVOption = NumericOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_FIELD_OF_VIEW));
58 m_LanguageOption = ListOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_LANGUAGE));
59 m_PauseOption = ListOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_PAUSE));
60
61 m_Root.FindAnyWidget("fov_setting_option").SetUserID(OptionAccessType.AT_OPTIONS_FIELD_OF_VIEW);
62 m_Root.FindAnyWidget("hud_setting_option").SetUserID(OptionIDsScript.OPTION_HUD);
63 m_Root.FindAnyWidget("hud_vehicle_setting_option").SetUserID(OptionIDsScript.OPTION_HUD_VEHICLE);
64 m_Root.FindAnyWidget("hud_brightness_setting_option").SetUserID(OptionIDsScript.OPTION_HUD_BRIGHTNESS);
65 m_Root.FindAnyWidget("crosshair_setting_option").SetUserID(OptionIDsScript.OPTION_CROSSHAIR);
66 m_Root.FindAnyWidget("game_setting_option").SetUserID(OptionIDsScript.OPTION_GAME_MESSAGES);
67 m_Root.FindAnyWidget("admin_setting_option").SetUserID(OptionIDsScript.OPTION_ADMIN_MESSAGES);
68 m_Root.FindAnyWidget("player_setting_option").SetUserID(OptionIDsScript.OPTION_PLAYER_MESSAGES);
69 m_Root.FindAnyWidget("language_setting_option").SetUserID(OptionAccessType.AT_OPTIONS_LANGUAGE);
70 m_Root.FindAnyWidget("bleeding_indication_setting_option").SetUserID(OptionIDsScript.OPTION_BLEEDINGINDICATION);
71 m_Root.FindAnyWidget("connectivity_setting_option").SetUserID(OptionIDsScript.OPTION_CONNECTIVITY_INFO);
72
73 #ifdef PLATFORM_CONSOLE
74 m_QuickbarButton = ButtonWidget.Cast(m_Root.FindAnyWidget("quickbar_button"));
75 m_Root.FindAnyWidget("brightness_setting_option").SetUserID(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER);
76 #else
77 m_Root.FindAnyWidget("serverinfo_setting_option").SetUserID(OptionIDsScript.OPTION_SERVER_INFO);
78 #endif
79
81
82 array<string> opt = { "#options_controls_disabled", "#options_controls_enabled" };
83 array<string> opt2 = { "#options_controls_enabled", "#options_controls_disabled" };
85 for (int i = 0; i < m_LanguageOption.GetItemsCount(); ++i)
86 {
87 string text;
88 m_LanguageOption.GetItemText(i, text);
89 opt3.Insert(text);
90 }
91
92 m_LanguageSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("language_setting_option"), m_LanguageOption.GetIndex(), this, false, opt3);
93 m_FOVSelector = new OptionSelectorSlider(m_Root.FindAnyWidget("fov_setting_option"), m_FOVOption.ReadValue(), this, false, m_FOVOption.GetMin(), m_FOVOption.GetMax());
94 m_ShowHUDSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("hud_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD), this, false, opt);
95 m_HUDBrightnessSelector = new OptionSelectorSlider(m_Root.FindAnyWidget("hud_brightness_setting_option"), g_Game.GetProfileOptionFloat(EDayZProfilesOptions.HUD_BRIGHTNESS), this, false, HUD_BRIGHTNESS_MIN, HUD_BRIGHTNESS_MAX);
96 m_ShowCrosshairSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("crosshair_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.CROSSHAIR), this, false, opt);
97 m_ShowGameSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("game_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.GAME_MESSAGES), this, false, opt2);
98 m_ShowAdminSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("admin_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.ADMIN_MESSAGES), this, false, opt2);
99 m_ShowPlayerSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("player_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.PLAYER_MESSAGES), this, false, opt2);
100 m_BleedingIndication = new OptionSelectorMultistate(m_Root.FindAnyWidget("bleeding_indication_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.BLEEDINGINDICATION), this, false, opt);
101 m_ConnectivityInfo = new OptionSelectorMultistate(m_Root.FindAnyWidget("connectivity_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.CONNECTIVITY_INFO), this, false, opt);
102 m_ShowHUDVehicleSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("hud_vehicle_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD_VEHICLE), this, false, opt);
103
104 m_LanguageSelector.m_OptionChanged.Insert(UpdateLanguageOption);
105 m_FOVSelector.m_OptionChanged.Insert(UpdateFOVOption);
106 m_ShowHUDSelector.m_OptionChanged.Insert(UpdateHUDOption);
108 m_ShowCrosshairSelector.m_OptionChanged.Insert(UpdateCrosshairOption);
109 m_ShowGameSelector.m_OptionChanged.Insert(UpdateGameOption);
110 m_ShowAdminSelector.m_OptionChanged.Insert(UpdateAdminOption);
111 m_ShowPlayerSelector.m_OptionChanged.Insert(UpdatePlayerOption);
112 m_BleedingIndication.m_OptionChanged.Insert(UpdateBleedingIndication);
113 m_ConnectivityInfo.m_OptionChanged.Insert(UpdateConnectivityInfo);
114 m_ShowHUDVehicleSelector.m_OptionChanged.Insert(UpdateHUDVehicleOption);
115
116 #ifdef PLATFORM_CONSOLE
117 m_BrightnessOption = NumericOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER));
118 m_BrightnessSelector = new OptionSelectorSlider(m_Root.FindAnyWidget("brightness_setting_option"), m_BrightnessOption.ReadValue(), this, false, m_BrightnessOption.GetMin(), m_BrightnessOption.GetMax());
119 m_BrightnessSelector.m_OptionChanged.Insert(UpdateBrightnessOption);
120 #endif
121
122 #ifdef PLATFORM_MSSTORE
125 #endif
126
127 #ifdef PLATFORM_WINDOWS
128 m_ShowServerInfoSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("serverinfo_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.SERVERINFO_DISPLAY), this, false, opt);
129 m_ShowServerInfoSelector.m_OptionChanged.Insert(UpdateServerInfoOption);
130
133 #endif
134
135 float x, y, y2;
136 m_Root.FindAnyWidget("game_settings_scroll").GetScreenSize(x, y);
137 m_Root.FindAnyWidget("game_settings_root").GetScreenSize(x, y2);
138 int f = (y2 > y);
139 m_Root.FindAnyWidget("game_settings_scroll").SetAlpha(f);
140
141 m_Root.SetHandler(this);
142 m_DetailsRoot.Show(false);
143
145 }
146
147 protected void InitPauseOption()
148 {
149 m_Root.FindAnyWidget("pause_setting_option").SetUserID(OptionAccessType.AT_OPTIONS_PAUSE);
150
151 array<string> opt4 = {"#options_pc_nopause_0", "#options_pc_nopause_1", "#options_pc_nopause_2"};
152 m_PauseSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("pause_setting_option"), m_PauseOption.GetIndex(), this, false, opt4);
153 m_PauseSelector.m_OptionChanged.Insert(UpdatePauseOption);
154 }
155
156 protected void InitQuickbarOption()
157 {
158 m_Root.FindAnyWidget("quickbar_setting_option").SetUserID(OptionIDsScript.OPTION_QUICKBAR);
159
160 array<string> opt = {"#options_controls_disabled", "#options_controls_enabled"};
161 m_ShowQuickbarSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("quickbar_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.QUICKBAR), this, false, opt);
162 m_ShowQuickbarSelector.m_OptionChanged.Insert(UpdateQuickbarOption);
163 }
164
166 {
167 if (m_FOVOption)
168 {
169 m_FOVOption.Revert();
170 g_Game.SetUserFOV(m_FOVOption.ReadValue());
171 }
172
174 }
175
177 {
178 string layoutFile = "gui/layouts/new_ui/options/pc/game_tab.layout";
179
180 #ifdef PLATFORM_MSSTORE
181 layoutFile = "gui/layouts/new_ui/options/msstore/game_tab.layout";
182 #endif
183 #ifdef PLATFORM_XBOX
184 layoutFile = "gui/layouts/new_ui/options/xbox/game_tab.layout";
185 #endif
186 #ifdef PLATFORM_PS4
187 layoutFile = "gui/layouts/new_ui/options/xbox/game_tab.layout";
188 #endif
189
190 return layoutFile;
191 }
192
193 void Focus()
194 {
195 #ifdef PLATFORM_CONSOLE
196 SetFocus(m_LanguageSelector.GetParent());
197 #endif
198 }
199
201 {
202 bool universal = (m_ShowHUDSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD) || m_ShowCrosshairSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.CROSSHAIR));
203 universal = universal || m_HUDBrightnessSelector.GetValue() != g_Game.GetProfileOptionFloat(EDayZProfilesOptions.HUD_BRIGHTNESS);
204 universal = universal || m_ShowHUDVehicleSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD_VEHICLE);
205 universal = universal || m_ShowGameSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.GAME_MESSAGES) || m_ShowAdminSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.ADMIN_MESSAGES);
206 universal = universal || m_ShowPlayerSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.PLAYER_MESSAGES);
207 universal = universal || m_BleedingIndication.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.BLEEDINGINDICATION);
208 universal = universal || m_ConnectivityInfo.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.CONNECTIVITY_INFO);
209 universal = universal || m_LanguageOption.IsChanged();
210
211 #ifdef PLATFORM_XBOX
212 return universal;
213 #endif
214
215 #ifdef PLATFORM_PS4
216 return universal;
217 #endif
218
219 #ifdef PLATFORM_MSSTORE
220 return universal || m_ShowQuickbarSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.QUICKBAR) || m_PauseSelector.GetValue() != m_PauseOption.GetIndex() || m_ShowQuickbarSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.QUICKBAR);
221 #endif
222
224 return universal || m_ShowQuickbarSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.QUICKBAR) || m_ShowServerInfoSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.SERVERINFO_DISPLAY) || m_ShowQuickbarSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.QUICKBAR);
225 }
226
227 void Apply()
228 {
229 IngameHud hud = GetHud();
230 InGameMenu menu = InGameMenu.Cast(g_Game.GetUIManager().FindMenu(MENU_INGAME));
231 MissionGameplay mission = MissionGameplay.Cast(g_Game.GetMission());
232
233 g_Game.SetProfileOptionBool(EDayZProfilesOptions.HUD, m_ShowHUDSelector.GetValue());
234 g_Game.SetProfileOptionBool(EDayZProfilesOptions.CROSSHAIR, m_ShowCrosshairSelector.GetValue());
235 g_Game.SetProfileOptionBool(EDayZProfilesOptions.HUD_VEHICLE, m_ShowHUDVehicleSelector.GetValue());
236 g_Game.SetProfileOptionBool(EDayZProfilesOptions.GAME_MESSAGES, m_ShowGameSelector.GetValue());
237 g_Game.SetProfileOptionBool(EDayZProfilesOptions.ADMIN_MESSAGES, m_ShowAdminSelector.GetValue());
238 g_Game.SetProfileOptionBool(EDayZProfilesOptions.PLAYER_MESSAGES, m_ShowPlayerSelector.GetValue());
239 g_Game.SetProfileOptionFloat(EDayZProfilesOptions.HUD_BRIGHTNESS, m_HUDBrightnessSelector.GetValue());
240
241 #ifdef PLATFORM_WINDOWS
242 g_Game.SetProfileOptionBool(EDayZProfilesOptions.QUICKBAR, m_ShowQuickbarSelector.GetValue());
243 g_Game.SetProfileOptionBool(EDayZProfilesOptions.SERVERINFO_DISPLAY, m_ShowServerInfoSelector.GetValue());
244 #endif
245
246 #ifdef PLATFORM_MSSTORE
247 g_Game.SetProfileOptionBool(EDayZProfilesOptions.QUICKBAR, m_ShowQuickbarSelector.GetValue());
248 #endif
249
250 if (hud)
251 {
252 #ifdef PLATFORM_WINDOWS
253 hud.ShowQuickBar(m_ShowQuickbarSelector.GetValue());
254 #endif
255
256 #ifdef PLATFORM_MSSTORE
257 hud.ShowQuickBar(m_ShowQuickbarSelector.GetValue());
258 #endif
259
260 #ifndef PLATFORM_MSSTORE
261 #ifdef PLATFORM_CONSOLE
262 hud.ShowQuickBar(g_Game.GetInput().IsEnabledMouseAndKeyboardEvenOnServer());
263 #endif
264 #endif
265
266 hud.ShowHud(m_ShowHUDSelector.GetValue());
267 hud.SetVehicleHudDisabled(!m_ShowHUDVehicleSelector.GetValue());
268 }
269
270 bool bleedingIndicationOld = g_Game.GetProfileOptionBool(EDayZProfilesOptions.BLEEDINGINDICATION);
271 bool bleedingIndicationNew = m_BleedingIndication.GetValue();
272 bool connectivityOld = g_Game.GetProfileOptionBool(EDayZProfilesOptions.CONNECTIVITY_INFO);
273 bool connectivityNew = m_ConnectivityInfo.GetValue();
274
275 g_Game.SetProfileOptionBool(EDayZProfilesOptions.BLEEDINGINDICATION, bleedingIndicationNew);
276 g_Game.SetProfileOptionBool(EDayZProfilesOptions.CONNECTIVITY_INFO, connectivityNew);
277
278 if (mission)
279 {
280 //BLEEDINGINDICATION changed
281 if (bleedingIndicationOld != bleedingIndicationNew)
282 {
283 OnBleedingIndicationChanged(bleedingIndicationNew);
284 }
285
286 //CONNECTIVITY_INFO changed
287 if (connectivityOld != connectivityNew)
288 {
289 mission.GetConnectivityInvoker().Invoke(connectivityNew);
290 }
291 }
292
293 #ifndef PLATFORM_CONSOLE
294 if (menu)
295 {
296 menu.SetServerInfoVisibility(m_ShowServerInfoSelector.GetValue());
297 }
298 #endif
299
300 if (m_LanguageOption.IsChanged()) //language changed
301 {
302 if (mission)
303 {
304 mission.ResetGUI();
305 }
306 else
307 {
308 ErrorEx("mission not found!", ErrorExSeverity.INFO);
309 }
310 }
311 }
312
313 void Revert()
314 {
316 m_ShowHUDSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD), false);
317
319
321 m_ShowCrosshairSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.CROSSHAIR), false);
322
324 m_ShowHUDVehicleSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD_VEHICLE), false);
325
326 if (m_FOVOption)
327 {
328 m_FOVSelector.SetValue(m_FOVOption.ReadValue(), false);
329 g_Game.SetUserFOV(m_FOVOption.ReadValue());
330 }
332 m_LanguageSelector.SetValue(m_LanguageOption.GetIndex(), false);
334 m_ShowGameSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.GAME_MESSAGES), false);
336 m_ShowAdminSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.ADMIN_MESSAGES), false);
338 m_ShowPlayerSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.PLAYER_MESSAGES), false);
340 m_BleedingIndication.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.BLEEDINGINDICATION), false);
342 m_ConnectivityInfo.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.CONNECTIVITY_INFO), false);
343
344 #ifdef PLATFORM_CONSOLE
346 m_BrightnessSelector.SetValue(m_BrightnessOption.ReadValue(), false);
347 #endif
348
349 #ifdef PLATFORM_MSSTORE
351 m_ShowQuickbarSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.QUICKBAR), false);
352 if (m_PauseOption)
353 m_PauseSelector.SetValue(m_PauseOption.GetIndex(), false);
354 #endif
355
356 #ifdef PLATFORM_WINDOWS
358 m_ShowQuickbarSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.QUICKBAR), false);
360 m_ShowServerInfoSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.SERVERINFO_DISPLAY), false);
361 if (m_PauseOption)
362 m_PauseSelector.SetValue(m_PauseOption.GetIndex(), false);
363 #endif
364 }
365
367 {
368 g_Game.ResetProfileOptions();
369
371 m_ShowHUDSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.HUD), false);
372
374 {
375 m_HUDBrightnessSelector.SetValue(g_Game.GetProfileOptionDefaultFloat(EDayZProfilesOptions.HUD_BRIGHTNESS), false);
376 g_Game.SetHudBrightness(m_HUDBrightnessSelector.GetValue());
377 }
378
380 m_ShowCrosshairSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.CROSSHAIR), false);
381
383 m_ShowHUDVehicleSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.HUD_VEHICLE), false);
384
385 if (m_FOVOption)
386 {
387 m_FOVOption.WriteValue(m_FOVOption.GetDefault());
388 m_FOVSelector.SetValue(m_FOVOption.ReadValue(), false);
389 g_Game.SetUserFOV(m_FOVOption.GetDefault());
390 }
392 m_ShowGameSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.GAME_MESSAGES), false);
394 m_ShowAdminSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.ADMIN_MESSAGES), false);
396 m_ShowPlayerSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.PLAYER_MESSAGES), false);
398 m_BleedingIndication.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.BLEEDINGINDICATION), false);
400 m_ConnectivityInfo.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.CONNECTIVITY_INFO), false);
401
402 #ifdef PLATFORM_CONSOLE
404 {
405 m_BrightnessOption.WriteValue(m_BrightnessOption.GetDefault());
406 m_BrightnessSelector.SetValue(m_BrightnessOption.GetDefault(), false);
407 }
408 #endif
409
410 #ifdef PLATFORM_MSSTORE
412 m_ShowQuickbarSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.QUICKBAR), false);
413 if (m_PauseOption)
414 {
415 m_PauseOption.SetIndex(m_PauseOption.GetDefaultIndex());
416 m_PauseSelector.SetValue(m_PauseOption.GetIndex(), false);
417 }
418 #endif
419
420 #ifdef PLATFORM_WINDOWS
422 m_ShowQuickbarSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.QUICKBAR), false);
424 m_ShowServerInfoSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.SERVERINFO_DISPLAY), false);
425 if (m_PauseOption)
426 {
427 m_PauseOption.SetIndex(m_PauseOption.GetDefaultIndex());
428 m_PauseSelector.SetValue(m_PauseOption.GetIndex(), false);
429 }
430 #endif
431
433 {
434 m_LanguageOption.SetIndex(m_PauseOption.GetDefaultIndex());
435 m_LanguageSelector.SetValue(m_PauseOption.GetIndex(), false);
436 }
437 }
438
440 {
441 m_Menu.ReloadOptions();
442 }
443
445 {
446 m_Options = options;
447
448 m_FOVOption = NumericOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_FIELD_OF_VIEW));
449 m_LanguageOption = ListOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_LANGUAGE));
450 m_PauseOption = ListOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_PAUSE));
451
452 if (m_FOVSelector)
453 m_FOVSelector.SetValue(m_FOVOption.ReadValue(), false);
454
456 m_LanguageSelector.SetValue(m_LanguageOption.GetIndex(), false);
457
459 m_PauseSelector.SetValue(m_PauseOption.GetIndex(), false);
460
461 #ifdef PLATFORM_CONSOLE
462 m_BrightnessOption = NumericOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER));
464 m_BrightnessSelector.SetValue(m_BrightnessOption.ReadValue(), false);
465 #endif
466 }
467
469 {
470 #ifndef PLATFORM_MSSTORE
471 #ifdef PLATFORM_CONSOLE
472 m_QuickbarButton.Show(false);
473 #endif
474 #endif
475 }
476
477 protected void UpdateLanguageOption(int new_index)
478 {
479 m_LanguageOption.SetIndex(new_index);
480 m_Menu.OnChanged();
481
482 TextMapUpdateWidget(OptionAccessType.AT_OPTIONS_LANGUAGE);
483 }
484
485 protected void UpdatePauseOption(int new_index)
486 {
487 m_PauseOption.SetIndex(new_index);
488 m_Menu.OnChanged();
489 }
490
491 protected void UpdateFOVOption(float new_value)
492 {
493 m_FOVOption.WriteValue(new_value);
494 g_Game.SetUserFOV(new_value);
495 m_Menu.OnChanged();
496 }
497
498 protected void UpdateHUDBrightnessOption(float newValue)
499 {
500 g_Game.SetHudBrightness(newValue);
501 m_Menu.OnChanged();
502 }
503
504 protected void UpdateHUDOption(int new_index)
505 {
506 m_Menu.OnChanged();
507 }
508
509 protected void UpdateBleedingIndication(int new_index)
510 {
511 m_Menu.OnChanged();
512 }
513
514 protected void UpdateConnectivityInfo(int newIndex)
515 {
516 m_Menu.OnChanged();
517 }
518
519 protected void UpdateCrosshairOption(int new_index)
520 {
521 m_Menu.OnChanged();
522 }
523
524 protected void UpdateQuickbarOption(int new_index)
525 {
526 m_Menu.OnChanged();
527 }
528
529 protected void UpdateHUDVehicleOption(int new_index)
530 {
531 m_Menu.OnChanged();
532 }
533
534 protected void UpdateGameOption(int new_index)
535 {
536 m_Menu.OnChanged();
537 }
538
539 protected void UpdateAdminOption(int new_index)
540 {
541 m_Menu.OnChanged();
542 }
543
544 protected void UpdatePlayerOption(int new_index)
545 {
546 m_Menu.OnChanged();
547 }
548
549 protected void UpdateServerInfoOption(int new_index)
550 {
551 m_Menu.OnChanged();
552 }
553
554 IngameHud GetHud()
555 {
556 Mission mission = g_Game.GetMission();
557 if (mission)
558 {
559 IngameHud hud = IngameHud.Cast(mission.GetHud());
560 return hud;
561 }
562 return null;
563 }
564
565#ifdef PLATFORM_CONSOLE
566 void UpdateBrightnessOption(float value)
567 {
568 m_BrightnessOption.WriteValue(value);
569 m_Menu.OnChanged();
570 }
571#endif
572
573 override bool OnMouseEnter(Widget w, int x, int y)
574 {
575 if (w && w.IsInherited(ScrollWidget))
576 {
577 return false;
578 }
579
580 if (w && w.IsInherited(SliderWidget))
581 {
582 return false;
583 }
584
585 m_Menu.ColorHighlight(w);
586
587 return true;
588 }
589
590 override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
591 {
592 if (w && w.IsInherited(ScrollWidget))
593 {
594 return false;
595 }
596
597 m_Menu.ColorNormal(w);
598 return true;
599 }
600
601 override bool OnFocus(Widget w, int x, int y)
602 {
603 if (m_Menu)
604 {
605 m_Menu.OnFocus(w, x, y);
606 }
607
608 if (w)
609 {
610 if (TextMapUpdateWidget(w.GetUserID()))
611 {
612 return true;
613 }
614
615 if (w.IsInherited(SliderWidget))
616 {
617 return true;
618 }
619 }
620 m_DetailsRoot.Show(false);
621 return (w != null);
622 }
623
624 protected void OnBleedingIndicationChanged(bool state)
625 {
626 MissionGameplay mission = MissionGameplay.Cast(g_Game.GetMission());
627 if (mission)
628 {
629 Param1<bool> par = new Param1<bool>(state);
630 mission.GetEffectWidgets().UpdateWidgets(EffectWidgetsTypes.BLEEDING_LAYER,0,par);
631 }
632 }
633
635 {
636 bool connectivityInfoShown = key == OptionIDsScript.OPTION_CONNECTIVITY_INFO;
638 Param tmp = m_TextMap.Get(key);
639
640 m_DetailsBodyDefault.Show(!connectivityInfoShown);
641 m_DetailsBodyConnectivity.Show(connectivityInfoShown);
642
643 if (Class.CastTo(p,tmp))
644 {
645 m_DetailsRoot.Show(true);
646 m_DetailsText.Show(true);
647 m_DetailsLabel.SetText(p.param1);
648 m_DetailsText.SetText(p.param2);
649
650 m_DetailsText.Update();
651 m_DetailsLabel.Update();
652 m_DetailsRoot.Update();
653 m_DetailsBodyConnectivity.Update(); //...
654 return true;
655 }
656 return false;
657 }
658
660 {
662 m_TextMap.Insert(OptionAccessType.AT_OPTIONS_LANGUAGE, new Param2<string, string>("#options_game_select_language", "#options_game_select_language_desc"));
663 m_TextMap.Insert(OptionAccessType.AT_OPTIONS_FIELD_OF_VIEW, new Param2<string, string>("#options_game_field_of_view", "#options_game_field_of_view_desc"));
664 m_TextMap.Insert(OptionIDsScript.OPTION_HUD, new Param2<string, string>("#options_game_show_HUD", "#options_game_show_HUD_desc"));
665 m_TextMap.Insert(OptionIDsScript.OPTION_HUD_VEHICLE, new Param2<string, string>("#options_game_show_HUD_vehicle", "#options_game_show_HUD_vehicle_desc"));
666 m_TextMap.Insert(OptionIDsScript.OPTION_HUD_BRIGHTNESS, new Param2<string, string>("#options_game_hud_brightness", "#options_game_hud_brightness_desc"));
667 m_TextMap.Insert(OptionIDsScript.OPTION_CROSSHAIR, new Param2<string, string>("#options_game_show_crosshair", "#options_game_show_crosshair_desc"));
668 m_TextMap.Insert(OptionIDsScript.OPTION_SERVER_INFO, new Param2<string, string>("#options_game_show_serverinfo", "#options_game_show_serverinfo_desc"));
669 m_TextMap.Insert(OptionIDsScript.OPTION_BLEEDINGINDICATION, new Param2<string, string>("#options_game_show_bleedingindication", "#options_game_show_bleedingindication_desc"));
670 m_TextMap.Insert(OptionIDsScript.OPTION_CONNECTIVITY_INFO, new Param2<string, string>("#options_game_connectivity", ""));
671
672 #ifdef PLATFORM_WINDOWS
673 m_TextMap.Insert(OptionAccessType.AT_OPTIONS_PAUSE, new Param2<string, string>("#layout_options_pc_nopause_title", "#layout_options_pc_nopause_tooltip"));
674 m_TextMap.Insert(OptionIDsScript.OPTION_GAME_MESSAGES, new Param2<string, string>("#options_pc_game_messages", "#options_game_show_game_msg"));
675 m_TextMap.Insert(OptionIDsScript.OPTION_ADMIN_MESSAGES, new Param2<string, string>("#options_pc_admin_mes", "#options_game_show_admin_msg"));
676 m_TextMap.Insert(OptionIDsScript.OPTION_PLAYER_MESSAGES, new Param2<string, string>("#options_pc_player_messages", "#options_game_show_player_msg"));
677 m_TextMap.Insert(OptionIDsScript.OPTION_QUICKBAR, new Param2<string, string>("#options_game_show_quickbar", "#options_game_show_quickbar_desc"));
678 #endif
679
680 #ifdef PLATFORM_MSSTORE
681 m_TextMap.Insert(OptionAccessType.AT_OPTIONS_PAUSE, new Param2<string, string>("#layout_options_pc_nopause_title", "#layout_options_pc_nopause_tooltip"));
682 m_TextMap.Insert(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER, new Param2<string, string>("#options_video_brightness", "#options_video_brightness_desc"));
683 m_TextMap.Insert(OptionIDsScript.OPTION_GAME_MESSAGES, new Param2<string, string>("#options_xbox_game_messages", "#options_game_show_game_msg"));
684 m_TextMap.Insert(OptionIDsScript.OPTION_ADMIN_MESSAGES, new Param2<string, string>("#options_xbox_admin_mes", "#options_game_show_admin_msg"));
685 m_TextMap.Insert(OptionIDsScript.OPTION_PLAYER_MESSAGES, new Param2<string, string>("#options_xbox_player_messages","#options_game_show_player_msg"));
686 m_TextMap.Insert(OptionIDsScript.OPTION_QUICKBAR, new Param2<string, string>("#options_game_show_quickbar", "#options_game_show_quickbar_desc"));
687 #endif
688
689 #ifdef PLATFORM_XBOX
690 m_TextMap.Insert(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER, new Param2<string, string>("#options_video_brightness", "#options_video_brightness_desc"));
691 m_TextMap.Insert(OptionIDsScript.OPTION_GAME_MESSAGES, new Param2<string, string>("#options_xbox_game_messages", "#options_game_show_game_msg"));
692 m_TextMap.Insert(OptionIDsScript.OPTION_ADMIN_MESSAGES, new Param2<string, string>("#options_xbox_admin_mes", "#options_game_show_admin_msg"));
693 m_TextMap.Insert(OptionIDsScript.OPTION_PLAYER_MESSAGES, new Param2<string, string>("#options_xbox_player_messages","#options_game_show_player_msg"));
694 #endif
695
696 #ifdef PLATFORM_PS4
697 m_TextMap.Insert(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER, new Param2<string, string>("#ps4_options_video_brightness", "#ps4_options_video_brightness_desc"));
698 m_TextMap.Insert(OptionIDsScript.OPTION_GAME_MESSAGES, new Param2<string, string>("#ps4_options_game_messages", "#ps4_options_game_show_game_msg"));
699 m_TextMap.Insert(OptionIDsScript.OPTION_ADMIN_MESSAGES, new Param2<string, string>("#ps4_options_admin_mes", "#ps4_options_game_show_admin_msg"));
700 m_TextMap.Insert(OptionIDsScript.OPTION_PLAYER_MESSAGES, new Param2<string, string>("#ps4_options_player_messages","#ps4_options_game_show_player_msg"));
701 #endif
702 }
703
704 private void RevertHUDBrightness()
705 {
707 {
708 m_HUDBrightnessSelector.SetValue(g_Game.GetProfileOptionFloat(EDayZProfilesOptions.HUD_BRIGHTNESS), false);
709 g_Game.SetHudBrightness(m_HUDBrightnessSelector.GetValue());
710 }
711 }
712
714 [Obsolete("1.29: No replacement")]
715 void ToggleDependentOptions(int mode, bool state);
716}
DayZGame g_Game
Определения DayZGame.c:4074
Mission mission
Определения DisplayStatus.c:28
EDayZProfilesOptions
Определения EDayZProfilesOptions.c:2
Icon x
Icon y
ServerBrowserMenuNew m_Menu
Определения ServerBrowserTab.c:37
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения gameplay.c:1461
Mission class.
Определения gameplay.c:686
Определения PPEConstants.c:68
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Определения param.c:12
Определения gameplay.c:317
const float HUD_BRIGHTNESS_MIN
Определения OptionsMenuGame.c:3
GameOptions m_Options
Определения OptionsMenuControls.c:18
Widget m_SettingsRoot
Определения OptionsMenuControls.c:5
ref OptionSelectorMultistate m_ShowCrosshairSelector
Определения OptionsMenuGame.c:27
NumericOptionsAccess m_FOVOption
Определения OptionsMenuGame.c:16
void UpdateCrosshairOption(int new_index)
Определения OptionsMenuGame.c:519
ref OptionSelectorSlider m_HUDBrightnessSelector
Определения OptionsMenuGame.c:36
void UpdateConnectivityInfo(int newIndex)
Определения OptionsMenuGame.c:514
void OptionsMenuGame(Widget parent, Widget details_root, GameOptions options, OptionsMenu menu)
Определения OptionsMenuGame.c:44
void SetToDefaults()
Определения OptionsMenuGame.c:366
void UpdateBleedingIndication(int new_index)
Определения OptionsMenuGame.c:509
void UpdateHUDBrightnessOption(float newValue)
Определения OptionsMenuGame.c:498
Widget m_Root
Определения SizeToChild.c:9
void ToggleDependentOptions(int mode, bool state)
DEPRICATED BELOW.
ref OptionSelectorMultistate m_ShowGameSelector
Определения OptionsMenuGame.c:30
void ~OptionsMenuGame()
Определения OptionsMenuGame.c:165
ref OptionSelectorMultistate m_LanguageSelector
Определения OptionsMenuGame.c:24
ref OptionSelectorMultistate m_BleedingIndication
Определения OptionsMenuGame.c:34
void UpdateQuickbarOption(int new_index)
Определения OptionsMenuGame.c:524
void SetOptions(GameOptions options)
Определения OptionsMenuGame.c:444
void UpdatePauseOption(int new_index)
Определения OptionsMenuGame.c:485
ref OptionSelectorSlider m_FOVSelector
Определения OptionsMenuGame.c:25
ref OptionSelectorMultistate m_ShowHUDVehicleSelector
Определения OptionsMenuGame.c:29
NumericOptionsAccess m_BrightnessOption
Определения OptionsMenuVideo.c:59
ref OptionSelectorMultistate m_ShowQuickbarSelector
Определения OptionsMenuGame.c:28
void UpdateGameOption(int new_index)
Определения OptionsMenuGame.c:534
ref OptionSelectorMultistate m_PauseSelector
Определения OptionsMenuGame.c:37
CameraToolsMenu m_Menu
Определения CTEvent.c:8
void OnBleedingIndicationChanged(bool state)
Определения OptionsMenuGame.c:624
RichTextWidget m_DetailsText
Определения OptionsMenuControls.c:15
void UpdateHUDVehicleOption(int new_index)
Определения OptionsMenuGame.c:529
IngameHud GetHud()
Определения ItemActionsWidget.c:736
ref OptionSelectorMultistate m_ShowServerInfoSelector
Определения OptionsMenuGame.c:33
Widget m_DetailsBodyConnectivity
Определения OptionsMenuControls.c:8
void ReloadOptions()
Определения OptionsMenuGame.c:439
void UpdateHUDOption(int new_index)
Определения OptionsMenuGame.c:504
override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
Определения OptionsMenuGame.c:590
void UpdateLanguageOption(int new_index)
Определения OptionsMenuGame.c:477
Widget m_DetailsBodyDefault
Определения OptionsMenuControls.c:7
bool TextMapUpdateWidget(int key)
Определения OptionsMenuControls.c:371
ref map< int, ref Param2< string, string > > m_TextMap
Определения OptionsMenuControls.c:71
ref OptionSelectorSlider m_BrightnessSelector
Определения OptionsMenuVideo.c:25
void InitPauseOption()
Определения OptionsMenuGame.c:147
ref OptionSelectorMultistate m_ShowAdminSelector
Определения OptionsMenuGame.c:31
void UpdateServerInfoOption(int new_index)
Определения OptionsMenuGame.c:549
ButtonWidget m_QuickbarButton
Определения OptionsMenuGame.c:14
ListOptionsAccess m_PauseOption
Определения OptionsMenuGame.c:18
void UpdatePlayerOption(int new_index)
Определения OptionsMenuGame.c:544
ListOptionsAccess m_LanguageOption
Определения OptionsMenuGame.c:17
override bool OnFocus(Widget w, int x, int y)
Определения OptionsMenuGame.c:601
const float HUD_BRIGHTNESS_MAX
Определения OptionsMenuGame.c:4
override bool OnMouseEnter(Widget w, int x, int y)
Определения OptionsMenuGame.c:573
ref OptionSelectorMultistate m_ShowPlayerSelector
Определения OptionsMenuGame.c:32
void RevertHUDBrightness()
Определения OptionsMenuGame.c:704
ref OptionSelectorMultistate m_ConnectivityInfo
Определения OptionsMenuGame.c:35
ref OptionSelectorMultistate m_ShowHUDSelector
Определения OptionsMenuGame.c:26
void UpdateFOVOption(float new_value)
Определения OptionsMenuGame.c:491
bool IsChanged()
Определения OptionsMenuGame.c:200
void InitQuickbarOption()
Определения OptionsMenuGame.c:156
TextWidget m_DetailsLabel
Определения OptionsMenuControls.c:14
void UpdateAdminOption(int new_index)
Определения OptionsMenuGame.c:539
Deprecated.
Определения EnWidgets.c:657
Определения EnWidgets.c:220
Определения EnWidgets.c:190
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Определения Transport.c:70
OptionIDsScript
Used for script-based game options. For anything C++ based, you would most likely use "Option Access ...
Определения gameplay.c:1293
OptionAccessType
C++ OptionAccessType.
Определения gameplay.c:1224
ErrorExSeverity
Определения EnDebug.c:62
enum ShapeType ErrorEx
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
void Obsolete(string msg="")
Определения EnScript.c:371
const int MENU_INGAME
Определения 3_Game/DayZ/constants.c:184
proto native void SetFocus(Widget w)