Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_GameplaySettingsSubMenu.c
Go to the documentation of this file.
3typedef ScriptInvokerBase<ScriptInvoker_GameplaySettingsSubMenu> ScriptInvoker_GameplaySettingsSubMenuChanged;
4
6{
7 protected static const ref array<string> m_aLanguages = {
8 "en_us",
9 "fr_fr",
10 "it_it",
11 "de_de",
12 "es_es",
13 "cs_cz",
14 "pl_pl",
15 "ru_ru",
16 "ja_jp",
17 "ko_kr",
18 "pt_br",
19 "zh_cn",
20 "uk_ua"
21 };
22 protected static const string m_sUserInterfaceSettings = "UserInterfaceSettings";
23
25
26 //------------------------------------------------------------------------------------------------
27 override void OnTabHide()
28 {
29 super.OnTabHide();
30
32 SCR_AimSensitivitySettings.SetAimSensitivitySettings();
33 SCR_ControllerSettings.SetControllerSettings();
34 }
35
36 //------------------------------------------------------------------------------------------------
37 override void OnTabCreate(Widget menuRoot, ResourceName buttonsLayout, int index)
38 {
39 super.OnTabCreate(menuRoot, buttonsLayout, index);
40
41 m_aSettingsBindings.Clear();
42
43 m_aSettingsBindings.Insert(new SCR_SettingBindingEngine("InputDeviceUserSettings", "MouseInvert", "MouseY"));
44 m_aSettingsBindings.Insert(new SCR_SettingBindingEngine("InputDeviceUserSettings", "GamepadInvert", "GamepadY"));
45 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_GameplaySettings", "m_bStickyADS", "StickyADS"));
46 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_GameplaySettings", "m_bPlatformIconNametag" , "ShowPlatformIcon" ));
47 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_GameplaySettings", "m_bLogitechSupport" , "LogitechLED" ));
48 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_GameplaySettings", "m_bStickyGadgets", "StickyGadgets"));
49 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_GameplaySettings", "m_bAutoEquipNextPlaceableItem", "AutomaticEquipmentOfPlaceables"));
50 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_GameplaySettings", "m_bMouseControlAircraft", "MouseControlAircraft"));
51 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_GameplaySettings", "m_bGamepadFreelookInAircraft", "GamepadFreelookInAircraft"));
52 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_GameplaySettings", "m_eDrivingAssistance", "DrivingAssistance"));
53
54 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_FieldOfViewSettings", "m_fFirstPersonFOV", "1PP"));
55 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_FieldOfViewSettings", "m_fThirdPersonFOV", "3PP"));
56 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_FieldOfViewSettings", "m_fVehicleFOV", "VehicleFOV"));
57 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_FieldOfViewSettings", "m_fFocusInADS", "FocusIntensityADS"));
58 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_FieldOfViewSettings", "m_fFocusInPIP", "FocusIntensityPIP"));
59
60 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_GameplaySettings", "m_eKeyboardCollective", "KeyboardCollective"));
61 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_GameplaySettings", "m_eGamepadCollective", "GamepadCollective"));
62 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_GameplaySettings", "m_eHotasCollective", "HotasCollective"));
63
64 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_AimSensitivitySettings", "m_fMouseSensitivity", "AimMouse"));
65 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_AimSensitivitySettings", "m_fStickSensitivity", "AimGamepad"));
66 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_AimSensitivitySettings", "m_fAimADS", "AimADS"));
67
68 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_AimSensitivitySettings", "m_fFOVInputCurveMouse", "FOVInputCurveMouse"));
69 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_AimSensitivitySettings", "m_fFOVInputCurveStick", "FOVInputCurveStick"));
70 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_AimSensitivitySettings", "m_fFOVInputCurveGyro", "FOVInputCurveGyro"));
71
72 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_ControllerSettings", "m_bGyroAlways", "GyroAlways"));
73 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_ControllerSettings", "m_bGyroFreelook", "GyroFreelook"));
74 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_ControllerSettings", "m_bGyroADS", "GyroADS"));
75
76 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_ControllerSettings", "m_fGyroSensitivity", "GyroSensitivity"));
77 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_ControllerSettings", "m_fGyroVerticalHorizontalRatio", "GyroVerticalHorizontalRatio"));
78
79 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_ControllerSettings", "m_eGyroDirectionYaw", "GyroDirectionYaw"));
80 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_ControllerSettings", "m_eGyroDirectionPitch", "GyroDirectionPitch"));
81 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_ControllerSettings", "m_eGyroDirectionRoll", "GyroDirectionRoll"));
82
83 m_aSettingsBindings.Insert(new SCR_SettingBindingGameplay("SCR_ControllerSettings", "m_fRumbleIntensity", "RumbleIntensity"));
84
85 m_aSettingsBindings.Insert(new SCR_SettingBindingEngine("InputDeviceUserSettings", "GyroAimingSpace", "GyroAimingSpace", "GyroSettings"));
86
87 m_aSettingsBindings.Insert(new SCR_SettingBindingEngine("InputDeviceUserSettings", "GyroAccelerationSensitivity", "GyroAcceleration", "GyroSettings"));
88 m_aSettingsBindings.Insert(new SCR_SettingBindingEngine("InputDeviceUserSettings", "GyroAccelerationSpeedMin", "GyroAccelerationSpeedMin", "GyroSettings"));
89 m_aSettingsBindings.Insert(new SCR_SettingBindingEngine("InputDeviceUserSettings", "GyroAccelerationSpeedMax", "GyroAccelerationSpeedMax", "GyroSettings"));
90 m_aSettingsBindings.Insert(new SCR_SettingBindingEngine("InputDeviceUserSettings", "GyroPrecisionSpeed", "GyroPrecisionSpeed", "GyroSettings"));
91 m_aSettingsBindings.Insert(new SCR_SettingBindingEngine("InputDeviceUserSettings", "GyroSmoothingSpeed", "GyroSmoothingSpeed", "GyroSettings"));
92
94
97
98 if (DiagMenu.GetBool(SCR_DebugMenuID.DEBUGUI_UI_SHOW_ALL_SETTINGS, false))
99 return;
100
101#ifdef PLATFORM_CONSOLE
102 // Hide unusual console settings (consoles -can- use USB KBM)
103 if (!GetGame().GetHasKeyboard())
104 {
105 HideMenuItem("MouseY");
106 HideMenuItem("AimMouse");
107 HideMenuItem("MouseControlAircraft");
108 HideMenuItem("FOVInputCurveMouse");
109 HideMenuItem("KeyboardCollective");
110 HideMenuItem("LogitechLED");
111 }
112
113 HideMenuItem("HotasCollective");
114 HideMenuItem("ShowPlatformIcon");
115#endif
116
117 // Hide gyro settings outside platforms that support them
118 EPlatform platform = System.GetPlatform();
119 if (platform != EPlatform.PS4 && platform != EPlatform.PS5 && platform != EPlatform.PS5_PRO && platform != EPlatform.UNKNOWN)
120 {
121 HideMenuItem("TitleGyro");
122
123 HideMenuItem("GyroAlways");
124 HideMenuItem("GyroFreelook");
125 HideMenuItem("GyroADS");
126
127 HideMenuItem("GyroSensitivity");
128 HideMenuItem("FOVInputCurveGyro");
129 HideMenuItem("GyroVerticalHorizontalRatio");
130 HideMenuItem("GyroDirectionYaw");
131 HideMenuItem("GyroDirectionPitch");
132 HideMenuItem("GyroDirectionRoll");
133
134 HideMenuItem("GyroAimingSpace");
135
136 HideMenuItem("GyroAcceleration");
137 HideMenuItem("GyroAccelerationSpeedMin");
138 HideMenuItem("GyroAccelerationSpeedMax");
139 HideMenuItem("GyroPrecisionSpeed");
140 HideMenuItem("GyroSmoothingSpeed");
141 }
142 }
143
144 //------------------------------------------------------------------------------------------------
145 protected void BindLanguage()
146 {
147 BaseContainer setting = GetGame().GetEngineUserSettings().GetModule(m_sUserInterfaceSettings);
148 if (!setting)
149 return;
150
151 string currentLang;
152 setting.Get("LanguageCode", currentLang);
153
154 int i = m_aLanguages.Find(currentLang);
155 if (i == -1)
156 return;
157
158 Widget w = m_wRoot.FindAnyWidget("Language");
159 if (!w)
160 return;
161
163 if (!comp)
164 return;
165
166 comp.SetCurrentItem(i);
167 comp.m_OnChanged.Insert(OnLanguageChange);
168 }
169
170 //------------------------------------------------------------------------------------------------
171 protected void BindCrossplaySettings()
172 {
173 Widget w = m_wRoot.FindAnyWidget("AllowCrossplay");
174 if (!w)
175 return;
176
178 if (!comp)
179 return;
180
181 comp.SetCurrentItem(GetGame().IsCrossPlayEnabled());
182 comp.m_OnChanged.Insert(OnCrossplayChanged);
183 }
184
185 //------------------------------------------------------------------------------------------------
187 {
188 const string settingName = "AllowCrossplay";
189 Widget w = m_wRoot.FindAnyWidget(settingName);
190 if (!w)
191 return;
192
194 if (!comp)
195 return;
196
197 Print("Setting: " + comp.GetCurrentIndex());
198 if (!GetGame().SetCrossPlay(comp.GetCurrentIndex()))
199 {
200 comp.SetCurrentItem(!comp.GetCurrentIndex());
201 Print("Setting back: " + !comp.GetCurrentIndex());
202 }
203
204 GetGame().UserSettingsChanged();
205
206 //SCR_AnalyticsApplication.GetInstance().ChangeSetting(m_sUserInterfaceSettings, settingName);
207 }
208
209 //------------------------------------------------------------------------------------------------
210 protected void OnLanguageChange(SCR_SpinBoxComponent comp, int i)
211 {
212 BaseContainer setting = GetGame().GetEngineUserSettings().GetModule(m_sUserInterfaceSettings);
213 if (!setting)
214 return;
215
216 if (!m_aLanguages.IsIndexValid(i))
217 return;
218
219 const string settingName = "LanguageCode";
220 setting.Set(settingName, m_aLanguages[i]);
221 GetGame().UserSettingsChanged();
222
223 m_OnLanguageChanged.Invoke(this);
224
225 //SCR_AnalyticsApplication.GetInstance().ChangeSetting(m_sUserInterfaceSettings, settingName);
226 }
227}
SCR_DebugMenuID
This enum contains all IDs for DiagMenu entries added in script.
Definition DebugMenuID.c:4
bool GetHasKeyboard()
Definition game.c:210
ArmaReforgerScripted GetGame()
Definition game.c:1398
SCR_DestructionSynchronizationComponentClass ScriptComponentClass int index
func ScriptInvoker_GameplaySettingsSubMenu
ScriptInvokerBase< ScriptInvoker_GameplaySettingsSubMenu > ScriptInvoker_GameplaySettingsSubMenuChanged
void LoadSettings()
Diagnostic and developer menu system.
Definition DiagMenu.c:18
static const ref array< string > m_aLanguages
void OnLanguageChange(SCR_SpinBoxComponent comp, int i)
override void OnTabCreate(Widget menuRoot, ResourceName buttonsLayout, int index)
static ref ScriptInvoker_GameplaySettingsSubMenuChanged m_OnLanguageChanged
ref array< ref SCR_SettingsBindingBase > m_aSettingsBindings
void HideMenuItem(string widgetName)
override bool SetCurrentItem(int i, bool playSound=false, bool animate=false)
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
EPlatform
Definition EPlatform.c:13