mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-07 13:49:33 -05:00
534 lines
21 KiB
Lua
534 lines
21 KiB
Lua
require("T6.HardwareProfileLeftRightSelector")
|
|
require("T6.HardwareProfileLeftRightSlider")
|
|
require("T6.KeyBindSelector")
|
|
require("T6.CategoryCarousel")
|
|
require("T6.Menus.OptionsControls")
|
|
require("T6.Menus.OptionsSettings")
|
|
require("T6.Menus.SafeAreaMenu")
|
|
require("T6.Menus.SystemInfoMenu")
|
|
require("T6.AudioSettingsOptions")
|
|
require("T6.BrightnessOptions")
|
|
require("T6.ButtonLayoutOptions")
|
|
require("T6.StickLayoutOptions")
|
|
CoD.Options = {}
|
|
CoD.Options.ButtonListWidth = 500
|
|
CoD.Options.Width = 540
|
|
CoD.Options.AdjustSFX = "cac_safearea"
|
|
|
|
CoD.Options.Back = function(OptionsMenuWidget, ClientInstance)
|
|
CoD.Options.UpdateWindowPosition()
|
|
Engine.Exec(ClientInstance.controller, "updategamerprofile")
|
|
Engine.SaveHardwareProfile()
|
|
Engine.ApplyHardwareProfileSettings()
|
|
if CoD.isSinglePlayer == true then
|
|
Engine.SendMenuResponse(ClientInstance.controller, "luisystem", "modal_stop")
|
|
end
|
|
OptionsMenuWidget:goBack(ClientInstance.controller)
|
|
end
|
|
|
|
CoD.Options.CloseMenu = function(OptionsMenuWidget, ClientInstance)
|
|
CoD.Options.UpdateWindowPosition()
|
|
Engine.Exec(ClientInstance.controller, "updategamerprofile")
|
|
Engine.SaveHardwareProfile()
|
|
Engine.ApplyHardwareProfileSettings()
|
|
OptionsMenuWidget:close()
|
|
end
|
|
|
|
CoD.Options.Close = function(OptionsMenuWidget)
|
|
Engine.Exec(OptionsMenuWidget:getOwner(), "updategamerprofile")
|
|
CoD.Menu.close(OptionsMenuWidget)
|
|
end
|
|
|
|
CoD.Options.ApplyChanges = function(f4_arg0, ClientInstance)
|
|
CoD.Options.SetDvarChanges(f4_arg0)
|
|
Engine.Exec(ClientInstance.controller, "vid_restart")
|
|
end
|
|
|
|
CoD.Options.OpenControls = function(OptionsMenuWidget, ClientInstance)
|
|
if OptionsMenuWidget:getParent() then
|
|
OptionsMenuWidget:saveState()
|
|
OptionsMenuWidget:openMenu("OptionsControlsMenu", ClientInstance.controller)
|
|
OptionsMenuWidget:close()
|
|
end
|
|
end
|
|
|
|
CoD.Options.OpenSettings = function(OptionsMenuWidget, ClientInstance)
|
|
if OptionsMenuWidget:getParent() then
|
|
OptionsMenuWidget:saveState()
|
|
OptionsMenuWidget:openMenu("OptionsSettingsMenu", ClientInstance.controller)
|
|
OptionsMenuWidget:close()
|
|
end
|
|
end
|
|
|
|
CoD.Options.OpenSystemInfo = function(OptionsMenuWidget, ClientInstance)
|
|
OptionsMenuWidget:saveState()
|
|
OptionsMenuWidget:openMenu("SystemInfo", ClientInstance.controller)
|
|
Engine.PlaySound("cac_grid_nav")
|
|
OptionsMenuWidget:close()
|
|
end
|
|
|
|
CoD.Options.IsCommonLoaded = function(f8_arg0, f8_arg1)
|
|
if Engine.IsCommonLoaded() then
|
|
f8_arg0.timer:close()
|
|
f8_arg0.spinner:close()
|
|
f8_arg0.message:close()
|
|
CoD.Options.AddOptionCategories(f8_arg0)
|
|
end
|
|
end
|
|
|
|
CoD.Options.SupportsSubtitles = function()
|
|
local Language = Dvar.loc_language:get()
|
|
if Language == CoD.LANGUAGE_ENGLISH or Language == CoD.LANGUAGE_BRITISH or Language == CoD.LANGUAGE_POLISH or Language == CoD.LANGUAGE_JAPANESE or Language == CoD.LANGUAGE_FULLJAPANESE then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end
|
|
|
|
CoD.Options.SupportsMatureContent = function()
|
|
if Dvar.loc_language:get() == CoD.LANGUAGE_ENGLISH then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end
|
|
|
|
CoD.Options.Button_EnumProfile_SelectionChanged = function(AudioSettingsChoice)
|
|
Engine.SetProfileVar(AudioSettingsChoice.parentSelectorButton.m_currentController, AudioSettingsChoice.parentSelectorButton.m_profileVarName, AudioSettingsChoice.value)
|
|
AudioSettingsChoice.parentSelectorButton.hintText = AudioSettingsChoice.extraParams.associatedHintText
|
|
local f11_local0 = AudioSettingsChoice.parentSelectorButton:getParent()
|
|
if f11_local0 ~= nil and f11_local0.hintText ~= nil then
|
|
f11_local0.hintText:updateText(AudioSettingsChoice.parentSelectorButton.hintText)
|
|
end
|
|
end
|
|
|
|
CoD.Options.Button_AddChoices = function(Button)
|
|
if Button.strings == nil or #Button.strings == 0 then
|
|
return
|
|
end
|
|
for Index = 1, #Button.strings, 1 do
|
|
Button:addChoice(Button.strings[Index], Button.values[Index])
|
|
end
|
|
end
|
|
|
|
CoD.Options.Button_AddChoices_EnabledOrDisabled = function(Button)
|
|
Button.strings = {
|
|
Engine.Localize("MENU_DISABLED_CAPS"),
|
|
Engine.Localize("MENU_ENABLED_CAPS"),
|
|
}
|
|
Button.values = {
|
|
0,
|
|
1,
|
|
}
|
|
CoD.Options.Button_AddChoices(Button)
|
|
end
|
|
|
|
CoD.Options.Button_AddChoices_OnOrOff = function(Button)
|
|
Button.strings = {
|
|
Engine.Localize("MENU_OFF_CAPS"),
|
|
Engine.Localize("MENU_ON_CAPS"),
|
|
}
|
|
Button.values = {
|
|
0,
|
|
1,
|
|
}
|
|
CoD.Options.Button_AddChoices(Button)
|
|
end
|
|
|
|
CoD.Options.Button_AddChoices_YesOrNo = function(Button)
|
|
Button.strings = {
|
|
Engine.Localize("MENU_NO_CAPS"),
|
|
Engine.Localize("MENU_YES_CAPS"),
|
|
}
|
|
Button.values = {
|
|
0,
|
|
1,
|
|
}
|
|
CoD.Options.Button_AddChoices(Button)
|
|
end
|
|
|
|
CoD.Options.AddHardwareProfileLeftRightSelector = function(ButtonList, f16_arg1, f16_arg2, f16_arg3, f16_arg4, f16_arg5)
|
|
local f16_local0 = CoD.HardwareProfileLeftRightSelector.new(f16_arg1, f16_arg2, f16_arg4, {
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
left = 0,
|
|
right = 0,
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
top = 0,
|
|
bottom = CoD.CoD9Button.Height,
|
|
})
|
|
f16_local0.hintText = f16_arg3
|
|
f16_local0:setPriority(f16_arg5)
|
|
CoD.ButtonList.AssociateHintTextListenerToButton(f16_local0)
|
|
ButtonList.m_selectors[f16_arg2] = f16_local0
|
|
ButtonList:addElement(f16_local0)
|
|
return f16_local0
|
|
end
|
|
|
|
CoD.Options.AddHardwareProfileLeftRightSlider = function(ButtonList, f17_arg1, f17_arg2, f17_arg3, f17_arg4, f17_arg5, f17_arg6, f17_arg7)
|
|
local f17_local0 = CoD.HardwareProfileLeftRightSlider.new(f17_arg1, f17_arg2, f17_arg3, f17_arg4, f17_arg6, {
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
left = 0,
|
|
right = 0,
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
top = 0,
|
|
bottom = CoD.CoD9Button.Height,
|
|
})
|
|
f17_local0.hintText = f17_arg5
|
|
f17_local0:setPriority(f17_arg7)
|
|
CoD.ButtonList.AssociateHintTextListenerToButton(f17_local0)
|
|
ButtonList.m_selectors[f17_arg2] = f17_local0
|
|
ButtonList:addElement(f17_local0)
|
|
return f17_local0
|
|
end
|
|
|
|
CoD.Options.AddLeftRightSelector = function(ButtonList, f18_arg1, f18_arg2, f18_arg3, f18_arg4, f18_arg5)
|
|
local f18_local0 = CoD.LeftRightSelector.new(f18_arg1, f18_arg2, f18_arg4, {
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
left = 0,
|
|
right = 0,
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
top = 0,
|
|
bottom = CoD.CoD9Button.Height,
|
|
})
|
|
f18_local0.hintText = f18_arg3
|
|
f18_local0:setPriority(f18_arg5)
|
|
CoD.ButtonList.AssociateHintTextListenerToButton(f18_local0)
|
|
ButtonList:addElement(f18_local0)
|
|
return f18_local0
|
|
end
|
|
|
|
CoD.Options.AddVoiceMeter = function(f19_arg0, f19_arg1, f19_arg2, f19_arg3)
|
|
local f19_local0 = CoD.OptionElement.new(f19_arg1, nil, {
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
left = 0,
|
|
right = 0,
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
top = 0,
|
|
bottom = CoD.CoD9Button.Height,
|
|
})
|
|
f19_local0.id = "VoiceMeter"
|
|
f19_local0.hintText = f19_arg2
|
|
CoD.ButtonList.AssociateHintTextListenerToButton(f19_local0)
|
|
local Widget = LUI.UIElement.new()
|
|
Widget:setLeftRight(true, false, 0, 300)
|
|
Widget:setTopBottom(true, true, 0, 0)
|
|
Widget:setupVoiceMeter(20)
|
|
f19_local0.horizontalList:addElement(Widget)
|
|
f19_arg0:addElement(f19_local0)
|
|
end
|
|
|
|
CoD.Options.AddApplyPrompt = function(GenericWidget)
|
|
if GenericWidget.applyPrompt == nil then
|
|
GenericWidget.applyPrompt = CoD.ButtonPrompt.new("alt1", Engine.Localize("MENU_APPLY_CAPS"), GenericWidget, "open_apply_popup", false, false, false, false, "F")
|
|
end
|
|
GenericWidget:addRightButtonPrompt(GenericWidget.applyPrompt)
|
|
end
|
|
|
|
CoD.Options.AddResetPrompt = function(GenericWidget)
|
|
if GenericWidget.resetPrompt == nil then
|
|
GenericWidget.resetPrompt = CoD.ButtonPrompt.new("alt2", Engine.Localize("MENU_RESET_TO_DEFAULT"), GenericWidget, "open_default_popup", false, false, false, false, "R")
|
|
end
|
|
GenericWidget:addRightButtonPrompt(GenericWidget.resetPrompt)
|
|
end
|
|
|
|
CoD.Options.RegisterSocialEventHandlers = function(AdvancedTabContainer)
|
|
AdvancedTabContainer:registerEventHandler("check_for_youtube_account", CoD.Options.CheckForYouTubeAccount)
|
|
AdvancedTabContainer:registerEventHandler("youtube_connect_complete", CoD.Options.YouTubeConnectComplete)
|
|
AdvancedTabContainer:registerEventHandler("check_for_twitter_account", CoD.Options.CheckForTwitterAccount)
|
|
AdvancedTabContainer:registerEventHandler("twitter_connect_complete", CoD.Options.TwitterConnectComplete)
|
|
AdvancedTabContainer:registerEventHandler("check_for_twitch_account", CoD.Options.CheckForTwitchAccount)
|
|
AdvancedTabContainer:registerEventHandler("twitch_connect_complete", CoD.Options.TwitchConnectComplete)
|
|
end
|
|
|
|
CoD.Options.AddYouTubeButton = function(AdvancedTabContainer, LocalClientIndex)
|
|
AdvancedTabContainer.youtubeAccountButton = AdvancedTabContainer.buttonList:addButton(Engine.Localize("MENU_LINK_TO_YOUTUBE_CAPS"), Engine.Localize("MENU_LINK_YOUTUBE_DESC"))
|
|
CoD.Options.UpdateYouTubeButtonText(AdvancedTabContainer.youtubeAccountButton, LocalClientIndex)
|
|
if Engine.IsPlayerUnderage(LocalClientIndex) then
|
|
AdvancedTabContainer.youtubeAccountButton:disable()
|
|
AdvancedTabContainer.youtubeAccountButton.hintText = Engine.Localize("MENU_GENERIC_UNDERAGE_MESSAGE")
|
|
else
|
|
AdvancedTabContainer.youtubeAccountButton:setActionEventName("youtube_connect")
|
|
end
|
|
end
|
|
|
|
CoD.Options.UpdateYouTubeButtonText = function(YoutubeButton, LocalClientIndex)
|
|
if not Engine.IsYouTubeAccountRegistered(LocalClientIndex) then
|
|
YoutubeButton:setLabel(Engine.Localize("MENU_LINK_TO_YOUTUBE_CAPS"))
|
|
else
|
|
YoutubeButton:setLabel(Engine.Localize("MENU_UNLINK_FROM_YOUTUBE_CAPS"))
|
|
end
|
|
if CoD.isZombie and YoutubeButton.brackets then
|
|
YoutubeButton.brackets:setAlpha(0)
|
|
end
|
|
end
|
|
|
|
CoD.Options.CheckForYouTubeAccount = function(AdvancedTabContainer, ClientInstance)
|
|
if not Engine.IsYouTubeAccountChecked(ClientInstance.controller) then
|
|
return
|
|
else
|
|
CoD.Options.AddYouTubeButton(AdvancedTabContainer, ClientInstance.controller)
|
|
AdvancedTabContainer.youtubeCheckTimer:close()
|
|
AdvancedTabContainer.youtubeCheckTimer = nil
|
|
end
|
|
end
|
|
|
|
CoD.Options.OpenYouTubeConnect = function(f26_arg0, ClientInstance)
|
|
if not Engine.IsYouTubeAccountChecked(controller) or not Engine.IsYouTubeAccountRegistered(controller) then
|
|
f26_arg0:openPopup("YouTube_Connect", ClientInstance.controller)
|
|
else
|
|
f26_arg0:openPopup("YouTube_UnRegister", ClientInstance.controller)
|
|
end
|
|
end
|
|
|
|
CoD.Options.YouTubeConnectComplete = function(AdvancedTabContainer, ClientInstance)
|
|
CoD.Options.UpdateYouTubeButtonText(AdvancedTabContainer.youtubeAccountButton, ClientInstance.controller)
|
|
end
|
|
|
|
CoD.Options.AddTwitterButton = function(AdvancedTabContainer, LocalClientIndex)
|
|
AdvancedTabContainer.twitterAccountButton = AdvancedTabContainer.buttonList:addButton(Engine.Localize("MENU_LINK_TO_TWITTER_CAPS"), Engine.Localize("MENU_LINK_TWITTER_DESC"))
|
|
CoD.Options.UpdateTwitterButtonText(AdvancedTabContainer.twitterAccountButton, LocalClientIndex)
|
|
if Engine.IsPlayerUnderage(LocalClientIndex) then
|
|
AdvancedTabContainer.twitterAccountButton:disable()
|
|
AdvancedTabContainer.twitterAccountButton.hintText = Engine.Localize("MENU_GENERIC_UNDERAGE_MESSAGE")
|
|
else
|
|
AdvancedTabContainer.twitterAccountButton:setActionEventName("twitter_connect")
|
|
end
|
|
end
|
|
|
|
CoD.Options.UpdateTwitterButtonText = function(TwitterButton, LocalClientIndex)
|
|
if not Engine.IsTwitterAccountRegistered(LocalClientIndex) then
|
|
TwitterButton.label:setText(Engine.Localize("MENU_LINK_TO_TWITTER_CAPS"))
|
|
else
|
|
TwitterButton.label:setText(Engine.Localize("MENU_UNLINK_FROM_TWITTER_CAPS"))
|
|
end
|
|
end
|
|
|
|
CoD.Options.CheckForTwitterAccount = function(AdvancedTabContainer, ClientInstance)
|
|
if not Engine.IsTwitterAccountChecked(ClientInstance.controller) then
|
|
return
|
|
else
|
|
CoD.Options.AddTwitterButton(AdvancedTabContainer, ClientInstance.controller)
|
|
AdvancedTabContainer.twitterCheckTimer:close()
|
|
AdvancedTabContainer.twitterCheckTimer = nil
|
|
end
|
|
end
|
|
|
|
CoD.Options.OpenTwitterConnect = function(f31_arg0, ClientInstance)
|
|
if not Engine.IsTwitterAccountChecked(ClientInstance.controller) or not Engine.IsTwitterAccountRegistered(ClientInstance.controller) then
|
|
f31_arg0:openPopup("Twitter_Connect", ClientInstance.controller)
|
|
else
|
|
f31_arg0:openPopup("Twitter_UnRegister", ClientInstance.controller)
|
|
end
|
|
end
|
|
|
|
CoD.Options.TwitterConnectComplete = function(AdvancedTabContainer, ClientInstance)
|
|
CoD.Options.UpdateTwitterButtonText(AdvancedTabContainer.twitterAccountButton, ClientInstance.controller)
|
|
end
|
|
|
|
CoD.Options.AddTwitchButton = function(AdvancedTabContainer, LocalClientIndex)
|
|
AdvancedTabContainer.twitchAccountButton = AdvancedTabContainer.buttonList:addButton(Engine.Localize("MENU_LINK_TO_TWITCH_CAPS"), Engine.Localize("MENU_LINK_TWITCH_DESC"))
|
|
CoD.Options.UpdateTwitchButtonText(AdvancedTabContainer.twitchAccountButton, LocalClientIndex)
|
|
if Engine.IsPlayerUnderage(LocalClientIndex) then
|
|
AdvancedTabContainer.twitchAccountButton:disable()
|
|
AdvancedTabContainer.twitchAccountButton.hintText = Engine.Localize("MENU_GENERIC_UNDERAGE_MESSAGE")
|
|
else
|
|
AdvancedTabContainer.twitchAccountButton:setActionEventName("twitch_connect")
|
|
end
|
|
end
|
|
|
|
CoD.Options.UpdateTwitchButtonText = function(TwitchButton, LocalClientIndex)
|
|
if not Engine.IsTwitchAccountRegistered(LocalClientIndex) then
|
|
TwitchButton.label:setText(Engine.Localize("MENU_LINK_TO_TWITCH_CAPS"))
|
|
else
|
|
TwitchButton.label:setText(Engine.Localize("MENU_UNLINK_FROM_TWITCH_CAPS"))
|
|
end
|
|
end
|
|
|
|
CoD.Options.CheckForTwitchAccount = function(AdvancedTabContainer, ClientInstance)
|
|
if not Engine.IsTwitchAccountChecked(ClientInstance.controller) then
|
|
return
|
|
else
|
|
CoD.Options.AddTwitchButton(AdvancedTabContainer, ClientInstance.controller)
|
|
AdvancedTabContainer.twitchCheckTimer:close()
|
|
AdvancedTabContainer.twitchCheckTimer = nil
|
|
end
|
|
end
|
|
|
|
CoD.Options.OpenTwitchConnect = function(AdvancedTabContainer, ClientInstance)
|
|
if not Engine.IsTwitchAccountRegistered(ClientInstance.controller) then
|
|
AdvancedTabContainer:openPopup("Twitch_Connect", ClientInstance.controller)
|
|
else
|
|
AdvancedTabContainer:openPopup("Twitch_UnRegister", ClientInstance.controller)
|
|
end
|
|
end
|
|
|
|
CoD.Options.TwitchConnectComplete = function(AdvancedTabContainer, ClientInstance)
|
|
CoD.Options.UpdateTwitchButtonText(AdvancedTabContainer.twitchAccountButton, ClientInstance.controller)
|
|
end
|
|
|
|
CoD.Options.UpdateWindowPosition = function()
|
|
Engine.SetHardwareProfileValue("vid_xpos", Dvar.vid_xpos:get())
|
|
Engine.SetHardwareProfileValue("vid_ypos", Dvar.vid_ypos:get())
|
|
Engine.SetHardwareProfileValue("sd_xa2_device_guid", UIExpression.DvarString(nil, "sd_xa2_device_guid"))
|
|
end
|
|
|
|
--Probably unused
|
|
CoD.Options.BumperControlOverride = function(f39_arg0, f39_arg1)
|
|
if LUI.UIElement.handleGamepadButton(f39_arg0, f39_arg1) == true then
|
|
return true
|
|
end
|
|
local f39_local0 = nil
|
|
if f39_arg1.down == true then
|
|
if f39_arg1.button == "shoulderr" then
|
|
f39_local0 = 1
|
|
elseif f39_arg1.button == "shoulderl" then
|
|
f39_local0 = -1
|
|
end
|
|
end
|
|
if f39_local0 ~= nil and f39_arg0.m_currentItem ~= nil then
|
|
f39_arg0:scrollToItem(f39_arg0.m_currentItem + f39_local0, f39_arg0.m_scrollTime)
|
|
end
|
|
end
|
|
|
|
CoD.Options.SetupTabManager = function(GenericWidget, HorizontalOffset)
|
|
local VerticalOffset = CoD.Menu.TitleHeight + CoD.MFTabManager.TabHeight + 15
|
|
local Widget = LUI.UIElement.new()
|
|
Widget:setLeftRight(true, true, 0, 0)
|
|
Widget:setTopBottom(true, true, VerticalOffset, -CoD.ButtonPrompt.Height)
|
|
GenericWidget:addElement(Widget)
|
|
local TabManagerVerticalOffset = CoD.Menu.TitleHeight + 15
|
|
local GenericTabManager = CoD.MFTabManager.new(Widget, nil, nil, CoD.BOIIOrange)
|
|
if HorizontalOffset then
|
|
GenericTabManager:setLeftRight(false, false, -HorizontalOffset / 2, HorizontalOffset / 2)
|
|
else
|
|
GenericTabManager:setLeftRight(true, true, 0, 0)
|
|
end
|
|
GenericTabManager:setTopBottom(true, false, TabManagerVerticalOffset, TabManagerVerticalOffset + CoD.MFTabManager.TabHeight)
|
|
GenericTabManager:setTabAlignment(LUI.Alignment.Center)
|
|
GenericTabManager:setTabSpacing(20)
|
|
GenericWidget.tabManager = GenericTabManager
|
|
GenericWidget:addElement(GenericTabManager)
|
|
return GenericTabManager
|
|
end
|
|
|
|
CoD.Options.CreateButtonList = function()
|
|
local VerticalOffset = 20
|
|
local GenericButtonList = CoD.ButtonList.new()
|
|
if CoD.isSinglePlayer then
|
|
GenericButtonList:setLeftRight(false, false, -CoD.Options.ButtonListWidth / 2, CoD.Options.ButtonListWidth / 2)
|
|
GenericButtonList:setTopBottom(true, true, VerticalOffset, 0)
|
|
else
|
|
GenericButtonList:setLeftRight(true, false, 0, CoD.Options.ButtonListWidth)
|
|
GenericButtonList:setTopBottom(true, true, VerticalOffset, 0)
|
|
GenericButtonList.hintText:setLeftRight(true, false, 0, 800)
|
|
end
|
|
GenericButtonList.addHardwareProfileLeftRightSelector = CoD.Options.AddHardwareProfileLeftRightSelector
|
|
GenericButtonList.addHardwareProfileLeftRightSlider = CoD.Options.AddHardwareProfileLeftRightSlider
|
|
GenericButtonList.addLeftRightSelector = CoD.Options.AddLeftRightSelector
|
|
GenericButtonList.addVoiceMeter = CoD.Options.AddVoiceMeter
|
|
GenericButtonList.m_selectors = {}
|
|
return GenericButtonList
|
|
end
|
|
|
|
CoD.Options.AddOptionCategories = function(OptionsMenuWidget)
|
|
if UIExpression.IsInGame() == 0 then
|
|
OptionsMenuWidget.systemInfoButton = CoD.ButtonPrompt.new("select", Engine.Localize("MENU_SYSTEM_INFO_CAPS"), OptionsMenuWidget, "open_system_info", nil, nil, nil, nil, "S")
|
|
OptionsMenuWidget:addRightButtonPrompt(OptionsMenuWidget.systemInfoButton)
|
|
end
|
|
local OpenSettingsButton, OpenControlsButton = nil
|
|
local OptionsMenuButtonList = CoD.ButtonList.new()
|
|
if UIExpression.IsInGame() == 0 then
|
|
local OptionsMenuButtonListSpacing = 30
|
|
local HorizontalOffset = 300
|
|
local VerticalOffset = 2 * (50 + OptionsMenuButtonListSpacing) - OptionsMenuButtonListSpacing
|
|
OptionsMenuButtonList:setLeftRight(false, false, -HorizontalOffset / 2, HorizontalOffset / 2)
|
|
OptionsMenuButtonList:setTopBottom(false, false, -VerticalOffset / 2, VerticalOffset / 2 + 100)
|
|
OptionsMenuButtonList:setSpacing(OptionsMenuButtonListSpacing)
|
|
OpenSettingsButton = OptionsMenuButtonList:addNavButton(Engine.Localize("MENU_SETTINGS_CAPS"), "open_settings")
|
|
OpenControlsButton = OptionsMenuButtonList:addNavButton(Engine.Localize("MENU_CONTROLS_CAPS"), "open_controls")
|
|
if not CoD.isSinglePlayer then
|
|
OpenSettingsButton.brackets:close()
|
|
OpenSettingsButton.m_skipAnimation = true
|
|
OpenControlsButton.brackets:close()
|
|
OpenControlsButton.m_skipAnimation = true
|
|
end
|
|
else
|
|
if CoD.isSinglePlayer then
|
|
OptionsMenuButtonList:setLeftRight(false, false, -CoD.ObjectiveInfoMenu.ElementWidth - CoD.ObjectiveInfoMenu.ElementSpacing / 2, -CoD.ObjectiveInfoMenu.ElementSpacing / 2)
|
|
OptionsMenuButtonList:setTopBottom(true, true, CoD.ObjectiveInfoMenu.Pause_ButtonsTopAnchor, 0)
|
|
else
|
|
OptionsMenuButtonList:setLeftRight(true, false, 0, CoD.ButtonList.DefaultWidth)
|
|
OptionsMenuButtonList:setTopBottom(true, true, CoD.Menu.TitleHeight, 0)
|
|
end
|
|
if not CoD.isMultiplayer then
|
|
OptionsMenuButtonList:setButtonBackingAnimationState({
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
left = -5,
|
|
right = 0,
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
top = 0,
|
|
bottom = 0,
|
|
material = RegisterMaterial("menu_mp_small_row"),
|
|
})
|
|
end
|
|
OpenSettingsButton = OptionsMenuButtonList:addButton(Engine.Localize("MENU_SETTINGS_CAPS"))
|
|
OpenSettingsButton:setActionEventName("open_settings")
|
|
OpenControlsButton = OptionsMenuButtonList:addButton(Engine.Localize("MENU_CONTROLS_CAPS"))
|
|
OpenControlsButton:setActionEventName("open_controls")
|
|
end
|
|
OptionsMenuWidget:addElement(OptionsMenuButtonList)
|
|
if not OptionsMenuWidget:restoreState() then
|
|
OpenSettingsButton:processEvent({
|
|
name = "gain_focus",
|
|
})
|
|
end
|
|
if CoD.isSinglePlayer == true and Engine.IsMenuLevel() == true then
|
|
OptionsMenuWidget:setPreviousMenu("CampaignMenu")
|
|
end
|
|
Engine.SyncHardwareProfileWithDvars()
|
|
end
|
|
|
|
LUI.createMenu.OptionsMenu = function(LocalClientIndex)
|
|
local OptionsMenuWidget = nil
|
|
if UIExpression.IsInGame() == 1 then
|
|
OptionsMenuWidget = CoD.InGameMenu.New("OptionsMenu", LocalClientIndex, Engine.Localize("MENU_OPTIONS_CAPS"))
|
|
if CoD.isSinglePlayer == true then
|
|
OptionsMenuWidget:setPreviousMenu("ObjectiveInfoMenu")
|
|
elseif UIExpression.IsDemoPlaying(LocalClientIndex) ~= 0 then
|
|
OptionsMenuWidget:setPreviousMenu("Demo_InGame")
|
|
else
|
|
OptionsMenuWidget:setPreviousMenu("class")
|
|
end
|
|
else
|
|
OptionsMenuWidget = CoD.Menu.New("OptionsMenu")
|
|
OptionsMenuWidget.anyControllerAllowed = true
|
|
OptionsMenuWidget:addTitle(Engine.Localize("MENU_OPTIONS_CAPS"), LUI.Alignment.Center)
|
|
if CoD.isSinglePlayer == false then
|
|
OptionsMenuWidget:addLargePopupBackground()
|
|
end
|
|
end
|
|
if CoD.isSinglePlayer == true then
|
|
Engine.SendMenuResponse(LocalClientIndex, "luisystem", "modal_start")
|
|
end
|
|
OptionsMenuWidget:registerEventHandler("button_prompt_back", CoD.Options.Back)
|
|
OptionsMenuWidget:registerEventHandler("apply_changes", CoD.Options.ApplyChanges)
|
|
OptionsMenuWidget:registerEventHandler("open_controls", CoD.Options.OpenControls)
|
|
OptionsMenuWidget:registerEventHandler("open_settings", CoD.Options.OpenSettings)
|
|
OptionsMenuWidget:registerEventHandler("open_system_info", CoD.Options.OpenSystemInfo)
|
|
OptionsMenuWidget:registerEventHandler("is_common_loaded", CoD.Options.IsCommonLoaded)
|
|
OptionsMenuWidget:addSelectButton()
|
|
OptionsMenuWidget:addBackButton()
|
|
CoD.Options.AddOptionCategories(OptionsMenuWidget)
|
|
return OptionsMenuWidget
|
|
end
|