123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627 |
- class OptionsMenuGame extends ScriptedWidgetEventHandler
- {
- private const float HUD_BRIGHTNESS_MIN = -1.0;
- private const float HUD_BRIGHTNESS_MAX = 0.0;
- 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 ButtonWidget m_QuickbarButton;
-
- protected ref NumericOptionsAccess m_FOVOption;
- protected ref ListOptionsAccess m_LanguageOption;
- protected ref ListOptionsAccess m_PauseOption;
- #ifdef PLATFORM_CONSOLE
- protected ref NumericOptionsAccess m_BrightnessOption;
- protected ref OptionSelectorSlider m_BrightnessSelector;
- #endif
-
- protected ref OptionSelectorMultistate m_LanguageSelector;
- protected ref OptionSelectorSlider m_FOVSelector;
- protected ref OptionSelectorMultistate m_ShowHUDSelector;
- protected ref OptionSelectorMultistate m_ShowCrosshairSelector;
- protected ref OptionSelectorMultistate m_ShowQuickbarSelector;
- protected ref OptionSelectorMultistate m_ShowHUDVehicleSelector;
- protected ref OptionSelectorMultistate m_ShowGameSelector;
- protected ref OptionSelectorMultistate m_ShowAdminSelector;
- protected ref OptionSelectorMultistate m_ShowPlayerSelector;
- protected ref OptionSelectorMultistate m_ShowServerInfoSelector;
- protected ref OptionSelectorMultistate m_BleedingIndication;
- protected ref OptionSelectorMultistate m_ConnectivityInfo;
- protected ref OptionSelectorSlider m_HUDBrightnessSelector;
- protected ref OptionSelectorMultistate m_PauseSelector;
-
- protected GameOptions m_Options;
- protected OptionsMenu m_Menu;
-
- protected ref map<int, ref Param2<string, string>> m_TextMap;
-
- void OptionsMenuGame(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"));
-
- m_Options = options;
- m_Menu = menu;
-
- m_FOVOption = NumericOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_FIELD_OF_VIEW));
- m_LanguageOption = ListOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_LANGUAGE));
- m_PauseOption = ListOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_PAUSE));
-
- m_Root.FindAnyWidget("fov_setting_option").SetUserID(OptionAccessType.AT_OPTIONS_FIELD_OF_VIEW);
- m_Root.FindAnyWidget("hud_setting_option").SetUserID(OptionIDsScript.OPTION_HUD);
- m_Root.FindAnyWidget("hud_vehicle_setting_option").SetUserID(OptionIDsScript.OPTION_HUD_VEHICLE);
- m_Root.FindAnyWidget("hud_brightness_setting_option").SetUserID(OptionIDsScript.OPTION_HUD_BRIGHTNESS);
- m_Root.FindAnyWidget("crosshair_setting_option").SetUserID(OptionIDsScript.OPTION_CROSSHAIR);
- m_Root.FindAnyWidget("game_setting_option").SetUserID(OptionIDsScript.OPTION_GAME_MESSAGES);
- m_Root.FindAnyWidget("admin_setting_option").SetUserID(OptionIDsScript.OPTION_ADMIN_MESSAGES);
- m_Root.FindAnyWidget("player_setting_option").SetUserID(OptionIDsScript.OPTION_PLAYER_MESSAGES);
- m_Root.FindAnyWidget("language_setting_option").SetUserID(OptionAccessType.AT_OPTIONS_LANGUAGE);
- m_Root.FindAnyWidget("bleeding_indication_setting_option").SetUserID(OptionIDsScript.OPTION_BLEEDINGINDICATION);
- m_Root.FindAnyWidget("connectivity_setting_option").SetUserID(OptionIDsScript.OPTION_CONNECTIVITY_INFO);
- m_Root.FindAnyWidget("quickbar_setting_option").SetUserID(OptionIDsScript.OPTION_QUICKBAR);
-
- #ifdef PLATFORM_CONSOLE
- m_QuickbarButton = ButtonWidget.Cast(m_Root.FindAnyWidget("quickbar_button"));
- m_Root.FindAnyWidget("brightness_setting_option").SetUserID(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER);
- #else
- m_Root.FindAnyWidget("serverinfo_setting_option").SetUserID(OptionIDsScript.OPTION_SERVER_INFO);
- m_Root.FindAnyWidget("pause_setting_option").SetUserID(OptionAccessType.AT_OPTIONS_PAUSE);
- #endif
-
- FillTextMap();
-
- array<string> opt = { "#options_controls_disabled", "#options_controls_enabled" };
- array<string> opt2 = { "#options_controls_enabled", "#options_controls_disabled" };
- array<string> opt3 = new array<string>;
- for (int i = 0; i < m_LanguageOption.GetItemsCount(); ++i)
- {
- string text;
- m_LanguageOption.GetItemText(i, text);
- opt3.Insert(text);
- }
-
- array<string> opt4 = { "#options_pc_nopause_0", "#options_pc_nopause_1", "#options_pc_nopause_2" }; // Pause options menu strings
-
- m_LanguageSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("language_setting_option"), m_LanguageOption.GetIndex(), this, false, opt3);
- m_FOVSelector = new OptionSelectorSlider(m_Root.FindAnyWidget("fov_setting_option"), m_FOVOption.ReadValue(), this, false, m_FOVOption.GetMin(), m_FOVOption.GetMax());
- m_ShowHUDSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("hud_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD), this, false, opt);
- 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);
- m_ShowCrosshairSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("crosshair_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.CROSSHAIR), this, false, opt);
- m_ShowGameSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("game_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.GAME_MESSAGES), this, false, opt2);
- m_ShowAdminSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("admin_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.ADMIN_MESSAGES), this, false, opt2);
- m_ShowPlayerSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("player_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.PLAYER_MESSAGES), this, false, opt2);
- m_BleedingIndication = new OptionSelectorMultistate(m_Root.FindAnyWidget("bleeding_indication_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.BLEEDINGINDICATION), this, false, opt);
- m_ConnectivityInfo = new OptionSelectorMultistate(m_Root.FindAnyWidget("connectivity_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.CONNECTIVITY_INFO), this, false, opt);
- m_ShowQuickbarSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("quickbar_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.QUICKBAR), this, false, opt);
- m_ShowHUDVehicleSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("hud_vehicle_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD_VEHICLE), this, false, opt);
-
- m_LanguageSelector.m_OptionChanged.Insert(UpdateLanguageOption);
- m_FOVSelector.m_OptionChanged.Insert(UpdateFOVOption);
- m_ShowHUDSelector.m_OptionChanged.Insert(UpdateHUDOption);
- m_HUDBrightnessSelector.m_OptionChanged.Insert(UpdateHUDBrightnessOption);
- m_ShowCrosshairSelector.m_OptionChanged.Insert(UpdateCrosshairOption);
- m_ShowGameSelector.m_OptionChanged.Insert(UpdateGameOption);
- m_ShowAdminSelector.m_OptionChanged.Insert(UpdateAdminOption);
- m_ShowPlayerSelector.m_OptionChanged.Insert(UpdatePlayerOption);
- m_BleedingIndication.m_OptionChanged.Insert(UpdateBleedingIndication);
- m_ConnectivityInfo.m_OptionChanged.Insert(UpdateConnectivityInfo);
- m_ShowQuickbarSelector.m_OptionChanged.Insert(UpdateQuickbarOption);
- m_ShowHUDVehicleSelector.m_OptionChanged.Insert(UpdateHUDVehicleOption);
-
- #ifdef PLATFORM_CONSOLE
- m_BrightnessOption = NumericOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER));
- m_BrightnessSelector = new OptionSelectorSlider(m_Root.FindAnyWidget("brightness_setting_option"), m_BrightnessOption.ReadValue(), this, false, m_BrightnessOption.GetMin(), m_BrightnessOption.GetMax());
- m_BrightnessSelector.m_OptionChanged.Insert(UpdateBrightnessOption);
- #else
- m_ShowServerInfoSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("serverinfo_setting_option"), g_Game.GetProfileOptionBool(EDayZProfilesOptions.SERVERINFO_DISPLAY), this, false, opt);
- m_PauseSelector = new OptionSelectorMultistate(m_Root.FindAnyWidget("pause_setting_option"), m_PauseOption.GetIndex(), this, false, opt4);
-
- m_ShowServerInfoSelector.m_OptionChanged.Insert(UpdateServerInfoOption);
- m_PauseSelector.m_OptionChanged.Insert(UpdatePauseOption);
- #endif
-
- float x, y, y2;
- m_Root.FindAnyWidget("game_settings_scroll").GetScreenSize(x, y);
- m_Root.FindAnyWidget("game_settings_root").GetScreenSize(x, y2);
- int f = (y2 > y);
- m_Root.FindAnyWidget("game_settings_scroll").SetAlpha(f);
-
- m_Root.SetHandler(this);
- m_DetailsRoot.Show(false);
-
- InitDependentOptionsVisibility();
- }
-
- void ~OptionsMenuGame()
- {
- if (m_FOVOption)
- {
- m_FOVOption.Revert();
- g_Game.SetUserFOV(m_FOVOption.ReadValue());
- }
-
- RevertHUDBrightness();
- }
-
- string GetLayoutName()
- {
- #ifdef PLATFORM_CONSOLE
- return "gui/layouts/new_ui/options/xbox/game_tab.layout";
- #else
- return "gui/layouts/new_ui/options/pc/game_tab.layout";
- #endif
- }
-
- void Focus()
- {
- #ifdef PLATFORM_CONSOLE
- SetFocus(m_LanguageSelector.GetParent());
- #endif
- }
-
- bool IsChanged()
- {
- bool universal = (m_ShowHUDSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD) || m_ShowCrosshairSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.CROSSHAIR));
- universal = universal || m_HUDBrightnessSelector.GetValue() != g_Game.GetProfileOptionFloat(EDayZProfilesOptions.HUD_BRIGHTNESS);
- universal = universal || m_ShowHUDVehicleSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD_VEHICLE);
- universal = universal || (m_ShowGameSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.GAME_MESSAGES) || m_ShowAdminSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.ADMIN_MESSAGES));
- universal = universal || m_ShowPlayerSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.PLAYER_MESSAGES);
- universal = universal || m_BleedingIndication.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.BLEEDINGINDICATION);
- universal = universal || m_ConnectivityInfo.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.CONNECTIVITY_INFO);
- universal = universal || m_LanguageOption.IsChanged();
-
- #ifdef PLATFORM_CONSOLE
- return universal;
- #else
- return (universal || m_ShowQuickbarSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.QUICKBAR) || m_ShowServerInfoSelector.GetValue() != g_Game.GetProfileOptionBool(EDayZProfilesOptions.SERVERINFO_DISPLAY));
- #endif
- }
-
- void Apply()
- {
- IngameHud hud = GetHud();
- InGameMenu menu = InGameMenu.Cast(GetGame().GetUIManager().FindMenu(MENU_INGAME));
- MissionGameplay mission = MissionGameplay.Cast(GetGame().GetMission());
-
- g_Game.SetProfileOptionBool(EDayZProfilesOptions.HUD, m_ShowHUDSelector.GetValue());
- g_Game.SetProfileOptionBool(EDayZProfilesOptions.CROSSHAIR, m_ShowCrosshairSelector.GetValue());
- g_Game.SetProfileOptionBool(EDayZProfilesOptions.HUD_VEHICLE, m_ShowHUDVehicleSelector.GetValue());
- g_Game.SetProfileOptionBool(EDayZProfilesOptions.GAME_MESSAGES, m_ShowGameSelector.GetValue());
- g_Game.SetProfileOptionBool(EDayZProfilesOptions.ADMIN_MESSAGES, m_ShowAdminSelector.GetValue());
- g_Game.SetProfileOptionBool(EDayZProfilesOptions.PLAYER_MESSAGES, m_ShowPlayerSelector.GetValue());
- g_Game.SetProfileOptionFloat(EDayZProfilesOptions.HUD_BRIGHTNESS, m_HUDBrightnessSelector.GetValue());
-
- #ifndef PLATFORM_CONSOLE
- g_Game.SetProfileOptionBool(EDayZProfilesOptions.QUICKBAR, m_ShowQuickbarSelector.GetValue());
- g_Game.SetProfileOptionBool(EDayZProfilesOptions.SERVERINFO_DISPLAY, m_ShowServerInfoSelector.GetValue());
- #endif
-
- if (hud)
- {
- #ifndef PLATFORM_CONSOLE
- hud.ShowQuickBar(m_ShowQuickbarSelector.GetValue());
- #else
- hud.ShowQuickBar(GetGame().GetInput().IsEnabledMouseAndKeyboardEvenOnServer());
- #endif
- hud.ShowHud(m_ShowHUDSelector.GetValue());
- hud.SetVehicleHudDisabled(!m_ShowHUDVehicleSelector.GetValue());
- }
-
- bool bleedingIndicationOld = g_Game.GetProfileOptionBool(EDayZProfilesOptions.BLEEDINGINDICATION);
- bool bleedingIndicationNew = m_BleedingIndication.GetValue();
- bool connectivityOld = g_Game.GetProfileOptionBool(EDayZProfilesOptions.CONNECTIVITY_INFO);
- bool connectivityNew = m_ConnectivityInfo.GetValue();
-
- g_Game.SetProfileOptionBool(EDayZProfilesOptions.BLEEDINGINDICATION, bleedingIndicationNew);
- g_Game.SetProfileOptionBool(EDayZProfilesOptions.CONNECTIVITY_INFO, connectivityNew);
-
- if (mission)
- {
- //BLEEDINGINDICATION changed
- if (bleedingIndicationOld != bleedingIndicationNew)
- {
- OnBleedingIndicationChanged(bleedingIndicationNew);
- }
-
- //CONNECTIVITY_INFO changed
- if (connectivityOld != connectivityNew)
- {
- mission.GetConnectivityInvoker().Invoke(connectivityNew);
- }
- }
-
- #ifndef PLATFORM_CONSOLE
- if (menu)
- {
- menu.SetServerInfoVisibility(m_ShowServerInfoSelector.GetValue());
- }
- #endif
-
- if (m_LanguageOption.IsChanged()) //language changed
- {
- if (mission)
- {
- mission.ResetGUI();
- }
- else
- {
- ErrorEx("mission not found!", ErrorExSeverity.INFO);
- }
- }
- }
-
- void Revert()
- {
- if (m_ShowHUDSelector)
- m_ShowHUDSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD), false);
-
- RevertHUDBrightness();
- if (m_ShowCrosshairSelector)
- m_ShowCrosshairSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.CROSSHAIR), false);
-
- if (m_ShowHUDVehicleSelector)
- m_ShowHUDVehicleSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.HUD_VEHICLE), false);
-
- if (m_FOVOption)
- {
- m_FOVSelector.SetValue(m_FOVOption.ReadValue(), false);
- g_Game.SetUserFOV(m_FOVOption.ReadValue());
- }
- if (m_LanguageOption)
- m_LanguageSelector.SetValue(m_LanguageOption.GetIndex(), false);
- if (m_ShowGameSelector)
- m_ShowGameSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.GAME_MESSAGES), false);
- if (m_ShowAdminSelector)
- m_ShowAdminSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.ADMIN_MESSAGES), false);
- if (m_ShowPlayerSelector)
- m_ShowPlayerSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.PLAYER_MESSAGES), false);
- if (m_BleedingIndication)
- m_BleedingIndication.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.BLEEDINGINDICATION), false);
- if (m_ConnectivityInfo)
- m_ConnectivityInfo.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.CONNECTIVITY_INFO), false);
-
- #ifdef PLATFORM_CONSOLE
- if (m_BrightnessSelector)
- m_BrightnessSelector.SetValue(m_BrightnessOption.ReadValue(), false);
- #else
- if (m_ShowQuickbarSelector)
- m_ShowQuickbarSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.QUICKBAR), false);
- if (m_ShowServerInfoSelector)
- m_ShowServerInfoSelector.SetValue(g_Game.GetProfileOptionBool(EDayZProfilesOptions.SERVERINFO_DISPLAY), false);
- if (m_PauseOption)
- {
- m_PauseSelector.SetValue(m_PauseOption.GetIndex(), false);
- }
- #endif
- }
-
- void SetToDefaults()
- {
- g_Game.ResetProfileOptions();
-
- if (m_ShowHUDSelector)
- m_ShowHUDSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.HUD), false);
- if (m_HUDBrightnessSelector)
- {
- m_HUDBrightnessSelector.SetValue(g_Game.GetProfileOptionDefaultFloat(EDayZProfilesOptions.HUD_BRIGHTNESS), false);
- g_Game.SetHudBrightness(m_HUDBrightnessSelector.GetValue());
- }
- if (m_ShowCrosshairSelector)
- m_ShowCrosshairSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.CROSSHAIR), false);
-
- if (m_ShowHUDVehicleSelector)
- m_ShowHUDVehicleSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.HUD_VEHICLE), false);
-
- if (m_FOVOption)
- {
- m_FOVOption.WriteValue(m_FOVOption.GetDefault());
- m_FOVSelector.SetValue(m_FOVOption.ReadValue(), false);
- g_Game.SetUserFOV(m_FOVOption.GetDefault());
- }
- if (m_ShowGameSelector)
- m_ShowGameSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.GAME_MESSAGES), false);
- if (m_ShowAdminSelector)
- m_ShowAdminSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.ADMIN_MESSAGES), false);
- if (m_ShowPlayerSelector)
- m_ShowPlayerSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.PLAYER_MESSAGES), false);
- if (m_BleedingIndication)
- m_BleedingIndication.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.BLEEDINGINDICATION), false);
- if (m_ConnectivityInfo)
- m_ConnectivityInfo.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.CONNECTIVITY_INFO), false);
-
- #ifdef PLATFORM_CONSOLE
- if (m_BrightnessSelector)
- {
- m_BrightnessOption.WriteValue(m_BrightnessOption.GetDefault());
- m_BrightnessSelector.SetValue(m_BrightnessOption.GetDefault(), false);
- }
- #else
- if (m_ShowQuickbarSelector)
- m_ShowQuickbarSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.QUICKBAR), false);
- if (m_ShowServerInfoSelector)
- m_ShowServerInfoSelector.SetValue(g_Game.GetProfileOptionDefaultBool(EDayZProfilesOptions.SERVERINFO_DISPLAY), false);
- if (m_PauseOption)
- {
- m_PauseOption.SetIndex(m_PauseOption.GetDefaultIndex());
- m_PauseSelector.SetValue(m_PauseOption.GetIndex(), false);
- }
- #endif
- }
-
- void ReloadOptions()
- {
- m_Menu.ReloadOptions();
- }
-
- void SetOptions(GameOptions options)
- {
- m_Options = options;
-
- m_FOVOption = NumericOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_FIELD_OF_VIEW));
- m_LanguageOption = ListOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_LANGUAGE));
-
- if (m_FOVSelector)
- m_FOVSelector.SetValue(m_FOVOption.ReadValue(), false);
-
- if (m_LanguageOption)
- m_LanguageSelector.SetValue(m_LanguageOption.GetIndex(), false);
-
- #ifdef PLATFORM_CONSOLE
- m_BrightnessOption = NumericOptionsAccess.Cast(m_Options.GetOptionByType(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER));
- if (m_BrightnessOption)
- m_BrightnessSelector.SetValue(m_BrightnessOption.ReadValue(), false);
- #endif
- }
-
- void ToggleDependentOptions(int mode, bool state)
- {
- }
-
- void InitDependentOptionsVisibility()
- {
- #ifdef PLATFORM_CONSOLE
- m_QuickbarButton.Show(false);
- #endif
- }
-
- protected void UpdateLanguageOption(int new_index)
- {
- m_LanguageOption.SetIndex(new_index);
- m_Menu.OnChanged();
- TextMapUpdateWidget(OptionAccessType.AT_OPTIONS_LANGUAGE);
- }
-
- protected void UpdatePauseOption(int new_index)
- {
- m_PauseOption.SetIndex(new_index);
- m_Menu.OnChanged();
- }
-
- protected void UpdateFOVOption(float new_value)
- {
- m_FOVOption.WriteValue(new_value);
- g_Game.SetUserFOV(new_value);
- m_Menu.OnChanged();
- }
-
- protected void UpdateHUDBrightnessOption(float newValue)
- {
- g_Game.SetHudBrightness(newValue);
- m_Menu.OnChanged();
- }
-
- protected void UpdateHUDOption(int new_index)
- {
- m_Menu.OnChanged();
- }
-
- protected void UpdateBleedingIndication(int new_index)
- {
- m_Menu.OnChanged();
- }
-
- protected void UpdateConnectivityInfo(int newIndex)
- {
- m_Menu.OnChanged();
- }
-
- protected void UpdateCrosshairOption(int new_index)
- {
- m_Menu.OnChanged();
- }
-
- protected void UpdateQuickbarOption(int new_index)
- {
- m_Menu.OnChanged();
- }
-
- protected void UpdateHUDVehicleOption(int new_index)
- {
- m_Menu.OnChanged();
- }
-
- protected void UpdateGameOption(int new_index)
- {
- m_Menu.OnChanged();
- }
-
- protected void UpdateAdminOption(int new_index)
- {
- m_Menu.OnChanged();
- }
-
- protected void UpdatePlayerOption(int new_index)
- {
- m_Menu.OnChanged();
- }
-
- protected void UpdateServerInfoOption(int new_index)
- {
- m_Menu.OnChanged();
- }
-
- IngameHud GetHud()
- {
- Mission mission = GetGame().GetMission();
- if (mission)
- {
- IngameHud hud = IngameHud.Cast(mission.GetHud());
- return hud;
- }
- return null;
- }
-
- #ifdef PLATFORM_CONSOLE
- void UpdateBrightnessOption(float value)
- {
- m_BrightnessOption.WriteValue(value);
- m_Menu.OnChanged();
- }
- #endif
-
- override bool OnMouseEnter(Widget w, int x, int y)
- {
- if (w && w.IsInherited(ScrollWidget))
- {
- return false;
- }
-
- if (w && w.IsInherited(SliderWidget))
- {
- 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;
- }
-
- override bool OnFocus(Widget w, int x, int y)
- {
- if (m_Menu)
- {
- m_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);
- }
-
- protected void OnBleedingIndicationChanged(bool state)
- {
- MissionGameplay mission = MissionGameplay.Cast(GetGame().GetMission());
- if (mission)
- {
- Param1<bool> par = new Param1<bool>(state);
- mission.GetEffectWidgets().UpdateWidgets(EffectWidgetsTypes.BLEEDING_LAYER,0,par);
- }
- }
-
- 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>>;
- m_TextMap.Insert(OptionAccessType.AT_OPTIONS_LANGUAGE, new Param2<string, string>("#options_game_select_language", "#options_game_select_language_desc"));
- m_TextMap.Insert(OptionAccessType.AT_OPTIONS_FIELD_OF_VIEW, new Param2<string, string>("#options_game_field_of_view", "#options_game_field_of_view_desc"));
- m_TextMap.Insert(OptionIDsScript.OPTION_HUD, new Param2<string, string>("#options_game_show_HUD", "#options_game_show_HUD_desc"));
- m_TextMap.Insert(OptionIDsScript.OPTION_HUD_VEHICLE, new Param2<string, string>("#options_game_show_HUD_vehicle", "#options_game_show_HUD_vehicle_desc"));
- m_TextMap.Insert(OptionIDsScript.OPTION_HUD_BRIGHTNESS, new Param2<string, string>("#options_game_hud_brightness", "#options_game_hud_brightness_desc"));
- m_TextMap.Insert(OptionIDsScript.OPTION_CROSSHAIR, new Param2<string, string>("#options_game_show_crosshair", "#options_game_show_crosshair_desc"));
- m_TextMap.Insert(OptionIDsScript.OPTION_QUICKBAR, new Param2<string, string>("#options_game_show_quickbar", "#options_game_show_quickbar_desc"));
- m_TextMap.Insert(OptionIDsScript.OPTION_SERVER_INFO, new Param2<string, string>("#options_game_show_serverinfo", "#options_game_show_serverinfo_desc"));
- m_TextMap.Insert(OptionIDsScript.OPTION_BLEEDINGINDICATION, new Param2<string, string>("#options_game_show_bleedingindication", "#options_game_show_bleedingindication_desc"));
- m_TextMap.Insert(OptionIDsScript.OPTION_CONNECTIVITY_INFO, new Param2<string, string>("#options_game_connectivity", ""));
-
- #ifdef PLATFORM_WINDOWS
- m_TextMap.Insert(OptionAccessType.AT_OPTIONS_PAUSE, new Param2<string, string>("#layout_options_pc_nopause_title", "#layout_options_pc_nopause_tooltip"));
- m_TextMap.Insert(OptionIDsScript.OPTION_GAME_MESSAGES, new Param2<string, string>("#options_pc_game_messages", "#options_game_show_game_msg"));
- m_TextMap.Insert(OptionIDsScript.OPTION_ADMIN_MESSAGES, new Param2<string, string>("#options_pc_admin_mes", "#options_game_show_admin_msg"));
- m_TextMap.Insert(OptionIDsScript.OPTION_PLAYER_MESSAGES, new Param2<string, string>("#options_pc_player_messages", "#options_game_show_player_msg"));
- #else
- #ifdef PLATFORM_XBOX
- m_TextMap.Insert(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER, new Param2<string, string>("#options_video_brightness", "#options_video_brightness_desc"));
- m_TextMap.Insert(OptionIDsScript.OPTION_GAME_MESSAGES, new Param2<string, string>("#options_xbox_game_messages", "#options_game_show_game_msg"));
- m_TextMap.Insert(OptionIDsScript.OPTION_ADMIN_MESSAGES, new Param2<string, string>("#options_xbox_admin_mes", "#options_game_show_admin_msg"));
- m_TextMap.Insert(OptionIDsScript.OPTION_PLAYER_MESSAGES, new Param2<string, string>("#options_xbox_player_messages","#options_game_show_player_msg"));
- #else
- #ifdef PLATFORM_PS4
- m_TextMap.Insert(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER, new Param2<string, string>("#ps4_options_video_brightness", "#ps4_options_video_brightness_desc"));
- m_TextMap.Insert(OptionIDsScript.OPTION_GAME_MESSAGES, new Param2<string, string>("#ps4_options_game_messages", "#ps4_options_game_show_game_msg"));
- m_TextMap.Insert(OptionIDsScript.OPTION_ADMIN_MESSAGES, new Param2<string, string>("#ps4_options_admin_mes", "#ps4_options_game_show_admin_msg"));
- m_TextMap.Insert(OptionIDsScript.OPTION_PLAYER_MESSAGES, new Param2<string, string>("#ps4_options_player_messages","#ps4_options_game_show_player_msg"));
- #endif
- #endif
- #endif
- }
-
- private void RevertHUDBrightness()
- {
- if (m_HUDBrightnessSelector)
- {
- m_HUDBrightnessSelector.SetValue(g_Game.GetProfileOptionFloat(EDayZProfilesOptions.HUD_BRIGHTNESS), false);
- g_Game.SetHudBrightness(m_HUDBrightnessSelector.GetValue());
- }
- }
- }
|