010bdb41aa
* combat training * Disable bot & gamesetting customization menus - feature not yet available. - cleanup unused code
111 lines
3.7 KiB
Lua
111 lines
3.7 KiB
Lua
if not Engine.InFrontend() then
|
|
return
|
|
end
|
|
|
|
local MenuOverride = function(oldmenu, postLoad)
|
|
local newmenu = function(menu, controller)
|
|
local RootController = controller and controller.controllerIndex
|
|
if not RootController and not Engine.InFrontend() then
|
|
RootController = self:getRootController()
|
|
end
|
|
assert(RootController)
|
|
|
|
local self = oldmenu(menu, controller)
|
|
postLoad(self)
|
|
return self
|
|
end
|
|
return newmenu
|
|
end
|
|
|
|
local GetAnchorsAndPosition = function(element)
|
|
local l_left, l_top, l_right, l_bottom = element:getLocalRect()
|
|
local a_left, a_top, a_right, a_bottom = element:GetAnchorData()
|
|
return { a_left, a_right, a_top, a_bottom, l_left, l_right, l_bottom, l_top }
|
|
end
|
|
|
|
local customServerButton = function(self, override, preLoad)
|
|
if not CONDITIONS.IsServerBrowserAllowed(self) then
|
|
return
|
|
end
|
|
|
|
self.ServerBrowserButton = override
|
|
assert(self.ServerBrowserButton)
|
|
|
|
self.ServerBrowserButton:registerEventHandler("button_action", function(f5_arg0, f5_arg1)
|
|
preLoad()
|
|
LUI.FlowManager.RequestAddMenu("SystemLinkMenu", false, f5_arg1.controller, false, {}, true)
|
|
end)
|
|
|
|
if self.ServerBrowserButton then
|
|
self.ServerBrowserButton.id = "ServerBrowser"
|
|
self.ServerBrowserButton.buttonDescription = Engine.Localize("Browse custom servers")
|
|
self.ServerBrowserButton.Text:setText(ToUpperCase(Engine.Localize("Server Browser")), 0)
|
|
end
|
|
end
|
|
|
|
local customModsButton = function(self, info)
|
|
if not CONDITIONS.IsServerBrowserAllowed(self) then
|
|
return
|
|
end
|
|
|
|
if not (type(info.position) == "table" and #info.position == 8) then
|
|
return
|
|
end
|
|
|
|
local ModsButton = MenuBuilder.BuildRegisteredType("MenuButton", { controllerIndex = controllerIndex })
|
|
ModsButton.id = "ModsButton"
|
|
ModsButton.buttonDescription = Engine.Localize("LUA_MENU_MODS_DESC")
|
|
ModsButton.Text:setText(ToUpperCase(Engine.Localize("LUA_MENU_MODS_CAPS")), 0)
|
|
if CONDITIONS.InFrontendPublicMP and CONDITIONS.IsStoreAllowed() then
|
|
self:removeElement(self.StoreButton)
|
|
end
|
|
ModsButton:SetAnchorsAndPosition(table.unpack(info.position))
|
|
|
|
ModsButton:registerEventHandler("button_action", function(f5_arg0, f5_arg1)
|
|
if info.preLoad then
|
|
info.preLoad()
|
|
end
|
|
LUI.FlowManager.RequestAddMenu("ModSelectMenu", false, f5_arg1.controller, false, {}, true)
|
|
end)
|
|
|
|
ModsButton:SetAlignment(LUI.Alignment.Left)
|
|
self:addElement(ModsButton)
|
|
self.ModsButton = ModsButton
|
|
end
|
|
|
|
local postLoadMP = function(self)
|
|
local preLoadMP = function()
|
|
local ActiveController = Engine.GetFirstActiveController()
|
|
if Engine.GetDvarBool("xblive_competitionmatch") then
|
|
Engine.SetDvarBool("xblive_competitionmatch", false)
|
|
Engine.Exec("set remove_mlg_rules 1")
|
|
end
|
|
Engine.ExecNow(MPConfig.default_xboxlive, ActiveController)
|
|
end
|
|
|
|
local modButtonInfo = {}
|
|
modButtonInfo.preLoad = function() end
|
|
modButtonInfo.position = { 0, 1, 0, 1, 0, _1080p * 500, _1080p * 120, _1080p * (120 + 30) }
|
|
customModsButton(self, modButtonInfo)
|
|
customServerButton(self, self.MLGGameBattlesButton, preLoadMP)
|
|
end
|
|
|
|
local postLoadCP = function(self)
|
|
local preLoadCP = function()
|
|
local ActiveController = Engine.GetFirstActiveController()
|
|
Engine.ExecNow(MPConfig.default_xboxlive, ActiveController)
|
|
end
|
|
|
|
local modButtonInfo = {}
|
|
modButtonInfo.preLoad = function() end
|
|
modButtonInfo.position = { 0, 1, 0, 1, 0, _1080p * 500, _1080p * 300, _1080p * (300 + 30) }
|
|
customModsButton(self, modButtonInfo)
|
|
customServerButton(self, self:getChildById("PublicMatch"), preLoadCP)
|
|
end
|
|
|
|
local MPMainMenuButtons = MenuOverride(package.loaded["frontEnd.mp.MPMainMenuButtons"].MPMainMenuButtons, postLoadMP)
|
|
local CPMainMenuButtons = MenuOverride(package.loaded["frontEnd.cp.CPMainMenuButtons"].CPMainMenuButtons, postLoadCP)
|
|
|
|
MenuBuilder.registerType("MPMainMenuButtons", MPMainMenuButtons)
|
|
MenuBuilder.registerType("CPMainMenuButtons", CPMainMenuButtons)
|