local f0_local0 = module local f0_local1, f0_local2 = ... f0_local0( f0_local1, package.seeall ) CoD.PrintModuleLoad( _NAME ) function GetDisplay( f1_arg0 ) return Engine.GetBinding( f1_arg0 ) end function bindKey( f2_arg0 ) Engine.BindKey( f2_arg0 ) end function OptionsWindowRefresh( f3_arg0, f3_arg1 ) if f3_arg1.source_input == "button_action" or f3_arg1.source_input == "key_bound" then f3_arg0:processEvent( { name = "menu_refresh" } ) f3_arg0:processEvent( { name = "refresh_content" } ) end end function OptionsWindowTriggerRefresh( f4_arg0, f4_arg1 ) f4_arg0:dispatchEventToRoot( { name = "options_window_refresh", source_input = f4_arg1.name, immediate = true } ) end function SinglePlayerDisableFunction( f5_arg0, f5_arg1 ) return not Engine.IsMultiplayer() end function ControlBindFactory( f6_arg0, f6_arg1, f6_arg2 ) return { type = "UIGenericButton", id = "bind_" .. f6_arg0, disabledFunc = f6_arg2 or function () return false end , properties = { variant = GenericButtonSettings.Variants.Info, button_text = Engine.Localize( f6_arg0 ), button_display_func = function ( f8_arg0, f8_arg1 ) return GetDisplay( f6_arg1 ) end , button_action_func = function ( f9_arg0, f9_arg1 ) Engine.BindKey( f6_arg1 ) OptionsWindowTriggerRefresh( f9_arg0, f9_arg1 ) end }, handlers = { element_refresh = MBh.EmitEvent( "content_refresh" ), key_bound = OptionsWindowTriggerRefresh } } end function OptionFactoryProfileData( f10_arg0, f10_arg1, f10_arg2, f10_arg3, f10_arg4, f10_arg5 ) local f10_local0 = Engine.GetProfileData( f10_arg0 ) local f10_local1 = 1 for f10_local5, f10_local6 in pairs( f10_arg3 ) do if f10_local6.value == f10_local0 then f10_local1 = f10_local5 break end end f10_local2 = function ( f11_arg0, f11_arg1 ) Engine.ExecNow( f10_arg1 ) Engine.ExecNow( "profile_menuDvarsFinish" ) OptionsWindowTriggerRefresh( f11_arg0, f11_arg1 ) end f10_local3 = { type = "UIGenericButton", id = "option_" .. f10_arg0, disabledFunc = f10_arg4 or function () return false end } f10_local4 = { variant = GenericButtonSettings.Variants.Select } if f10_arg5 then local f10_local7 = f10_arg2 end f10_local4.button_text = f10_local7 or Engine.Localize( f10_arg2 ) f10_local4.button_display_func = function ( f13_arg0, f13_arg1 ) return Engine.Localize( f10_arg3[f10_local1].text ) end f10_local4.button_left_func = function ( f14_arg0, f14_arg1 ) f10_local1 = 1 + (#f10_arg3 + f10_local1 - 1 - 1) % #f10_arg3 f10_local2( f14_arg0, f14_arg1 ) end f10_local4.button_right_func = function ( f15_arg0, f15_arg1 ) f10_local1 = 1 + (f10_local1 - 1 + 1) % #f10_arg3 f10_local2( f15_arg0, f15_arg1 ) end f10_local3.properties = f10_local4 f10_local3.handlers = { element_refresh = MBh.EmitEvent( "content_refresh" ) } return f10_local3 end function OptionsFeeder( f16_arg0 ) local f16_local0 = {} Engine.ExecNow( "profile_menuDvarsSetup" ) f16_local0[#f16_local0 + 1] = OptionFactoryProfileData( "leanEnabled", "profile_toggleLean", "@LUA_MENU_LEAN_TOGGLE", { { text = "@LUA_MENU_ENABLED", value = true }, { text = "@LUA_MENU_DISABLED", value = false } } ) f16_local0[#f16_local0 + 1] = ControlBindFactory( "@MENU_FIRE_WEAPON", "+attack" ) f16_local0[#f16_local0 + 1] = ControlBindFactory( "@MENU_AIM_DOWN_THE_SIGHT", "+toggleads_throw" ) f16_local0[#f16_local0 + 1] = ControlBindFactory( "@MENU_HOLD_AIM_DOWN_SIGHT", "+speed_throw" ) f16_local0[#f16_local0 + 1] = ControlBindFactory( "@MENU_RELOAD_WEAPON", "+reload" ) f16_local0[#f16_local0 + 1] = ControlBindFactory( "@MENU_SWITCH_WEAPON", "weapnext" ) f16_local0[#f16_local0 + 1] = ControlBindFactory( "@PLATFORM_MELEEZOOM", "+melee_zoom" ) f16_local0[#f16_local0 + 1] = ControlBindFactory( "@MENU_USE", "+activate" ) f16_local0[#f16_local0 + 1] = ControlBindFactory( "@MENU_FRAG_EQUIPMENT", "+frag" ) f16_local0[#f16_local0 + 1] = ControlBindFactory( "@MENU_THROW_SPECIAL_GRENADE", "+smoke" ) if SinglePlayerDisableFunction() then f16_local0[#f16_local0 + 1] = ControlBindFactory( "@MENU_WEAPON_ATTACHMENT", "+actionslot 3" ) f16_local0[#f16_local0 + 1] = ControlBindFactory( "@MENU_INVENTORY_KILLSTREAK", "+actionslot 4" ) f16_local0[#f16_local0 + 1] = ControlBindFactory( "@MENU_NVG_WATCH", "+actionslot 1" ) else f16_local0[#f16_local0 + 1] = ControlBindFactory( "@MENU_KILLSTREAK_REWARD_SLOT_1", "+actionslot 4" ) f16_local0[#f16_local0 + 1] = ControlBindFactory( "@MENU_KILLSTREAK_REWARD_SLOT_2", "+actionslot 5" ) f16_local0[#f16_local0 + 1] = ControlBindFactory( "@MENU_KILLSTREAK_REWARD_SLOT_3", "+actionslot 6" ) f16_local0[#f16_local0 + 1] = ControlBindFactory( "@MENU_KILLSTREAK_REWARD_SLOT_4", "+actionslot 7" ) f16_local0[#f16_local0 + 1] = ControlBindFactory( Engine.IsAliensMode() and "ALIENS_UPGRADE_ABILITIES" or "@PLATFORM_UI_SHOW_SCORES", "togglescores" ) end return f16_local0 end function OptionsMainCreate( f17_arg0, f17_arg1 ) f17_arg0:processEvent( LUI.ButtonHelperText.CommonEvents.addBackButton ) end function actions_controls_vlist() return { type = "UIScrollingVerticalList", childrenFeeder = OptionsFeeder, properties = { use_arrows = true, sendScrollEvents = true, exclusiveController = MBh.Property( "exclusiveController" ) }, states = { default = { leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = false, top = OptionsListDims.menu_top, bottom = OptionsListDims.menu_bottom, left = OptionsListDims.menu_left, right = OptionsListDims.menu_right } }, handlers = { options_window_refresh = OptionsWindowRefresh } } end function actions_controls() return { type = "UIElement", id = "actions_controls_id", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = 0, bottom = 0, left = 0, right = 0 } }, handlers = { menu_create = OptionsMainCreate, menu_close = function ( f20_arg0, f20_arg1 ) Engine.Exec( "updategamerprofile" ) end }, children = { { type = "generic_menu_title", properties = { menu_title = Engine.Localize( "@LUA_MENU_ACTIONS" ) } }, { type = "actions_controls_vlist", id = "actions_cotnrols_vlist_id" }, { type = "button_helper_text_main", id = "button_helper_text_id" }, { type = "UIBindButton", handlers = { button_secondary = MBh.LeaveMenu() } } } } end LUI.MenuBuilder.registerDef( "actions_controls_vlist", actions_controls_vlist ) LUI.MenuBuilder.registerDef( "actions_controls", actions_controls ) LockTable( _M )