DayZ 1.27
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 ref NumericOptionsAccess m_FOVOption;
17 protected ref ListOptionsAccess m_LanguageOption;
18 protected ref ListOptionsAccess m_PauseOption;
19 #ifdef PLATFORM_CONSOLE
20 protected ref 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 {
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 m_Root.FindAnyWidget("quickbar_setting_option").SetUserID(OptionIDsScript.OPTION_QUICKBAR);
73
74 #ifdef PLATFORM_CONSOLE
75 m_QuickbarButton = ButtonWidget.Cast(m_Root.FindAnyWidget("quickbar_button"));
76 m_Root.FindAnyWidget("brightness_setting_option").SetUserID(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER);
77 #else
78 m_Root.FindAnyWidget("serverinfo_setting_option").SetUserID(OptionIDsScript.OPTION_SERVER_INFO);
79 m_Root.FindAnyWidget("pause_setting_option").SetUserID(OptionAccessType.AT_OPTIONS_PAUSE);
80 #endif
81
83
84 array<string> opt = { "#options_controls_disabled", "#options_controls_enabled" };
85 array<string> opt2 = { "#options_controls_enabled", "#options_controls_disabled" };
87 for (int i = 0; i < m_LanguageOption.GetItemsCount(); ++i)
88 {
89 string text;
90 m_LanguageOption.GetItemText(i, text);
91 opt3.Insert(text);
92 }
93
94 array<string> opt4 = { "#options_pc_nopause_0", "#options_pc_nopause_1", "#options_pc_nopause_2" }; // Pause options menu strings
95
96 m_LanguageSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("language_setting_option"), m_LanguageOption.GetIndex(), this, false, opt3);
97 m_FOVSelector = new OptionSelectorSlider(m_Root.FindAnyWidget("fov_setting_option"), m_FOVOption.ReadValue(), this, false, m_FOVOption.GetMin(), m_FOVOption.GetMax());
98 m_ShowHUDSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("hud_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD), this, false, opt);
99 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);
100 m_ShowCrosshairSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("crosshair_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.CROSSHAIR), this, false, opt);
101 m_ShowGameSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("game_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.GAME_MESSAGES), this, false, opt2);
102 m_ShowAdminSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("admin_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.ADMIN_MESSAGES), this, false, opt2);
103 m_ShowPlayerSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("player_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.PLAYER_MESSAGES), this, false, opt2);
104 m_BleedingIndication = new OptionSelectorMultistate(m_Root.FindAnyWidget("bleeding_indication_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.BLEEDINGINDICATION), this, false, opt);
105 m_ConnectivityInfo = new OptionSelectorMultistate(m_Root.FindAnyWidget("connectivity_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.CONNECTIVITY_INFO), this, false, opt);
106 m_ShowQuickbarSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("quickbar_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.QUICKBAR), this, false, opt);
107 m_ShowHUDVehicleSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("hud_vehicle_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD_VEHICLE), this, false, opt);
108
109 m_LanguageSelector.m_OptionChanged.Insert(UpdateLanguageOption);
110 m_FOVSelector.m_OptionChanged.Insert(UpdateFOVOption);
111 m_ShowHUDSelector.m_OptionChanged.Insert(UpdateHUDOption);
113 m_ShowCrosshairSelector.m_OptionChanged.Insert(UpdateCrosshairOption);
114 m_ShowGameSelector.m_OptionChanged.Insert(UpdateGameOption);
115 m_ShowAdminSelector.m_OptionChanged.Insert(UpdateAdminOption);
116 m_ShowPlayerSelector.m_OptionChanged.Insert(UpdatePlayerOption);
117 m_BleedingIndication.m_OptionChanged.Insert(UpdateBleedingIndication);
118 m_ConnectivityInfo.m_OptionChanged.Insert(UpdateConnectivityInfo);
119 m_ShowQuickbarSelector.m_OptionChanged.Insert(UpdateQuickbarOption);
120 m_ShowHUDVehicleSelector.m_OptionChanged.Insert(UpdateHUDVehicleOption);
121
122 #ifdef PLATFORM_CONSOLE
123 m_BrightnessOption = NumericOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER));
124 m_BrightnessSelector = new OptionSelectorSlider(m_Root.FindAnyWidget("brightness_setting_option"), m_BrightnessOption.ReadValue(), this, false, m_BrightnessOption.GetMin(), m_BrightnessOption.GetMax());
125 m_BrightnessSelector.m_OptionChanged.Insert(UpdateBrightnessOption);
126 #else
127 m_ShowServerInfoSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("serverinfo_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.SERVERINFO_DISPLAY), this, false, opt);
128 m_PauseSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("pause_setting_option"), m_PauseOption.GetIndex(), this, false, opt4);
129
130 m_ShowServerInfoSelector.m_OptionChanged.Insert(UpdateServerInfoOption);
131 m_PauseSelector.m_OptionChanged.Insert(UpdatePauseOption);
132 #endif
133
134 float x, y, y2;
135 m_Root.FindAnyWidget("game_settings_scroll").GetScreenSize(x, y);
136 m_Root.FindAnyWidget("game_settings_root").GetScreenSize(x, y2);
137 int f = (y2 > y);
138 m_Root.FindAnyWidget("game_settings_scroll").SetAlpha(f);
139
140 m_Root.SetHandler(this);
141 m_DetailsRoot.Show(false);
142
144 }
145
147 {
148 if (m_FOVOption)
149 {
150 m_FOVOption.Revert();
151 g_Game.SetUserFOV(m_FOVOption.ReadValue());
152 }
153
155 }
156
158 {
159 #ifdef PLATFORM_CONSOLE
160 return "gui/layouts/new_ui/options/xbox/game_tab.layout";
161 #else
162 return "gui/layouts/new_ui/options/pc/game_tab.layout";
163 #endif
164 }
165
166 void Focus()
167 {
168 #ifdef PLATFORM_CONSOLE
169 SetFocus(m_LanguageSelector.GetParent());
170 #endif
171 }
172
174 {
175 bool universal = (m_ShowHUDSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD) || m_ShowCrosshairSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.CROSSHAIR));
176 universal = universal || m_HUDBrightnessSelector.GetValue() != g_Game.GetProfileOptionFloat(EDayZProfilesOptions.HUD_BRIGHTNESS);
177 universal = universal || m_ShowHUDVehicleSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD_VEHICLE);
178 universal = universal || (m_ShowGameSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.GAME_MESSAGES) || m_ShowAdminSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.ADMIN_MESSAGES));
179 universal = universal || m_ShowPlayerSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.PLAYER_MESSAGES);
180 universal = universal || m_BleedingIndication.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.BLEEDINGINDICATION);
181 universal = universal || m_ConnectivityInfo.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.CONNECTIVITY_INFO);
182 universal = universal || m_LanguageOption.IsChanged();
183
184 #ifdef PLATFORM_CONSOLE
185 return universal;
186 #else
187 return (universal || m_ShowQuickbarSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.QUICKBAR) || m_ShowServerInfoSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.SERVERINFO_DISPLAY));
188 #endif
189 }
190
191 void Apply()
192 {
193 IngameHud hud = GetHud();
194 InGameMenu menu = InGameMenu.Cast(GetGame().GetUIManager().FindMenu(MENU_INGAME));
195 MissionGameplay mission = MissionGameplay.Cast(GetGame().GetMission());
196
197 g_Game.SetProfileOptionBool(EDayZProfilesOptions.HUD, m_ShowHUDSelector.GetValue());
198 g_Game.SetProfileOptionBool(EDayZProfilesOptions.CROSSHAIR, m_ShowCrosshairSelector.GetValue());
199 g_Game.SetProfileOptionBool(EDayZProfilesOptions.HUD_VEHICLE, m_ShowHUDVehicleSelector.GetValue());
200 g_Game.SetProfileOptionBool(EDayZProfilesOptions.GAME_MESSAGES, m_ShowGameSelector.GetValue());
201 g_Game.SetProfileOptionBool(EDayZProfilesOptions.ADMIN_MESSAGES, m_ShowAdminSelector.GetValue());
202 g_Game.SetProfileOptionBool(EDayZProfilesOptions.PLAYER_MESSAGES, m_ShowPlayerSelector.GetValue());
203 g_Game.SetProfileOptionFloat(EDayZProfilesOptions.HUD_BRIGHTNESS, m_HUDBrightnessSelector.GetValue());
204
205 #ifndef PLATFORM_CONSOLE
206 g_Game.SetProfileOptionBool(EDayZProfilesOptions.QUICKBAR, m_ShowQuickbarSelector.GetValue());
207 g_Game.SetProfileOptionBool(EDayZProfilesOptions.SERVERINFO_DISPLAY, m_ShowServerInfoSelector.GetValue());
208 #endif
209
210 if (hud)
211 {
212 #ifndef PLATFORM_CONSOLE
213 hud.ShowQuickBar(m_ShowQuickbarSelector.GetValue());
214 #else
215 hud.ShowQuickBar(GetGame().GetInput().IsEnabledMouseAndKeyboardEvenOnServer());
216 #endif
217 hud.ShowHud(m_ShowHUDSelector.GetValue());
218 hud.SetVehicleHudDisabled(!m_ShowHUDVehicleSelector.GetValue());
219 }
220
221 bool bleedingIndicationOld = g_Game.GetProfileOptionBool(EDayZProfilesOptions.BLEEDINGINDICATION);
222 bool bleedingIndicationNew = m_BleedingIndication.GetValue();
223 bool connectivityOld = g_Game.GetProfileOptionBool(EDayZProfilesOptions.CONNECTIVITY_INFO);
224 bool connectivityNew = m_ConnectivityInfo.GetValue();
225
226 g_Game.SetProfileOptionBool(EDayZProfilesOptions.BLEEDINGINDICATION, bleedingIndicationNew);
227 g_Game.SetProfileOptionBool(EDayZProfilesOptions.CONNECTIVITY_INFO, connectivityNew);
228
229 if (mission)
230 {
231 //BLEEDINGINDICATION changed
232 if (bleedingIndicationOld != bleedingIndicationNew)
233 {
234 OnBleedingIndicationChanged(bleedingIndicationNew);
235 }
236
237 //CONNECTIVITY_INFO changed
238 if (connectivityOld != connectivityNew)
239 {
240 mission.GetConnectivityInvoker().Invoke(connectivityNew);
241 }
242 }
243
244 #ifndef PLATFORM_CONSOLE
245 if (menu)
246 {
247 menu.SetServerInfoVisibility(m_ShowServerInfoSelector.GetValue());
248 }
249 #endif
250
251 if (m_LanguageOption.IsChanged()) //language changed
252 {
253 if (mission)
254 {
255 mission.ResetGUI();
256 }
257 else
258 {
259 ErrorEx("mission not found!", ErrorExSeverity.INFO);
260 }
261 }
262 }
263
264 void Revert()
265 {
267 m_ShowHUDSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD), false);
268
270
272 m_ShowCrosshairSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.CROSSHAIR), false);
273
275 m_ShowHUDVehicleSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD_VEHICLE), false);
276
277 if (m_FOVOption)
278 {
279 m_FOVSelector.SetValue(m_FOVOption.ReadValue(), false);
280 g_Game.SetUserFOV(m_FOVOption.ReadValue());
281 }
283 m_LanguageSelector.SetValue(m_LanguageOption.GetIndex(), false);
285 m_ShowGameSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.GAME_MESSAGES), false);
287 m_ShowAdminSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.ADMIN_MESSAGES), false);
289 m_ShowPlayerSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.PLAYER_MESSAGES), false);
291 m_BleedingIndication.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.BLEEDINGINDICATION), false);
293 m_ConnectivityInfo.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.CONNECTIVITY_INFO), false);
294
295 #ifdef PLATFORM_CONSOLE
297 m_BrightnessSelector.SetValue(m_BrightnessOption.ReadValue(), false);
298 #else
300 m_ShowQuickbarSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.QUICKBAR), false);
302 m_ShowServerInfoSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.SERVERINFO_DISPLAY), false);
303 if (m_PauseOption)
304 {
305 m_PauseSelector.SetValue(m_PauseOption.GetIndex(), false);
306 }
307 #endif
308 }
309
311 {
312 g_Game.ResetProfileOptions();
313
315 m_ShowHUDSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.HUD), false);
316
318 {
319 m_HUDBrightnessSelector.SetValue(g_Game.GetProfileOptionDefaultFloat(EDayZProfilesOptions.HUD_BRIGHTNESS), false);
320 g_Game.SetHudBrightness(m_HUDBrightnessSelector.GetValue());
321 }
322
324 m_ShowCrosshairSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.CROSSHAIR), false);
325
327 m_ShowHUDVehicleSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.HUD_VEHICLE), false);
328
329 if (m_FOVOption)
330 {
331 m_FOVOption.WriteValue(m_FOVOption.GetDefault());
332 m_FOVSelector.SetValue(m_FOVOption.ReadValue(), false);
333 g_Game.SetUserFOV(m_FOVOption.GetDefault());
334 }
336 m_ShowGameSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.GAME_MESSAGES), false);
338 m_ShowAdminSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.ADMIN_MESSAGES), false);
340 m_ShowPlayerSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.PLAYER_MESSAGES), false);
342 m_BleedingIndication.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.BLEEDINGINDICATION), false);
344 m_ConnectivityInfo.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.CONNECTIVITY_INFO), false);
345
346 #ifdef PLATFORM_CONSOLE
348 {
349 m_BrightnessOption.WriteValue(m_BrightnessOption.GetDefault());
350 m_BrightnessSelector.SetValue(m_BrightnessOption.GetDefault(), false);
351 }
352 #else
354 m_ShowQuickbarSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.QUICKBAR), false);
356 m_ShowServerInfoSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.SERVERINFO_DISPLAY), false);
357 if (m_PauseOption)
358 {
359 m_PauseOption.SetIndex(m_PauseOption.GetDefaultIndex());
360 m_PauseSelector.SetValue(m_PauseOption.GetIndex(), false);
361 }
362 #endif
363 }
364
366 {
367 m_Menu.ReloadOptions();
368 }
369
371 {
372 m_Options = options;
373
374 m_FOVOption = NumericOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_FIELD_OF_VIEW));
375 m_LanguageOption = ListOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_LANGUAGE));
376
377 if (m_FOVSelector)
378 m_FOVSelector.SetValue(m_FOVOption.ReadValue(), false);
379
381 m_LanguageSelector.SetValue(m_LanguageOption.GetIndex(), false);
382
383 #ifdef PLATFORM_CONSOLE
384 m_BrightnessOption = NumericOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER));
386 m_BrightnessSelector.SetValue(m_BrightnessOption.ReadValue(), false);
387 #endif
388 }
389
390 void ToggleDependentOptions(int mode, bool state)
391 {
392 }
393
395 {
396 #ifdef PLATFORM_CONSOLE
397 m_QuickbarButton.Show(false);
398 #endif
399 }
400
401 protected void UpdateLanguageOption(int new_index)
402 {
403 m_LanguageOption.SetIndex(new_index);
404 m_Menu.OnChanged();
405
406 TextMapUpdateWidget(OptionAccessType.AT_OPTIONS_LANGUAGE);
407 }
408
409 protected void UpdatePauseOption(int new_index)
410 {
411 m_PauseOption.SetIndex(new_index);
412 m_Menu.OnChanged();
413 }
414
415 protected void UpdateFOVOption(float new_value)
416 {
417 m_FOVOption.WriteValue(new_value);
418 g_Game.SetUserFOV(new_value);
419 m_Menu.OnChanged();
420 }
421
422 protected void UpdateHUDBrightnessOption(float newValue)
423 {
424 g_Game.SetHudBrightness(newValue);
425 m_Menu.OnChanged();
426 }
427
428 protected void UpdateHUDOption(int new_index)
429 {
430 m_Menu.OnChanged();
431 }
432
433 protected void UpdateBleedingIndication(int new_index)
434 {
435 m_Menu.OnChanged();
436 }
437
438 protected void UpdateConnectivityInfo(int newIndex)
439 {
440 m_Menu.OnChanged();
441 }
442
443 protected void UpdateCrosshairOption(int new_index)
444 {
445 m_Menu.OnChanged();
446 }
447
448 protected void UpdateQuickbarOption(int new_index)
449 {
450 m_Menu.OnChanged();
451 }
452
453 protected void UpdateHUDVehicleOption(int new_index)
454 {
455 m_Menu.OnChanged();
456 }
457
458 protected void UpdateGameOption(int new_index)
459 {
460 m_Menu.OnChanged();
461 }
462
463 protected void UpdateAdminOption(int new_index)
464 {
465 m_Menu.OnChanged();
466 }
467
468 protected void UpdatePlayerOption(int new_index)
469 {
470 m_Menu.OnChanged();
471 }
472
473 protected void UpdateServerInfoOption(int new_index)
474 {
475 m_Menu.OnChanged();
476 }
477
478 IngameHud GetHud()
479 {
481 if (mission)
482 {
483 IngameHud hud = IngameHud.Cast(mission.GetHud());
484 return hud;
485 }
486 return null;
487 }
488
489#ifdef PLATFORM_CONSOLE
490 void UpdateBrightnessOption(float value)
491 {
492 m_BrightnessOption.WriteValue(value);
493 m_Menu.OnChanged();
494 }
495#endif
496
497 override bool OnMouseEnter(Widget w, int x, int y)
498 {
499 if (w && w.IsInherited(ScrollWidget))
500 {
501 return false;
502 }
503
504 if (w && w.IsInherited(SliderWidget))
505 {
506 return false;
507 }
508
509 m_Menu.ColorHighlight(w);
510
511 return true;
512 }
513
514 override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
515 {
516 if (w && w.IsInherited(ScrollWidget))
517 {
518 return false;
519 }
520
521 m_Menu.ColorNormal(w);
522 return true;
523 }
524
525 override bool OnFocus(Widget w, int x, int y)
526 {
527 if (m_Menu)
528 {
529 m_Menu.OnFocus(w, x, y);
530 }
531
532 if (w)
533 {
534 if (TextMapUpdateWidget(w.GetUserID()))
535 {
536 return true;
537 }
538
539 if (w.IsInherited(SliderWidget))
540 {
541 return true;
542 }
543 }
544 m_DetailsRoot.Show(false);
545 return (w != null);
546 }
547
548 protected void OnBleedingIndicationChanged(bool state)
549 {
550 MissionGameplay mission = MissionGameplay.Cast(GetGame().GetMission());
551 if (mission)
552 {
553 Param1<bool> par = new Param1<bool>(state);
554 mission.GetEffectWidgets().UpdateWidgets(EffectWidgetsTypes.BLEEDING_LAYER,0,par);
555 }
556 }
557
559 {
560 bool connectivityInfoShown = key == OptionIDsScript.OPTION_CONNECTIVITY_INFO;
562 Param tmp = m_TextMap.Get(key);
563
564 m_DetailsBodyDefault.Show(!connectivityInfoShown);
565 m_DetailsBodyConnectivity.Show(connectivityInfoShown);
566
567 if (Class.CastTo(p,tmp))
568 {
569 m_DetailsRoot.Show(true);
570 m_DetailsText.Show(true);
571 m_DetailsLabel.SetText(p.param1);
572 m_DetailsText.SetText(p.param2);
573
574 m_DetailsText.Update();
575 m_DetailsLabel.Update();
576 m_DetailsRoot.Update();
577 m_DetailsBodyConnectivity.Update(); //...
578 return true;
579 }
580 return false;
581 }
582
584 {
586 m_TextMap.Insert(OptionAccessType.AT_OPTIONS_LANGUAGE, new Param2<string, string>("#options_game_select_language", "#options_game_select_language_desc"));
587 m_TextMap.Insert(OptionAccessType.AT_OPTIONS_FIELD_OF_VIEW, new Param2<string, string>("#options_game_field_of_view", "#options_game_field_of_view_desc"));
588 m_TextMap.Insert(OptionIDsScript.OPTION_HUD, new Param2<string, string>("#options_game_show_HUD", "#options_game_show_HUD_desc"));
589 m_TextMap.Insert(OptionIDsScript.OPTION_HUD_VEHICLE, new Param2<string, string>("#options_game_show_HUD_vehicle", "#options_game_show_HUD_vehicle_desc"));
590 m_TextMap.Insert(OptionIDsScript.OPTION_HUD_BRIGHTNESS, new Param2<string, string>("#options_game_hud_brightness", "#options_game_hud_brightness_desc"));
591 m_TextMap.Insert(OptionIDsScript.OPTION_CROSSHAIR, new Param2<string, string>("#options_game_show_crosshair", "#options_game_show_crosshair_desc"));
592 m_TextMap.Insert(OptionIDsScript.OPTION_QUICKBAR, new Param2<string, string>("#options_game_show_quickbar", "#options_game_show_quickbar_desc"));
593 m_TextMap.Insert(OptionIDsScript.OPTION_SERVER_INFO, new Param2<string, string>("#options_game_show_serverinfo", "#options_game_show_serverinfo_desc"));
594 m_TextMap.Insert(OptionIDsScript.OPTION_BLEEDINGINDICATION, new Param2<string, string>("#options_game_show_bleedingindication", "#options_game_show_bleedingindication_desc"));
595 m_TextMap.Insert(OptionIDsScript.OPTION_CONNECTIVITY_INFO, new Param2<string, string>("#options_game_connectivity", ""));
596
597 #ifdef PLATFORM_WINDOWS
598 m_TextMap.Insert(OptionAccessType.AT_OPTIONS_PAUSE, new Param2<string, string>("#layout_options_pc_nopause_title", "#layout_options_pc_nopause_tooltip"));
599 m_TextMap.Insert(OptionIDsScript.OPTION_GAME_MESSAGES, new Param2<string, string>("#options_pc_game_messages", "#options_game_show_game_msg"));
600 m_TextMap.Insert(OptionIDsScript.OPTION_ADMIN_MESSAGES, new Param2<string, string>("#options_pc_admin_mes", "#options_game_show_admin_msg"));
601 m_TextMap.Insert(OptionIDsScript.OPTION_PLAYER_MESSAGES, new Param2<string, string>("#options_pc_player_messages", "#options_game_show_player_msg"));
602 #else
603 #ifdef PLATFORM_XBOX
604 m_TextMap.Insert(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER, new Param2<string, string>("#options_video_brightness", "#options_video_brightness_desc"));
605 m_TextMap.Insert(OptionIDsScript.OPTION_GAME_MESSAGES, new Param2<string, string>("#options_xbox_game_messages", "#options_game_show_game_msg"));
606 m_TextMap.Insert(OptionIDsScript.OPTION_ADMIN_MESSAGES, new Param2<string, string>("#options_xbox_admin_mes", "#options_game_show_admin_msg"));
607 m_TextMap.Insert(OptionIDsScript.OPTION_PLAYER_MESSAGES, new Param2<string, string>("#options_xbox_player_messages","#options_game_show_player_msg"));
608 #else
609 #ifdef PLATFORM_PS4
610 m_TextMap.Insert(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER, new Param2<string, string>("#ps4_options_video_brightness", "#ps4_options_video_brightness_desc"));
611 m_TextMap.Insert(OptionIDsScript.OPTION_GAME_MESSAGES, new Param2<string, string>("#ps4_options_game_messages", "#ps4_options_game_show_game_msg"));
612 m_TextMap.Insert(OptionIDsScript.OPTION_ADMIN_MESSAGES, new Param2<string, string>("#ps4_options_admin_mes", "#ps4_options_game_show_admin_msg"));
613 m_TextMap.Insert(OptionIDsScript.OPTION_PLAYER_MESSAGES, new Param2<string, string>("#ps4_options_player_messages","#ps4_options_game_show_player_msg"));
614 #endif
615 #endif
616 #endif
617 }
618
619 private void RevertHUDBrightness()
620 {
622 {
623 m_HUDBrightnessSelector.SetValue(g_Game.GetProfileOptionFloat(EDayZProfilesOptions.HUD_BRIGHTNESS), false);
624 g_Game.SetHudBrightness(m_HUDBrightnessSelector.GetValue());
625 }
626 }
627}
map
Определения ControlsXboxNew.c:4
DayZGame g_Game
Определения DayZGame.c:3868
Mission mission
Определения DisplayStatus.c:28
EDayZProfilesOptions
Определения EDayZProfilesOptions.c:2
Icon x
Icon y
ServerBrowserMenuNew m_Menu
Определения ServerBrowserTab.c:37
proto native WorkspaceWidget GetWorkspace()
proto native Mission GetMission()
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения gameplay.c:1461
Mission class.
Определения gameplay.c:687
Определения 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
void UpdateCrosshairOption(int new_index)
Определения OptionsMenuGame.c:443
ref OptionSelectorSlider m_HUDBrightnessSelector
Определения OptionsMenuGame.c:36
void UpdateConnectivityInfo(int newIndex)
Определения OptionsMenuGame.c:438
void OptionsMenuGame(Widget parent, Widget details_root, GameOptions options, OptionsMenu menu)
Определения OptionsMenuGame.c:44
void SetToDefaults()
Определения OptionsMenuGame.c:310
void UpdateBleedingIndication(int new_index)
Определения OptionsMenuGame.c:433
void UpdateHUDBrightnessOption(float newValue)
Определения OptionsMenuGame.c:422
Widget m_Root
Определения SizeToChild.c:9
void ToggleDependentOptions(int mode, bool state)
Определения OptionsMenuGame.c:390
ref OptionSelectorMultistate m_ShowGameSelector
Определения OptionsMenuGame.c:30
void ~OptionsMenuGame()
Определения OptionsMenuGame.c:146
ref NumericOptionsAccess m_FOVOption
Определения OptionsMenuGame.c:16
ref OptionSelectorMultistate m_LanguageSelector
Определения OptionsMenuGame.c:24
ref OptionSelectorMultistate m_BleedingIndication
Определения OptionsMenuGame.c:34
void UpdateQuickbarOption(int new_index)
Определения OptionsMenuGame.c:448
void SetOptions(GameOptions options)
Определения OptionsMenuGame.c:370
void UpdatePauseOption(int new_index)
Определения OptionsMenuGame.c:409
ref OptionSelectorSlider m_FOVSelector
Определения OptionsMenuGame.c:25
ref OptionSelectorMultistate m_ShowHUDVehicleSelector
Определения OptionsMenuGame.c:29
ref OptionSelectorMultistate m_ShowQuickbarSelector
Определения OptionsMenuGame.c:28
void UpdateGameOption(int new_index)
Определения OptionsMenuGame.c:458
ref OptionSelectorMultistate m_PauseSelector
Определения OptionsMenuGame.c:37
CameraToolsMenu m_Menu
Определения CTEvent.c:8
void OnBleedingIndicationChanged(bool state)
Определения OptionsMenuGame.c:548
RichTextWidget m_DetailsText
Определения OptionsMenuControls.c:15
void UpdateHUDVehicleOption(int new_index)
Определения OptionsMenuGame.c:453
IngameHud GetHud()
Определения ItemActionsWidget.c:735
ref OptionSelectorMultistate m_ShowServerInfoSelector
Определения OptionsMenuGame.c:33
Widget m_DetailsBodyConnectivity
Определения OptionsMenuControls.c:8
void ReloadOptions()
Определения OptionsMenuGame.c:365
void UpdateHUDOption(int new_index)
Определения OptionsMenuGame.c:428
override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
Определения OptionsMenuGame.c:514
void UpdateLanguageOption(int new_index)
Определения OptionsMenuGame.c:401
Widget m_DetailsBodyDefault
Определения OptionsMenuControls.c:7
bool TextMapUpdateWidget(int key)
Определения OptionsMenuControls.c:360
ref ListOptionsAccess m_PauseOption
Определения OptionsMenuGame.c:18
ref map< int, ref Param2< string, string > > m_TextMap
Определения OptionsMenuControls.c:71
ref OptionSelectorSlider m_BrightnessSelector
Определения OptionsMenuVideo.c:26
ref OptionSelectorMultistate m_ShowAdminSelector
Определения OptionsMenuGame.c:31
void UpdateServerInfoOption(int new_index)
Определения OptionsMenuGame.c:473
ButtonWidget m_QuickbarButton
Определения OptionsMenuGame.c:14
void UpdatePlayerOption(int new_index)
Определения OptionsMenuGame.c:468
override bool OnFocus(Widget w, int x, int y)
Определения OptionsMenuGame.c:525
const float HUD_BRIGHTNESS_MAX
Определения OptionsMenuGame.c:4
ref ListOptionsAccess m_LanguageOption
Определения OptionsMenuGame.c:17
override bool OnMouseEnter(Widget w, int x, int y)
Определения OptionsMenuGame.c:497
ref OptionSelectorMultistate m_ShowPlayerSelector
Определения OptionsMenuGame.c:32
void RevertHUDBrightness()
Определения OptionsMenuGame.c:619
ref OptionSelectorMultistate m_ConnectivityInfo
Определения OptionsMenuGame.c:35
ref OptionSelectorMultistate m_ShowHUDSelector
Определения OptionsMenuGame.c:26
void UpdateFOVOption(float new_value)
Определения OptionsMenuGame.c:415
bool IsChanged()
Определения OptionsMenuGame.c:173
TextWidget m_DetailsLabel
Определения OptionsMenuControls.c:14
void UpdateAdminOption(int new_index)
Определения OptionsMenuGame.c:463
void InitDependentOptionsVisibility()
Определения OptionsMenuControls.c:854
ref NumericOptionsAccess m_BrightnessOption
Определения OptionsMenuVideo.c:60
map: item x vector(index, width, height)
Определения EnWidgets.c:651
Определения EnWidgets.c:220
Определения EnWidgets.c:190
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 ...
Определения gameplay.c:1293
proto native CGame GetGame()
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.
const int MENU_INGAME
Определения constants.c:178
proto native external Widget CreateWidgets(string layout, Widget parentWidget=NULL, bool immedUpdate=true)
Create widgets from *.layout file.
proto native void SetFocus(Widget w)