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> 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 opt = { "#options_controls_disabled", "#options_controls_enabled" }; array opt2 = { "#options_controls_enabled", "#options_controls_disabled" }; array opt3 = new array; for (int i = 0; i < m_LanguageOption.GetItemsCount(); ++i) { string text; m_LanguageOption.GetItemText(i, text); opt3.Insert(text); } array 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 par = new Param1(state); mission.GetEffectWidgets().UpdateWidgets(EffectWidgetsTypes.BLEEDING_LAYER,0,par); } } bool TextMapUpdateWidget(int key) { bool connectivityInfoShown = key == OptionIDsScript.OPTION_CONNECTIVITY_INFO; Param2 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>; m_TextMap.Insert(OptionAccessType.AT_OPTIONS_LANGUAGE, new Param2("#options_game_select_language", "#options_game_select_language_desc")); m_TextMap.Insert(OptionAccessType.AT_OPTIONS_FIELD_OF_VIEW, new Param2("#options_game_field_of_view", "#options_game_field_of_view_desc")); m_TextMap.Insert(OptionIDsScript.OPTION_HUD, new Param2("#options_game_show_HUD", "#options_game_show_HUD_desc")); m_TextMap.Insert(OptionIDsScript.OPTION_HUD_VEHICLE, new Param2("#options_game_show_HUD_vehicle", "#options_game_show_HUD_vehicle_desc")); m_TextMap.Insert(OptionIDsScript.OPTION_HUD_BRIGHTNESS, new Param2("#options_game_hud_brightness", "#options_game_hud_brightness_desc")); m_TextMap.Insert(OptionIDsScript.OPTION_CROSSHAIR, new Param2("#options_game_show_crosshair", "#options_game_show_crosshair_desc")); m_TextMap.Insert(OptionIDsScript.OPTION_QUICKBAR, new Param2("#options_game_show_quickbar", "#options_game_show_quickbar_desc")); m_TextMap.Insert(OptionIDsScript.OPTION_SERVER_INFO, new Param2("#options_game_show_serverinfo", "#options_game_show_serverinfo_desc")); m_TextMap.Insert(OptionIDsScript.OPTION_BLEEDINGINDICATION, new Param2("#options_game_show_bleedingindication", "#options_game_show_bleedingindication_desc")); m_TextMap.Insert(OptionIDsScript.OPTION_CONNECTIVITY_INFO, new Param2("#options_game_connectivity", "")); #ifdef PLATFORM_WINDOWS m_TextMap.Insert(OptionAccessType.AT_OPTIONS_PAUSE, new Param2("#layout_options_pc_nopause_title", "#layout_options_pc_nopause_tooltip")); m_TextMap.Insert(OptionIDsScript.OPTION_GAME_MESSAGES, new Param2("#options_pc_game_messages", "#options_game_show_game_msg")); m_TextMap.Insert(OptionIDsScript.OPTION_ADMIN_MESSAGES, new Param2("#options_pc_admin_mes", "#options_game_show_admin_msg")); m_TextMap.Insert(OptionIDsScript.OPTION_PLAYER_MESSAGES, new Param2("#options_pc_player_messages", "#options_game_show_player_msg")); #else #ifdef PLATFORM_XBOX m_TextMap.Insert(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER, new Param2("#options_video_brightness", "#options_video_brightness_desc")); m_TextMap.Insert(OptionIDsScript.OPTION_GAME_MESSAGES, new Param2("#options_xbox_game_messages", "#options_game_show_game_msg")); m_TextMap.Insert(OptionIDsScript.OPTION_ADMIN_MESSAGES, new Param2("#options_xbox_admin_mes", "#options_game_show_admin_msg")); m_TextMap.Insert(OptionIDsScript.OPTION_PLAYER_MESSAGES, new Param2("#options_xbox_player_messages","#options_game_show_player_msg")); #else #ifdef PLATFORM_PS4 m_TextMap.Insert(OptionAccessType.AT_OPTIONS_BRIGHT_SLIDER, new Param2("#ps4_options_video_brightness", "#ps4_options_video_brightness_desc")); m_TextMap.Insert(OptionIDsScript.OPTION_GAME_MESSAGES, new Param2("#ps4_options_game_messages", "#ps4_options_game_show_game_msg")); m_TextMap.Insert(OptionIDsScript.OPTION_ADMIN_MESSAGES, new Param2("#ps4_options_admin_mes", "#ps4_options_game_show_admin_msg")); m_TextMap.Insert(OptionIDsScript.OPTION_PLAYER_MESSAGES, new Param2("#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()); } } }