optionsmenucontrols.c 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917
  1. class OptionsMenuControls extends ScriptedWidgetEventHandler
  2. {
  3. protected Widget m_Root;
  4. protected Widget m_SettingsRoot;
  5. protected Widget m_DetailsRoot;
  6. protected Widget m_DetailsBodyDefault;
  7. protected Widget m_DetailsBodyConnectivity;
  8. #ifdef PLATFORM_CONSOLE
  9. protected bool m_MaKOptionAvailable;
  10. protected Widget m_ConsoleControllerSensitivityWidget;
  11. protected Widget m_ConsoleMouseSensitivityWidget;
  12. #endif
  13. protected TextWidget m_DetailsLabel;
  14. protected RichTextWidget m_DetailsText;
  15. protected GridSpacerWidget m_Keybindings;
  16. protected GameOptions m_Options;
  17. protected OptionsMenu m_Menu;
  18. // console options accessors
  19. protected ref SwitchOptionsAccess m_KeyboardOption;
  20. protected ref SwitchOptionsAccess m_AimHelperOption;
  21. // console options selectors
  22. protected ref OptionSelectorMultistate m_KeyboardSelector;
  23. protected ref OptionSelectorMultistate m_AimHelperSelector;
  24. // mouse accessors
  25. protected ref SwitchOptionsAccess m_Mouse_InvertOption;
  26. protected ref NumericOptionsAccess m_Mouse_VSensitivityOption;
  27. protected ref NumericOptionsAccess m_Mouse_HSensitivityOption;
  28. protected ref NumericOptionsAccess m_Mouse_AimMod_VSensitivityOption;
  29. protected ref NumericOptionsAccess m_Mouse_AimMod_HSensitivityOption;
  30. // mouse selectors
  31. protected ref OptionSelectorMultistate m_Mouse_InvertSelector;
  32. protected ref OptionSelectorSlider m_Mouse_VSensitivitySelector;
  33. protected ref OptionSelectorSlider m_Mouse_HSensitivitySelector;
  34. protected ref OptionSelectorSlider m_Mouse_AimMod_VSensitivitySelector;
  35. protected ref OptionSelectorSlider m_Mouse_AimMod_HSensitivitySelector;
  36. // gamepad/controller accessors
  37. protected ref NumericOptionsAccess m_ControllerLS_VSensitivityOption;
  38. protected ref NumericOptionsAccess m_ControllerLS_HSensitivityOption;
  39. protected ref NumericOptionsAccess m_ControllerLS_VehicleMod_HSensitivityOption;
  40. protected ref SwitchOptionsAccess m_ControllerRS_InvertOption;
  41. protected ref NumericOptionsAccess m_ControllerRS_VSensitivityOption;
  42. protected ref NumericOptionsAccess m_ControllerRS_HSensitivityOption;
  43. protected ref NumericOptionsAccess m_ControllerRS_CurvatureOption;
  44. protected ref NumericOptionsAccess m_ControllerRS_AimMod_VSensitivityOption;
  45. protected ref NumericOptionsAccess m_ControllerRS_AimMod_HSensitivityOption;
  46. protected ref NumericOptionsAccess m_ControllerRS_AimMod_CurvatureOption;
  47. protected ref NumericOptionsAccess m_ControllerLS_DeadZoneOption;
  48. protected ref NumericOptionsAccess m_ControllerRS_DeadZoneOption;
  49. // gamepad/controller selectors
  50. protected ref OptionSelectorSlider m_ControllerLS_VSensitivitySelector;
  51. protected ref OptionSelectorSlider m_ControllerLS_HSensitivitySelector;
  52. protected ref OptionSelectorSlider m_ControllerLS_VehicleMod_HSensitivitySelector;
  53. protected ref OptionSelectorMultistate m_ControllerRS_InvertSelector;
  54. protected ref OptionSelectorSlider m_ControllerRS_VSensitivitySelector;
  55. protected ref OptionSelectorSlider m_ControllerRS_HSensitivitySelector;
  56. protected ref OptionSelectorSlider m_ControllerRS_CurvatureSelector;
  57. protected ref OptionSelectorSlider m_ControllerRS_AimMod_VSensitivitySelector;
  58. protected ref OptionSelectorSlider m_ControllerRS_AimMod_HSensitivitySelector;
  59. protected ref OptionSelectorSlider m_ControllerRS_AimMod_CurvatureSelector;
  60. protected ref OptionSelectorSlider m_ControllerLS_DeadZoneSelector;
  61. protected ref OptionSelectorSlider m_ControllerRS_DeadZoneSelector;
  62. protected ref map<int, ref Param2<string, string>> m_TextMap;
  63. static const float SLIDER_STEP = 0.01;
  64. protected OptionSelectorBase m_ActiveOption;
  65. void OptionsMenuControls( Widget parent, Widget details_root, GameOptions options, OptionsMenu menu )
  66. {
  67. array<string> opt = { "#options_controls_disabled", "#options_controls_enabled" };
  68. m_Root = GetGame().GetWorkspace().CreateWidgets( GetLayoutName(), parent );
  69. m_Options = options;
  70. m_Menu = menu;
  71. m_DetailsRoot = details_root;
  72. m_DetailsBodyDefault = m_DetailsRoot.FindAnyWidget("settings_details_body");
  73. m_DetailsBodyConnectivity = m_DetailsRoot.FindAnyWidget("settings_details_body_connectivity");
  74. m_DetailsLabel = TextWidget.Cast( m_DetailsRoot.FindAnyWidget( "details_label" ) );
  75. m_DetailsText = RichTextWidget.Cast( m_DetailsRoot.FindAnyWidget( "details_content" ) );
  76. m_Keybindings = GridSpacerWidget.Cast( m_Root.FindAnyWidget( "keyboard_settings_content" ) );
  77. if( m_Keybindings )
  78. m_Keybindings.SetUserID( 777 );
  79. SetOptions( options );
  80. // mouse (PC & consoles)
  81. Widget mouse_InvertSettingOption = m_Root.FindAnyWidget( "mouse_invert_setting_option" );
  82. Widget mouse_VSensitivitySettingOption = m_Root.FindAnyWidget( "mouse_vsensitivity_setting_option" );
  83. Widget mouse_HSensitivitySettingOption = m_Root.FindAnyWidget( "mouse_hsensitivity_setting_option" );
  84. Widget mouse_AimMod_VSensitivitySettingOption = m_Root.FindAnyWidget( "mouse_aimmod_vsensitivity_setting_option" );
  85. Widget mouse_AimMod_HSensitivitySettingOption = m_Root.FindAnyWidget( "mouse_aimmod_hsensitivity_setting_option" );
  86. mouse_InvertSettingOption.SetUserID( OptionAccessType.AT_OPTIONS_MOUSE_YAXIS_INVERTED );
  87. mouse_VSensitivitySettingOption.SetUserID( OptionAccessType.AT_OPTIONS_MOUSE_YAXIS );
  88. mouse_HSensitivitySettingOption.SetUserID( OptionAccessType.AT_OPTIONS_MOUSE_XAXIS );
  89. mouse_AimMod_VSensitivitySettingOption.SetUserID( OptionAccessType.AT_OPTIONS_MOUSE_YAXIS_AIM_MOD );
  90. mouse_AimMod_HSensitivitySettingOption.SetUserID( OptionAccessType.AT_OPTIONS_MOUSE_XAXIS_AIM_MOD );
  91. m_Mouse_InvertSelector = new OptionSelectorMultistate(mouse_InvertSettingOption, m_Mouse_InvertOption.GetIndex(), this, false, opt );
  92. m_Mouse_VSensitivitySelector = new OptionSelectorSlider(mouse_VSensitivitySettingOption, m_Mouse_VSensitivityOption.ReadValue(), this, false, m_Mouse_VSensitivityOption.GetMin(), m_Mouse_VSensitivityOption.GetMax(), true);
  93. m_Mouse_VSensitivitySelector.SetStep(SLIDER_STEP);
  94. m_Mouse_HSensitivitySelector = new OptionSelectorSlider(mouse_HSensitivitySettingOption, m_Mouse_HSensitivityOption.ReadValue(), this, false, m_Mouse_HSensitivityOption.GetMin(), m_Mouse_HSensitivityOption.GetMax(), true);
  95. m_Mouse_HSensitivitySelector.SetStep(SLIDER_STEP);
  96. m_Mouse_AimMod_VSensitivitySelector = new OptionSelectorSlider(mouse_AimMod_VSensitivitySettingOption, m_Mouse_AimMod_VSensitivityOption.ReadValue(), this, false, m_Mouse_AimMod_VSensitivityOption.GetMin(), m_Mouse_AimMod_VSensitivityOption.GetMax(), true);
  97. m_Mouse_AimMod_VSensitivitySelector.SetStep(SLIDER_STEP);
  98. m_Mouse_AimMod_HSensitivitySelector = new OptionSelectorSlider(mouse_AimMod_HSensitivitySettingOption, m_Mouse_AimMod_HSensitivityOption.ReadValue(), this, false, m_Mouse_AimMod_HSensitivityOption.GetMin(), m_Mouse_AimMod_HSensitivityOption.GetMax(), true);
  99. m_Mouse_AimMod_HSensitivitySelector.SetStep(SLIDER_STEP);
  100. m_Mouse_InvertSelector.m_OptionChanged.Insert( UpdateMouseInvertView );
  101. m_Mouse_VSensitivitySelector.m_OptionChanged.Insert( UpdateMouseVSensitivity );
  102. m_Mouse_HSensitivitySelector.m_OptionChanged.Insert( UpdateMouseHSensitivity );
  103. m_Mouse_AimMod_VSensitivitySelector.m_OptionChanged.Insert( UpdateMouseAimModVSensitivity );
  104. m_Mouse_AimMod_HSensitivitySelector.m_OptionChanged.Insert( UpdateMouseAimModHSensitivity );
  105. // controller (consoles only)
  106. #ifdef PLATFORM_CONSOLE
  107. m_MaKOptionAvailable = g_Game.GetGameState() != DayZGameState.IN_GAME || GetGame().GetWorld().IsMouseAndKeyboardEnabledOnServer();
  108. m_ConsoleControllerSensitivityWidget = m_Root.FindAnyWidget( "controller_settings_root" );
  109. m_ConsoleMouseSensitivityWidget = m_Root.FindAnyWidget( "mouse_settings_root" );
  110. Widget keyboardSettingOption = m_Root.FindAnyWidget( "keyboard_setting_option" );
  111. Widget aimHelperSettingOption = m_Root.FindAnyWidget( "aimhelper_setting_option" );
  112. Widget controllerLS_VSensitivitySettingOption = m_Root.FindAnyWidget("controller_ls_vsensitivity_setting_option");
  113. Widget controllerLS_HSensitivitySettingOption = m_Root.FindAnyWidget("controller_ls_hsensitivity_setting_option");
  114. Widget controllerLS_VehicleMod_HSensitivitySettingOption = m_Root.FindAnyWidget("controller_ls_vehicle_sensitivity_setting_option");
  115. Widget controllerRS_InvertSettingOption = m_Root.FindAnyWidget("controller_rs_invert_setting_option");
  116. Widget controllerRS_VSensitivitySettingOption = m_Root.FindAnyWidget("controller_rs_vsensitivity_setting_option");
  117. Widget controllerRS_HSensitivitySettingOption = m_Root.FindAnyWidget("controller_rs_hsensitivity_setting_option");
  118. Widget controllerRS_CurvatureSettingOption = m_Root.FindAnyWidget("controller_rs_curvature_setting_option");
  119. Widget controllerRS_AimMod_VSensitivitySettingOption = m_Root.FindAnyWidget("controller_rs_aimmod_vsensitivity_setting_option");
  120. Widget controllerRS_AimMod_HSensitivitySettingOption = m_Root.FindAnyWidget("controller_rs_aimmod_hsensitivity_setting_option");
  121. Widget controllerRS_AimMod_CurvatureSettingOption = m_Root.FindAnyWidget("controller_rs_aimmod_curvature_setting_option");
  122. Widget controllerLS_DeadZoneOption = m_Root.FindAnyWidget("controller_ls_deadzone_setting_option");
  123. Widget controllerRS_DeadZoneOption = m_Root.FindAnyWidget("controller_rs_deadzone_setting_option");
  124. keyboardSettingOption.SetUserID( OptionAccessType.AT_OPTIONS_MOUSE_AND_KEYBOARD );
  125. aimHelperSettingOption.SetUserID( OptionAccessType.AT_OPTIONS_AIM_HELPER );
  126. controllerLS_VSensitivitySettingOption.SetUserID( OptionAccessType.AT_OPTIONS_CONTROLLER_LS_YAXIS );
  127. controllerLS_HSensitivitySettingOption.SetUserID( OptionAccessType.AT_OPTIONS_CONTROLLER_LS_XAXIS );
  128. controllerLS_VehicleMod_HSensitivitySettingOption.SetUserID( OptionAccessType.AT_OPTIONS_CONTROLLER_LS_XAXIS_VEHICLE_MOD );
  129. controllerRS_InvertSettingOption.SetUserID( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS_INVERTED );
  130. controllerRS_VSensitivitySettingOption.SetUserID( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS );
  131. controllerRS_HSensitivitySettingOption.SetUserID( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_XAXIS );
  132. controllerRS_CurvatureSettingOption.SetUserID( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_CURVATURE );
  133. controllerRS_AimMod_VSensitivitySettingOption.SetUserID( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS_AIM_MOD );
  134. controllerRS_AimMod_HSensitivitySettingOption.SetUserID( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_XAXIS_AIM_MOD );
  135. controllerRS_AimMod_CurvatureSettingOption.SetUserID( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_CURVATURE_AIM_MOD );
  136. controllerLS_DeadZoneOption.SetUserID( OptionAccessType.AT_OPTIONS_CONTROLLER_LS_DEADZONE );
  137. controllerRS_DeadZoneOption.SetUserID( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_DEADZONE );
  138. m_KeyboardSelector = new OptionSelectorMultistate( keyboardSettingOption, m_KeyboardOption.GetIndex(), this, !m_MaKOptionAvailable, opt );
  139. m_AimHelperSelector = new OptionSelectorMultistate( aimHelperSettingOption, m_AimHelperOption.GetIndex(), this, false, opt );
  140. m_ControllerLS_VSensitivitySelector = new OptionSelectorSlider(controllerLS_VSensitivitySettingOption, m_ControllerLS_VSensitivityOption.ReadValue(), this, false, m_ControllerLS_VSensitivityOption.GetMin(), m_ControllerLS_VSensitivityOption.GetMax(), true);
  141. m_ControllerLS_VSensitivitySelector.SetStep(SLIDER_STEP);
  142. m_ControllerLS_HSensitivitySelector = new OptionSelectorSlider(controllerLS_HSensitivitySettingOption, m_ControllerLS_HSensitivityOption.ReadValue(), this, false, m_ControllerLS_HSensitivityOption.GetMin(), m_ControllerLS_HSensitivityOption.GetMax(), true);
  143. m_ControllerLS_HSensitivitySelector.SetStep(SLIDER_STEP);
  144. m_ControllerLS_VehicleMod_HSensitivitySelector = new OptionSelectorSlider(controllerLS_VehicleMod_HSensitivitySettingOption, m_ControllerLS_VehicleMod_HSensitivityOption.ReadValue(), this, false, m_ControllerLS_VehicleMod_HSensitivityOption.GetMin(), m_ControllerLS_VehicleMod_HSensitivityOption.GetMax(), true);
  145. m_ControllerLS_VehicleMod_HSensitivitySelector.SetStep(SLIDER_STEP);
  146. m_ControllerRS_InvertSelector = new OptionSelectorMultistate(controllerRS_InvertSettingOption, m_ControllerRS_InvertOption.GetIndex(), this, false, opt);
  147. m_ControllerRS_VSensitivitySelector = new OptionSelectorSlider(controllerRS_VSensitivitySettingOption, m_ControllerRS_VSensitivityOption.ReadValue(), this, false, m_ControllerRS_VSensitivityOption.GetMin(), m_ControllerRS_VSensitivityOption.GetMax(), true);
  148. m_ControllerRS_VSensitivitySelector.SetStep(SLIDER_STEP);
  149. m_ControllerRS_HSensitivitySelector = new OptionSelectorSlider(controllerRS_HSensitivitySettingOption, m_ControllerRS_HSensitivityOption.ReadValue(), this, false, m_ControllerRS_HSensitivityOption.GetMin(), m_ControllerRS_HSensitivityOption.GetMax(), true);
  150. m_ControllerRS_HSensitivitySelector.SetStep(SLIDER_STEP);
  151. m_ControllerRS_CurvatureSelector = new OptionSelectorSlider(controllerRS_CurvatureSettingOption, m_ControllerRS_CurvatureOption.ReadValue(), this, false, m_ControllerRS_CurvatureOption.GetMin(), m_ControllerRS_CurvatureOption.GetMax(), true);
  152. m_ControllerRS_CurvatureSelector.SetStep(SLIDER_STEP);
  153. m_ControllerRS_AimMod_VSensitivitySelector = new OptionSelectorSlider(controllerRS_AimMod_VSensitivitySettingOption, m_ControllerRS_AimMod_VSensitivityOption.ReadValue(), this, false, m_ControllerRS_AimMod_VSensitivityOption.GetMin(), m_ControllerRS_AimMod_VSensitivityOption.GetMax(), true);
  154. m_ControllerRS_AimMod_VSensitivitySelector.SetStep(SLIDER_STEP);
  155. m_ControllerRS_AimMod_HSensitivitySelector = new OptionSelectorSlider(controllerRS_AimMod_HSensitivitySettingOption, m_ControllerRS_AimMod_HSensitivityOption.ReadValue(), this, false, m_ControllerRS_AimMod_HSensitivityOption.GetMin(), m_ControllerRS_AimMod_HSensitivityOption.GetMax(), true);
  156. m_ControllerRS_AimMod_HSensitivitySelector.SetStep(SLIDER_STEP);
  157. m_ControllerRS_AimMod_CurvatureSelector = new OptionSelectorSlider(controllerRS_AimMod_CurvatureSettingOption, m_ControllerRS_AimMod_CurvatureOption.ReadValue(), this, false, m_ControllerRS_AimMod_CurvatureOption.GetMin(), m_ControllerRS_AimMod_CurvatureOption.GetMax(), true);
  158. m_ControllerRS_AimMod_CurvatureSelector.SetStep(SLIDER_STEP);
  159. m_ControllerLS_DeadZoneSelector = new OptionSelectorSlider(controllerLS_DeadZoneOption, m_ControllerLS_DeadZoneOption.ReadValue(), this, false, m_ControllerLS_DeadZoneOption.GetMin(), m_ControllerLS_DeadZoneOption.GetMax(), true);
  160. m_ControllerLS_DeadZoneSelector.SetStep(SLIDER_STEP);
  161. m_ControllerRS_DeadZoneSelector = new OptionSelectorSlider(controllerRS_DeadZoneOption, m_ControllerRS_DeadZoneOption.ReadValue(), this, false, m_ControllerRS_DeadZoneOption.GetMin(), m_ControllerRS_DeadZoneOption.GetMax(), true);
  162. m_ControllerRS_DeadZoneSelector.SetStep(SLIDER_STEP);
  163. m_KeyboardSelector.m_OptionChanged.Insert( UpdateKeyboard );
  164. m_AimHelperSelector.m_OptionChanged.Insert( UpdateAimHelper );
  165. m_ControllerLS_VSensitivitySelector.m_OptionChanged.Insert( UpdateControllerLS_VSensitivity );
  166. m_ControllerLS_HSensitivitySelector.m_OptionChanged.Insert( UpdateControllerLS_HSensitivity );
  167. m_ControllerLS_VehicleMod_HSensitivitySelector.m_OptionChanged.Insert( UpdateControllerLS_VehicleMod_HSensitivity );
  168. m_ControllerRS_InvertSelector.m_OptionChanged.Insert( UpdateControllerRS_InvertView );
  169. m_ControllerRS_VSensitivitySelector.m_OptionChanged.Insert( UpdateControllerRS_VSensitivity );
  170. m_ControllerRS_HSensitivitySelector.m_OptionChanged.Insert( UpdateControllerRS_HSensitivity );
  171. m_ControllerRS_CurvatureSelector.m_OptionChanged.Insert( UpdateControllerRS_Curvature );
  172. m_ControllerRS_AimMod_VSensitivitySelector.m_OptionChanged.Insert( UpdateControllerRS_AimMod_VSensitivity );
  173. m_ControllerRS_AimMod_HSensitivitySelector.m_OptionChanged.Insert( UpdateControllerRS_AimMod_HSensitivity );
  174. m_ControllerRS_AimMod_CurvatureSelector.m_OptionChanged.Insert( UpdateControllerRS_AimMod_Curvature );
  175. m_ControllerLS_DeadZoneSelector.m_OptionChanged.Insert( UpdateControllerLS_Deadzone );
  176. m_ControllerRS_DeadZoneSelector.m_OptionChanged.Insert( UpdateControllerRS_Deadzone );
  177. ShowConsoleSensitivityOptions(m_KeyboardOption.GetIndex());
  178. bool MaKState = m_KeyboardSelector.IsEnabled() && GetGame().GetInput().IsEnabledMouseAndKeyboardEvenOnServer();
  179. GetGame().GetCallQueue(CALL_CATEGORY_GUI).Call(m_Menu.ToggleDependentOptions,EDependentOptions.MOUSEANDKEYBOARD_QUICKBAR,MaKState);
  180. #endif
  181. FillTextMap();
  182. float x, y, y2;
  183. m_Root.FindAnyWidget( "controls_settings_scroll" ).GetScreenSize( x, y );
  184. m_Root.FindAnyWidget( "controls_settings_root" ).GetScreenSize( x, y2 );
  185. int f = ( y2 > y );
  186. m_Root.FindAnyWidget( "controls_settings_scroll" ).SetAlpha( f );
  187. m_Root.SetHandler( this );
  188. }
  189. string GetLayoutName()
  190. {
  191. #ifdef PLATFORM_CONSOLE
  192. return "gui/layouts/new_ui/options/xbox/controls_tab.layout";
  193. #else
  194. return "gui/layouts/new_ui/options/pc/controls_tab.layout";
  195. #endif
  196. }
  197. void EnterKeybindingMenu()
  198. {
  199. m_Menu.EnterScriptedMenu( MENU_KEYBINDINGS );
  200. }
  201. //! Focuses the first viable item
  202. void Focus()
  203. {
  204. #ifdef PLATFORM_CONSOLE
  205. if (m_KeyboardSelector && m_KeyboardSelector.IsSelectorEnabled())
  206. {
  207. m_KeyboardSelector.Focus();
  208. }
  209. else if (m_AimHelperSelector)
  210. {
  211. m_AimHelperSelector.Focus();
  212. }
  213. #endif
  214. }
  215. override bool OnMouseEnter( Widget w, int x, int y )
  216. {
  217. if ( w && w.IsInherited( ScrollWidget ) )
  218. {
  219. return false;
  220. }
  221. m_Menu.ColorHighlight( w );
  222. return true;
  223. }
  224. override bool OnMouseLeave( Widget w, Widget enterW, int x, int y )
  225. {
  226. if ( w && w.IsInherited( ScrollWidget ) )
  227. {
  228. return false;
  229. }
  230. m_Menu.ColorNormal( w );
  231. return true;
  232. }
  233. override bool OnMouseButtonUp( Widget w, int x, int y, int button )
  234. {
  235. if( button == MouseState.LEFT )
  236. {
  237. #ifndef PLATFORM_CONSOLE
  238. if( w == m_Keybindings )
  239. {
  240. EnterKeybindingMenu();
  241. return true;
  242. }
  243. #endif
  244. }
  245. return false;
  246. }
  247. override bool OnFocus( Widget w, int x, int y )
  248. {
  249. OptionsMenu menu = OptionsMenu.Cast( GetGame().GetUIManager().GetMenu() );
  250. if( menu )
  251. {
  252. menu.OnFocus( w, x, y );
  253. }
  254. if( w )
  255. {
  256. if (TextMapUpdateWidget(w.GetUserID()))
  257. {
  258. return true;
  259. }
  260. if( w.IsInherited( SliderWidget ) )
  261. {
  262. ColorRed( w );
  263. return true;
  264. }
  265. if( w.IsInherited( EditBoxWidget ) )
  266. {
  267. ColorRed( w );
  268. return true;
  269. }
  270. if( IsFocusable( w ) )
  271. {
  272. ColorRed( w );
  273. return true;
  274. }
  275. }
  276. else
  277. {
  278. m_DetailsRoot.Show( false );
  279. }
  280. return ( w != null );
  281. }
  282. override bool OnFocusLost( Widget w, int x, int y )
  283. {
  284. if( IsFocusable( w ) )
  285. {
  286. ColorWhite( w, null );
  287. return true;
  288. }
  289. return false;
  290. }
  291. bool IsFocusable( Widget w )
  292. {
  293. return w && (w.GetFlags() & ~WidgetFlags.NOFOCUS);
  294. }
  295. bool TextMapUpdateWidget(int key)
  296. {
  297. bool connectivityInfoShown = key == OptionIDsScript.OPTION_CONNECTIVITY_INFO;
  298. Param2<string, string> p;
  299. Param tmp = m_TextMap.Get(key);
  300. m_DetailsBodyDefault.Show(!connectivityInfoShown);
  301. m_DetailsBodyConnectivity.Show(connectivityInfoShown);
  302. if (Class.CastTo(p,tmp))
  303. {
  304. m_DetailsRoot.Show(true);
  305. m_DetailsText.Show(true);
  306. m_DetailsLabel.SetText(p.param1);
  307. m_DetailsText.SetText(p.param2);
  308. m_DetailsText.Update();
  309. m_DetailsLabel.Update();
  310. m_DetailsRoot.Update();
  311. m_DetailsBodyConnectivity.Update();
  312. return true;
  313. }
  314. return false;
  315. }
  316. bool IsChanged()
  317. {
  318. #ifdef PLATFORM_CONSOLE
  319. if (m_MaKOptionAvailable)
  320. {
  321. return (IsConsoleOptionChanged() || (m_KeyboardSelector.IsEnabled() && m_KeyboardOption.GetIndex() == 0) || (!m_KeyboardSelector.IsEnabled() && m_KeyboardOption.GetIndex() == 1));
  322. }
  323. else
  324. {
  325. return IsConsoleOptionChanged();
  326. }
  327. #else
  328. return IsOptionChanged();
  329. #endif
  330. }
  331. #ifdef PLATFORM_CONSOLE
  332. bool IsConsoleOptionChanged()
  333. {
  334. bool consoleOptionChanged = (m_ControllerLS_VSensitivitySelector.Changed() || m_ControllerLS_HSensitivitySelector.Changed() || m_ControllerLS_VehicleMod_HSensitivitySelector.Changed() || m_ControllerRS_VSensitivitySelector.Changed() || m_ControllerRS_HSensitivitySelector.Changed() || m_ControllerRS_CurvatureSelector.Changed() || m_ControllerRS_AimMod_VSensitivitySelector.Changed());
  335. if (m_MaKOptionAvailable)
  336. {
  337. return (IsOptionChanged() || consoleOptionChanged);
  338. }
  339. else
  340. {
  341. return consoleOptionChanged;
  342. }
  343. }
  344. #endif
  345. bool IsOptionChanged()
  346. {
  347. return (m_Mouse_VSensitivitySelector.Changed() || m_Mouse_HSensitivitySelector.Changed() || m_Mouse_AimMod_VSensitivitySelector.Changed() || m_Mouse_AimMod_HSensitivitySelector.Changed());
  348. }
  349. void Apply()
  350. {
  351. #ifdef PLATFORM_CONSOLE
  352. bool changed = false;
  353. if (m_MaKOptionAvailable)
  354. {
  355. //on change
  356. if ((m_KeyboardSelector.IsEnabled() && m_KeyboardOption.GetIndex() == 0) || (!m_KeyboardSelector.IsEnabled() && m_KeyboardOption.GetIndex() == 1))
  357. {
  358. m_KeyboardOption.Switch();
  359. changed = true;
  360. }
  361. }
  362. Focus();
  363. GetGame().GetUIManager().ShowUICursor( m_MaKOptionAvailable && m_KeyboardOption.GetIndex() );
  364. if (changed)
  365. g_Game.UpdateInputDeviceDisconnectWarning();
  366. m_Menu.Refresh();
  367. m_ControllerLS_VSensitivitySelector.Refresh();
  368. m_ControllerLS_HSensitivitySelector.Refresh();
  369. m_ControllerLS_VehicleMod_HSensitivitySelector.Refresh();
  370. m_ControllerRS_VSensitivitySelector.Refresh();
  371. m_ControllerRS_HSensitivitySelector.Refresh();
  372. m_ControllerRS_CurvatureSelector.Refresh();
  373. m_ControllerRS_AimMod_VSensitivitySelector.Refresh();
  374. m_ControllerRS_AimMod_HSensitivitySelector.Refresh();
  375. m_ControllerRS_AimMod_CurvatureSelector.Refresh();
  376. m_ControllerLS_DeadZoneSelector.Refresh();
  377. m_ControllerRS_DeadZoneSelector.Refresh();
  378. if (m_MaKOptionAvailable)
  379. {
  380. #endif
  381. m_Mouse_VSensitivitySelector.Refresh();
  382. m_Mouse_HSensitivitySelector.Refresh();
  383. m_Mouse_AimMod_VSensitivitySelector.Refresh();
  384. m_Mouse_AimMod_HSensitivitySelector.Refresh();
  385. #ifdef PLATFORM_CONSOLE
  386. }
  387. #endif
  388. }
  389. void Revert()
  390. {
  391. if(m_Mouse_InvertSelector)
  392. m_Mouse_InvertSelector.SetValue(m_Mouse_InvertOption.GetIndex(), true);
  393. if(m_Mouse_VSensitivitySelector)
  394. {
  395. m_Mouse_VSensitivitySelector.SetValue(m_Mouse_VSensitivityOption.ReadValue(), true);
  396. m_Mouse_VSensitivitySelector.SetValueText();
  397. }
  398. if(m_Mouse_HSensitivitySelector)
  399. {
  400. m_Mouse_HSensitivitySelector.SetValue(m_Mouse_HSensitivityOption.ReadValue(), true);
  401. m_Mouse_HSensitivitySelector.SetValueText();
  402. }
  403. if(m_Mouse_AimMod_VSensitivitySelector)
  404. {
  405. m_Mouse_AimMod_VSensitivitySelector.SetValue(m_Mouse_AimMod_VSensitivityOption.ReadValue(), true);
  406. m_Mouse_AimMod_VSensitivitySelector.SetValueText();
  407. }
  408. if(m_Mouse_AimMod_HSensitivitySelector)
  409. {
  410. m_Mouse_AimMod_HSensitivitySelector.SetValue(m_Mouse_AimMod_HSensitivityOption.ReadValue(), true);
  411. m_Mouse_AimMod_HSensitivitySelector.SetValueText();
  412. }
  413. #ifdef PLATFORM_CONSOLE
  414. if(m_KeyboardSelector)
  415. m_KeyboardSelector.SetValue(m_KeyboardOption.GetIndex(), true);
  416. if(m_AimHelperSelector)
  417. m_AimHelperSelector.SetValue(m_AimHelperOption.GetIndex(), true);
  418. if(m_ControllerLS_VSensitivitySelector)
  419. {
  420. m_ControllerLS_VSensitivitySelector.SetValue(m_ControllerLS_VSensitivityOption.ReadValue(), true);
  421. m_ControllerLS_VSensitivitySelector.SetValueText();
  422. }
  423. if(m_ControllerLS_HSensitivitySelector)
  424. {
  425. m_ControllerLS_HSensitivitySelector.SetValue(m_ControllerLS_HSensitivityOption.ReadValue(), true);
  426. m_ControllerLS_HSensitivitySelector.SetValueText();
  427. }
  428. if(m_ControllerLS_VehicleMod_HSensitivitySelector)
  429. {
  430. m_ControllerLS_VehicleMod_HSensitivitySelector.SetValue(m_ControllerLS_VehicleMod_HSensitivityOption.ReadValue(), true);
  431. m_ControllerLS_VehicleMod_HSensitivitySelector.SetValueText();
  432. }
  433. if(m_ControllerRS_InvertSelector)
  434. m_ControllerRS_InvertSelector.SetValue(m_ControllerRS_InvertOption.GetIndex(), true);
  435. if(m_ControllerRS_VSensitivitySelector)
  436. {
  437. m_ControllerRS_VSensitivitySelector.SetValue(m_ControllerRS_VSensitivityOption.ReadValue(), true);
  438. m_ControllerRS_VSensitivitySelector.SetValueText();
  439. }
  440. if(m_ControllerRS_HSensitivitySelector)
  441. {
  442. m_ControllerRS_HSensitivitySelector.SetValue(m_ControllerRS_HSensitivityOption.ReadValue(), true);
  443. m_ControllerRS_HSensitivitySelector.SetValueText();
  444. }
  445. if(m_ControllerRS_CurvatureSelector)
  446. {
  447. m_ControllerRS_CurvatureSelector.SetValue(m_ControllerRS_CurvatureOption.ReadValue(), true);
  448. m_ControllerRS_CurvatureSelector.SetValueText();
  449. }
  450. if(m_ControllerRS_AimMod_VSensitivitySelector)
  451. {
  452. m_ControllerRS_AimMod_VSensitivitySelector.SetValue(m_ControllerRS_AimMod_VSensitivityOption.ReadValue(), true);
  453. m_ControllerRS_AimMod_VSensitivitySelector.SetValueText();
  454. }
  455. if(m_ControllerRS_AimMod_HSensitivitySelector)
  456. {
  457. m_ControllerRS_AimMod_HSensitivitySelector.SetValue(m_ControllerRS_AimMod_HSensitivityOption.ReadValue(), true);
  458. m_ControllerRS_AimMod_HSensitivitySelector.SetValueText();
  459. }
  460. if(m_ControllerRS_AimMod_CurvatureSelector)
  461. {
  462. m_ControllerRS_AimMod_CurvatureSelector.SetValue(m_ControllerRS_AimMod_CurvatureOption.ReadValue(), true);
  463. m_ControllerRS_AimMod_CurvatureSelector.SetValueText();
  464. }
  465. if(m_ControllerLS_DeadZoneSelector)
  466. {
  467. m_ControllerLS_DeadZoneSelector.SetValue(m_ControllerLS_DeadZoneOption.ReadValue(), true);
  468. m_ControllerLS_DeadZoneSelector.SetValueText();
  469. }
  470. if(m_ControllerRS_DeadZoneSelector)
  471. {
  472. m_ControllerRS_DeadZoneSelector.SetValue(m_ControllerRS_DeadZoneOption.ReadValue(), true);
  473. m_ControllerRS_DeadZoneSelector.SetValueText();
  474. }
  475. #endif
  476. }
  477. void SetToDefaults()
  478. {
  479. if(m_Mouse_InvertSelector)
  480. m_Mouse_InvertSelector.SetValue(m_Mouse_InvertOption.GetDefaultIndex(), true);
  481. if(m_Mouse_VSensitivitySelector)
  482. {
  483. m_Mouse_VSensitivitySelector.SetValue(m_Mouse_VSensitivityOption.GetDefault(), true);
  484. m_Mouse_VSensitivitySelector.SetValueText();
  485. }
  486. if(m_Mouse_HSensitivitySelector)
  487. {
  488. m_Mouse_HSensitivitySelector.SetValue(m_Mouse_HSensitivityOption.GetDefault(), true);
  489. m_Mouse_HSensitivitySelector.SetValueText();
  490. }
  491. if(m_Mouse_AimMod_VSensitivitySelector)
  492. {
  493. m_Mouse_AimMod_VSensitivitySelector.SetValue(m_Mouse_AimMod_VSensitivityOption.GetDefault(), true);
  494. m_Mouse_AimMod_VSensitivitySelector.SetValueText();
  495. }
  496. if(m_Mouse_AimMod_HSensitivitySelector)
  497. {
  498. m_Mouse_AimMod_HSensitivitySelector.SetValue(m_Mouse_AimMod_HSensitivityOption.GetDefault(), true);
  499. m_Mouse_AimMod_HSensitivitySelector.SetValueText();
  500. }
  501. #ifdef PLATFORM_CONSOLE
  502. if(m_KeyboardSelector)
  503. m_KeyboardSelector.SetValue(m_KeyboardOption.GetDefaultIndex(), true);
  504. if(m_AimHelperSelector)
  505. m_AimHelperSelector.SetValue(m_AimHelperOption.GetDefaultIndex(), true);
  506. if(m_ControllerLS_VSensitivitySelector)
  507. {
  508. m_ControllerLS_VSensitivitySelector.SetValue(m_ControllerLS_VSensitivityOption.GetDefault(), true);
  509. m_ControllerLS_VSensitivitySelector.SetValueText();
  510. }
  511. if(m_ControllerLS_HSensitivitySelector)
  512. {
  513. m_ControllerLS_HSensitivitySelector.SetValue(m_ControllerLS_HSensitivityOption.GetDefault(), true);
  514. m_ControllerLS_HSensitivitySelector.SetValueText();
  515. }
  516. if(m_ControllerLS_VehicleMod_HSensitivitySelector)
  517. {
  518. m_ControllerLS_VehicleMod_HSensitivitySelector.SetValue(m_ControllerLS_VehicleMod_HSensitivityOption.GetDefault(), true);
  519. m_ControllerLS_VehicleMod_HSensitivitySelector.SetValueText();
  520. }
  521. if(m_ControllerRS_InvertSelector)
  522. m_ControllerRS_InvertSelector.SetValue(m_ControllerRS_InvertOption.GetDefaultIndex(), true);
  523. if(m_ControllerRS_VSensitivitySelector)
  524. {
  525. m_ControllerRS_VSensitivitySelector.SetValue(m_ControllerRS_VSensitivityOption.GetDefault(), true);
  526. m_ControllerRS_VSensitivitySelector.SetValueText();
  527. }
  528. if(m_ControllerRS_HSensitivitySelector)
  529. {
  530. m_ControllerRS_HSensitivitySelector.SetValue(m_ControllerRS_HSensitivityOption.GetDefault(), true);
  531. m_ControllerRS_HSensitivitySelector.SetValueText();
  532. }
  533. if(m_ControllerRS_CurvatureSelector)
  534. {
  535. m_ControllerRS_CurvatureSelector.SetValue(m_ControllerRS_CurvatureOption.GetDefault(), true);
  536. m_ControllerRS_CurvatureSelector.SetValueText();
  537. }
  538. if(m_ControllerRS_AimMod_VSensitivitySelector)
  539. {
  540. m_ControllerRS_AimMod_VSensitivitySelector.SetValue(m_ControllerRS_AimMod_VSensitivityOption.GetDefault(), true);
  541. m_ControllerRS_AimMod_VSensitivitySelector.SetValueText();
  542. }
  543. if(m_ControllerRS_AimMod_HSensitivitySelector)
  544. {
  545. m_ControllerRS_AimMod_HSensitivitySelector.SetValue(m_ControllerRS_AimMod_HSensitivityOption.GetDefault(), true);
  546. m_ControllerRS_AimMod_HSensitivitySelector.SetValueText();
  547. }
  548. if(m_ControllerRS_AimMod_CurvatureSelector)
  549. {
  550. m_ControllerRS_AimMod_CurvatureSelector.SetValue(m_ControllerRS_AimMod_CurvatureOption.GetDefault(), true);
  551. m_ControllerRS_AimMod_CurvatureSelector.SetValueText();
  552. }
  553. if(m_ControllerLS_DeadZoneSelector)
  554. {
  555. m_ControllerLS_DeadZoneSelector.SetValue(m_ControllerLS_DeadZoneOption.GetDefault(), true);
  556. m_ControllerLS_DeadZoneSelector.SetValueText();
  557. }
  558. if(m_ControllerRS_DeadZoneSelector)
  559. {
  560. m_ControllerRS_DeadZoneSelector.SetValue(m_ControllerRS_DeadZoneOption.GetDefault(), true);
  561. m_ControllerRS_DeadZoneSelector.SetValueText();
  562. }
  563. Focus();
  564. #endif
  565. }
  566. #ifdef PLATFORM_CONSOLE
  567. void ShowConsoleSensitivityOptions(int index)
  568. {
  569. m_ConsoleMouseSensitivityWidget.Show(index == 1 && m_MaKOptionAvailable);
  570. }
  571. void UpdateKeyboard( int index )
  572. {
  573. Focus();
  574. ShowConsoleSensitivityOptions(index);
  575. m_Menu.OnChanged();
  576. //m_Menu.ToggleDependentOptions(EDependentOptions.MOUSEANDKEYBOARD_QUICKBAR,index == 1 && GetGame().GetInput().IsEnabledMouseAndKeyboardEvenOnServer());
  577. }
  578. void UpdateAimHelper( int index )
  579. {
  580. if ( m_AimHelperOption.GetIndex() != index )
  581. {
  582. m_AimHelperOption.Switch();
  583. m_Menu.OnChanged();
  584. }
  585. }
  586. void UpdateControllerLS_VSensitivity( float value )
  587. {
  588. m_ControllerLS_VSensitivityOption.WriteValue( value );
  589. m_Menu.OnChanged();
  590. }
  591. void UpdateControllerLS_HSensitivity( float value )
  592. {
  593. m_ControllerLS_HSensitivityOption.WriteValue( value );
  594. m_Menu.OnChanged();
  595. }
  596. void UpdateControllerLS_VehicleMod_HSensitivity( float value )
  597. {
  598. m_ControllerLS_VehicleMod_HSensitivityOption.WriteValue( value );
  599. m_Menu.OnChanged();
  600. }
  601. void UpdateControllerRS_InvertView( int index )
  602. {
  603. if ( m_ControllerRS_InvertOption.GetIndex() != index )
  604. {
  605. m_ControllerRS_InvertOption.Switch();
  606. m_Menu.OnChanged();
  607. }
  608. }
  609. void UpdateControllerRS_VSensitivity( float value )
  610. {
  611. m_ControllerRS_VSensitivityOption.WriteValue( value );
  612. m_Menu.OnChanged();
  613. }
  614. void UpdateControllerRS_HSensitivity( float value )
  615. {
  616. m_ControllerRS_HSensitivityOption.WriteValue( value );
  617. m_Menu.OnChanged();
  618. }
  619. void UpdateControllerRS_Curvature( float value )
  620. {
  621. m_ControllerRS_CurvatureOption.WriteValue( value );
  622. m_Menu.OnChanged();
  623. }
  624. void UpdateControllerLS_Deadzone( float value )
  625. {
  626. m_ControllerLS_DeadZoneOption.WriteValue( value );
  627. m_Menu.OnChanged();
  628. }
  629. void UpdateControllerRS_Deadzone( float value )
  630. {
  631. m_ControllerRS_DeadZoneOption.WriteValue( value );
  632. m_Menu.OnChanged();
  633. }
  634. void UpdateControllerRS_AimMod_VSensitivity( float value )
  635. {
  636. m_ControllerRS_AimMod_VSensitivityOption.WriteValue( value );
  637. m_Menu.OnChanged();
  638. }
  639. void UpdateControllerRS_AimMod_HSensitivity( float value )
  640. {
  641. m_ControllerRS_AimMod_HSensitivityOption.WriteValue( value );
  642. m_Menu.OnChanged();
  643. }
  644. void UpdateControllerRS_AimMod_Curvature( float value )
  645. {
  646. m_ControllerRS_AimMod_CurvatureOption.WriteValue( value );
  647. m_Menu.OnChanged();
  648. }
  649. #endif
  650. void UpdateMouseInvertView( int index )
  651. {
  652. if ( m_Mouse_InvertOption.GetIndex() != index )
  653. {
  654. m_Mouse_InvertOption.Switch();
  655. m_Menu.OnChanged();
  656. }
  657. }
  658. void UpdateMouseVSensitivity( float value )
  659. {
  660. m_Mouse_VSensitivityOption.WriteValue( value );
  661. m_Menu.OnChanged();
  662. }
  663. void UpdateMouseHSensitivity( float value )
  664. {
  665. m_Mouse_HSensitivityOption.WriteValue( value );
  666. m_Menu.OnChanged();
  667. }
  668. void UpdateMouseAimModVSensitivity( float value )
  669. {
  670. m_Mouse_AimMod_VSensitivityOption.WriteValue( value );
  671. m_Menu.OnChanged();
  672. }
  673. void UpdateMouseAimModHSensitivity( float value )
  674. {
  675. m_Mouse_AimMod_HSensitivityOption.WriteValue( value );
  676. m_Menu.OnChanged();
  677. }
  678. void ReloadOptions()
  679. {
  680. m_Menu.ReloadOptions();
  681. }
  682. void SetOptions( GameOptions options )
  683. {
  684. m_Options = options;
  685. // mouse (PC & consoles)
  686. m_Mouse_InvertOption = SwitchOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_MOUSE_YAXIS_INVERTED ) );
  687. m_Mouse_VSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_MOUSE_YAXIS ) );
  688. m_Mouse_HSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_MOUSE_XAXIS ) );
  689. m_Mouse_AimMod_VSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_MOUSE_YAXIS_AIM_MOD ) );
  690. m_Mouse_AimMod_HSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_MOUSE_XAXIS_AIM_MOD ) );
  691. // controller (consoles only)
  692. #ifdef PLATFORM_CONSOLE
  693. m_KeyboardOption = SwitchOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_MOUSE_AND_KEYBOARD ) );
  694. m_AimHelperOption = SwitchOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_AIM_HELPER ) );
  695. m_ControllerLS_VSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_CONTROLLER_LS_YAXIS ) );
  696. m_ControllerLS_HSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_CONTROLLER_LS_XAXIS ) );
  697. m_ControllerLS_VehicleMod_HSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_CONTROLLER_LS_XAXIS_VEHICLE_MOD ) );
  698. m_ControllerRS_InvertOption = SwitchOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS_INVERTED ) );
  699. m_ControllerRS_VSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS ) );
  700. m_ControllerRS_HSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_XAXIS ) );
  701. m_ControllerRS_CurvatureOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_CURVATURE ) );
  702. m_ControllerRS_AimMod_VSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS_AIM_MOD ) );
  703. m_ControllerRS_AimMod_HSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_XAXIS_AIM_MOD ) );
  704. m_ControllerRS_AimMod_CurvatureOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_CURVATURE_AIM_MOD ) );
  705. m_ControllerLS_DeadZoneOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_CONTROLLER_LS_DEADZONE ) );
  706. m_ControllerRS_DeadZoneOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_DEADZONE ) );
  707. #endif
  708. Revert();
  709. }
  710. void ToggleDependentOptions(int mode, bool state)
  711. {
  712. }
  713. void InitDependentOptionsVisibility()
  714. {
  715. }
  716. void FillTextMap()
  717. {
  718. m_TextMap = new map<int, ref Param2<string, string>>;
  719. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_MOUSE_YAXIS_INVERTED, new Param2<string, string>( "#STR_Invert_Vertical_tip_header", "#STR_Invert_Vertical_tip" ) );
  720. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_MOUSE_YAXIS, new Param2<string, string>( "#STR_Camera_V_Sensitivity_tip_header", "#STR_Camera_V_Sensitivity_tip" ) );
  721. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_MOUSE_XAXIS, new Param2<string, string>( "#STR_Camera_H_Sensitivity_tip_header", "#STR_Camera_H_Sensitivity_tip" ) );
  722. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_MOUSE_YAXIS_AIM_MOD, new Param2<string, string>( "#STR_Aiming_V_Sensitivity_tip_header", "#STR_Aiming_V_Sensitivity_tip" ) );
  723. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_MOUSE_XAXIS_AIM_MOD, new Param2<string, string>( "#STR_Aiming_H_Sensitivity_tip_header", "#STR_Aiming_H_Sensitivity_tip" ) );
  724. #ifdef PLATFORM_CONSOLE
  725. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_MOUSE_AND_KEYBOARD, new Param2<string, string>( "#xbox_options_controls_mandk_contr", "#xbox_options_controls_mandk_contr_desc" ) );
  726. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_AIM_HELPER, new Param2<string, string>( "#ps4_options_controls_aim_helper_contr", "#ps4_options_controls_aim_helper_contr_desc" ) );
  727. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_CONTROLLER_LS_YAXIS, new Param2<string, string>( "#STR_Movement_V_Sensitivity_tip_header", "#STR_Movement_V_Sensitivity_tip" ) );
  728. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_CONTROLLER_LS_XAXIS, new Param2<string, string>( "#STR_Movement_H_Sensitivity_tip_header", "#STR_Movement_H_Sensitivity_tip" ) );
  729. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_CONTROLLER_LS_XAXIS_VEHICLE_MOD, new Param2<string, string>( "#STR_Movement_Vehicle_Sensitivity_tip_header", "#STR_Movement_Vehicle_Sensitivity_tip" ) );
  730. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS_INVERTED, new Param2<string, string>( "#STR_Invert_Vertical_tip_header", "#STR_Invert_Vertical_tip" ) );
  731. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS, new Param2<string, string>( "#STR_Camera_V_Sensitivity_tip_header", "#STR_Camera_V_Sensitivity_tip" ) );
  732. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_XAXIS, new Param2<string, string>( "#STR_Camera_H_Sensitivity_tip_header", "#STR_Camera_H_Sensitivity_tip" ) );
  733. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_CURVATURE, new Param2<string, string>( "#STR_Camera_Curvature_tip_header", "#STR_Camera_Curvature_tip" ) );
  734. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS_AIM_MOD, new Param2<string, string>( "#STR_Aiming_V_Sensitivity_tip_header", "#STR_Aiming_V_Sensitivity_tip" ) );
  735. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_XAXIS_AIM_MOD, new Param2<string, string>( "#STR_Aiming_H_Sensitivity_tip_header", "#STR_Aiming_H_Sensitivity_tip" ) );
  736. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_CURVATURE_AIM_MOD, new Param2<string, string>( "#STR_Aiming_Curvature_tip_header", "#STR_Camera_Curvature_tip" ) );
  737. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_CONTROLLER_LS_DEADZONE, new Param2<string, string>( "#STR_Aiming_L_Deadzone_tip_header", "#STR_Aiming_L_Deadzone_tip" ) );
  738. m_TextMap.Insert( OptionAccessType.AT_OPTIONS_CONTROLLER_RS_DEADZONE, new Param2<string, string>( "#STR_Aiming_R_Deadzone_tip_header", "#STR_Aiming_R_Deadzone_tip" ) );
  739. #endif
  740. }
  741. //Coloring functions (Until WidgetStyles are useful)
  742. void ColorRed( Widget w )
  743. {
  744. SetFocus( w );
  745. ButtonWidget button;
  746. if (Class.CastTo(button,w))
  747. {
  748. button.SetTextColor( ARGB( 255, 255, 0, 0 ) );
  749. button.SetAlpha( 0.9 );
  750. }
  751. }
  752. void ColorWhite( Widget w, Widget enterW )
  753. {
  754. ButtonWidget button;
  755. if (Class.CastTo(button,w))
  756. {
  757. button.SetTextColor( ARGB( 255, 255, 255, 255 ) );
  758. button.SetAlpha( 0.0 );
  759. }
  760. }
  761. void SetActiveOption(OptionSelectorBase option)
  762. {
  763. m_ActiveOption = option;
  764. }
  765. OptionSelectorBase GetActiveOption()
  766. {
  767. return m_ActiveOption;
  768. }
  769. }