fix: changed new frontend buttons system so mods with custom buttons work, improved code
This commit is contained in:
parent
e827eb2945
commit
6e4b61c0f5
121
data/ui_scripts/frontend_menus/__init__.lua
Normal file
121
data/ui_scripts/frontend_menus/__init__.lua
Normal file
@ -0,0 +1,121 @@
|
||||
if Engine.GetCurrentMap() ~= "core_frontend" then
|
||||
return
|
||||
end
|
||||
|
||||
local utils = require("utils")
|
||||
|
||||
CoD.LobbyButtons.MP_STATS = {
|
||||
stringRef = "STATS",
|
||||
action = function(self, element, controller, param, menu)
|
||||
SetPerControllerTableProperty(controller, "disableGameSettingsOptions", true)
|
||||
OpenPopup(menu, "BoiiiStatsMenu", controller)
|
||||
end,
|
||||
customId = "btnMPStats"
|
||||
}
|
||||
|
||||
CoD.LobbyButtons.MP_START_GAME = {
|
||||
stringRef = "MENU_START_GAME_CAPS",
|
||||
action = function(self, element, controller, param, menu)
|
||||
Engine.SetDvar("party_minplayers", 1)
|
||||
Engine.Exec(nil, "launchgame")
|
||||
end,
|
||||
customId = "btnStartGame"
|
||||
}
|
||||
|
||||
CoD.LobbyButtons.SETTING_UP_BOTS = {
|
||||
stringRef = "MENU_SETUP_BOTS_CAPS",
|
||||
action = function(self, element, controller, param, menu)
|
||||
SetPerControllerTableProperty(controller, "disableGameSettingsOptions", true)
|
||||
OpenPopup(menu, "GameSettings_Bots", controller)
|
||||
end,
|
||||
customId = "btnSettingUpBots"
|
||||
}
|
||||
|
||||
CoD.LobbyButtons.MP_CUSTOM_SETUP_GAME = {
|
||||
stringRef = "MPUI_SETUP_GAME_CAPS",
|
||||
action = OpenSetupGameMP,
|
||||
customId = "btnSetupGame",
|
||||
}
|
||||
|
||||
local shouldShowMapVote = false
|
||||
local addCustomButtons = function(controller, menuId, buttonTable, isLeader)
|
||||
if menuId == LobbyData.UITargets.UI_MPLOBBYONLINE.id or menuId == LobbyData.UITargets.UI_ZMLOBBYONLINE.id then
|
||||
utils.AddSpacer(buttonTable)
|
||||
utils.AddSmallButton(controller, buttonTable, CoD.LobbyButtons.MP_STATS)
|
||||
end
|
||||
|
||||
if menuId == LobbyData.UITargets.UI_MPLOBBYONLINE.id or menuId == LobbyData.UITargets.UI_ZMLOBBYONLINE.id or menuId == LobbyData.UITargets.UI_MPLOBBYMAIN.id or menuId == LobbyData.UITargets.UI_MPLOBBYLANGAME.id then
|
||||
Engine.Mods_Lists_UpdateUsermaps()
|
||||
end
|
||||
|
||||
if menuId == LobbyData.UITargets.UI_MPLOBBYONLINE.id then
|
||||
shouldShowMapVote = true
|
||||
elseif menuId == LobbyData.UITargets.UI_MPLOBBYONLINEPUBLICGAME.id then
|
||||
if shouldShowMapVote == true then
|
||||
shouldShowMapVote = false
|
||||
Engine.Exec(nil, "LobbyStopDemo") -- Enable map vote at start lobby
|
||||
end
|
||||
utils.AddLargeButton(controller, buttonTable, CoD.LobbyButtons.MP_START_GAME, 1) --Launch match button
|
||||
utils.AddSpacer(buttonTable, 1)
|
||||
|
||||
utils.AddSpacer(buttonTable)
|
||||
utils.AddSmallButton(controller, buttonTable, CoD.LobbyButtons.MP_CUSTOM_SETUP_GAME) --Setup game in public lobby
|
||||
elseif menuId == LobbyData.UITargets.UI_MPLOBBYONLINEARENAGAME.id then
|
||||
utils.AddSpacer(buttonTable)
|
||||
utils.AddSmallButton(controller, buttonTable, CoD.LobbyButtons.SETTING_UP_BOTS) --Bot setting button in public lobby
|
||||
end
|
||||
end
|
||||
|
||||
local targetButtons = {
|
||||
[LobbyData.UITargets.UI_MAIN.id] = CoD.LobbyMenus.ModeSelect,
|
||||
[LobbyData.UITargets.UI_MODESELECT.id] = CoD.LobbyMenus.ModeSelect,
|
||||
[LobbyData.UITargets.UI_CPLOBBYLANGAME.id] = CoD.LobbyMenus.CPButtonsLAN,
|
||||
[LobbyData.UITargets.UI_CPLOBBYLANCUSTOMGAME.id] = CoD.LobbyMenus.CPButtonsLANCUSTOM,
|
||||
[LobbyData.UITargets.UI_CPLOBBYONLINE.id] = CoD.LobbyMenus.CPButtonsOnline,
|
||||
[LobbyData.UITargets.UI_CPLOBBYONLINEPUBLICGAME.id] = CoD.LobbyMenus.CPButtonsPublicGame,
|
||||
[LobbyData.UITargets.UI_CPLOBBYONLINECUSTOMGAME.id] = CoD.LobbyMenus.CPButtonsCustomGame,
|
||||
[LobbyData.UITargets.UI_CP2LOBBYLANGAME.id] = CoD.LobbyMenus.CPZMButtonsLAN,
|
||||
[LobbyData.UITargets.UI_CP2LOBBYLANCUSTOMGAME.id] = CoD.LobbyMenus.CPButtonsLANCUSTOM,
|
||||
[LobbyData.UITargets.UI_CP2LOBBYONLINE.id] = CoD.LobbyMenus.CPZMButtonsOnline,
|
||||
[LobbyData.UITargets.UI_CP2LOBBYONLINEPUBLICGAME.id] = CoD.LobbyMenus.CPZMButtonsPublicGame,
|
||||
[LobbyData.UITargets.UI_CP2LOBBYONLINECUSTOMGAME.id] = CoD.LobbyMenus.CPButtonsCustomGame,
|
||||
[LobbyData.UITargets.UI_DOALOBBYLANGAME.id] = CoD.LobbyMenus.DOAButtonsLAN,
|
||||
[LobbyData.UITargets.UI_DOALOBBYONLINE.id] = CoD.LobbyMenus.DOAButtonsOnline,
|
||||
[LobbyData.UITargets.UI_DOALOBBYONLINEPUBLICGAME.id] = CoD.LobbyMenus.DOAButtonsPublicGame,
|
||||
[LobbyData.UITargets.UI_MPLOBBYLANGAME.id] = CoD.LobbyMenus.MPButtonsLAN,
|
||||
[LobbyData.UITargets.UI_MPLOBBYMAIN.id] = CoD.LobbyMenus.MPButtonsMain,
|
||||
[LobbyData.UITargets.UI_MPLOBBYONLINE.id] = CoD.LobbyMenus.MPButtonsOnline,
|
||||
[LobbyData.UITargets.UI_MPLOBBYONLINEPUBLICGAME.id] = CoD.LobbyMenus.MPButtonsOnlinePublic,
|
||||
[LobbyData.UITargets.UI_MPLOBBYONLINEMODGAME.id] = CoD.LobbyMenus.MPButtonsModGame,
|
||||
[LobbyData.UITargets.UI_MPLOBBYONLINECUSTOMGAME.id] = CoD.LobbyMenus.MPButtonsCustomGame,
|
||||
[LobbyData.UITargets.UI_MPLOBBYONLINEARENA.id] = CoD.LobbyMenus.MPButtonsArena,
|
||||
[LobbyData.UITargets.UI_MPLOBBYONLINEARENAGAME.id] = CoD.LobbyMenus.MPButtonsArenaGame,
|
||||
[LobbyData.UITargets.UI_FRLOBBYONLINEGAME.id] = CoD.LobbyMenus.FRButtonsOnlineGame,
|
||||
[LobbyData.UITargets.UI_FRLOBBYLANGAME.id] = CoD.LobbyMenus.FRButtonsLANGame,
|
||||
[LobbyData.UITargets.UI_ZMLOBBYLANGAME.id] = CoD.LobbyMenus.ZMButtonsLAN,
|
||||
[LobbyData.UITargets.UI_ZMLOBBYONLINE.id] = CoD.LobbyMenus.ZMButtonsOnline,
|
||||
[LobbyData.UITargets.UI_ZMLOBBYONLINEPUBLICGAME.id] = CoD.LobbyMenus.ZMButtonsPublicGame,
|
||||
[LobbyData.UITargets.UI_ZMLOBBYONLINECUSTOMGAME.id] = CoD.LobbyMenus.ZMButtonsCustomGame,
|
||||
[LobbyData.UITargets.UI_MPLOBBYONLINETHEATER.id] = CoD.LobbyMenus.ButtonsTheaterGame,
|
||||
[LobbyData.UITargets.UI_ZMLOBBYONLINETHEATER.id] = CoD.LobbyMenus.ButtonsTheaterGame
|
||||
}
|
||||
|
||||
CoD.LobbyMenus.AddButtonsForTarget = function(controller, id)
|
||||
local buttonFunc = targetButtons[id]
|
||||
local model = nil
|
||||
if Engine.IsLobbyActive(Enum.LobbyType.LOBBY_TYPE_GAME) then
|
||||
model = Engine.GetModel(DataSources.LobbyRoot.getModel(controller), "gameClient.isHost")
|
||||
else
|
||||
model = Engine.GetModel(DataSources.LobbyRoot.getModel(controller), "privateClient.isHost")
|
||||
end
|
||||
local isLeader = nil
|
||||
if model ~= nil then
|
||||
isLeader = Engine.GetModelValue(model)
|
||||
else
|
||||
isLeader = 1
|
||||
end
|
||||
local result = {}
|
||||
buttonFunc(controller, result, isLeader)
|
||||
addCustomButtons(controller, id, result, isLeader)
|
||||
return result
|
||||
end
|
129
data/ui_scripts/frontend_menus/utils.lua
Normal file
129
data/ui_scripts/frontend_menus/utils.lua
Normal file
@ -0,0 +1,129 @@
|
||||
local IsGamescomDemo = function()
|
||||
return Dvar.ui_execdemo_gamescom:get()
|
||||
end
|
||||
|
||||
local IsBetaDemo = function()
|
||||
return Dvar.ui_execdemo_beta:get()
|
||||
end
|
||||
|
||||
local SetButtonState = function(button, state)
|
||||
if state == nil then
|
||||
return
|
||||
elseif state == CoD.LobbyButtons.DISABLED then
|
||||
button.disabled = true
|
||||
elseif state == CoD.LobbyButtons.HIDDEN then
|
||||
button.hidden = true
|
||||
end
|
||||
end
|
||||
|
||||
local AddButton = function(controller, options, button, isLargeButton, index)
|
||||
if button == nil then
|
||||
return
|
||||
end
|
||||
|
||||
button.disabled = false
|
||||
button.hidden = false
|
||||
button.selected = false
|
||||
button.warning = false
|
||||
if button.defaultState ~= nil then
|
||||
if button.defaultState == CoD.LobbyButtons.DISABLED then
|
||||
button.disabled = true
|
||||
elseif button.defaultState == CoD.LobbyButtons.HIDDEN then
|
||||
button.hidden = true
|
||||
end
|
||||
end
|
||||
if button.disabledFunc ~= nil then
|
||||
button.disabled = button.disabledFunc(controller)
|
||||
end
|
||||
if button.visibleFunc ~= nil then
|
||||
button.hidden = not button.visibleFunc(controller)
|
||||
end
|
||||
if IsBetaDemo() then
|
||||
SetButtonState(button, button.demo_beta)
|
||||
elseif IsGamescomDemo() then
|
||||
SetButtonState(button, button.demo_gamescom)
|
||||
end
|
||||
if button.hidden then
|
||||
return
|
||||
end
|
||||
local lobbyNav = LobbyData.GetLobbyNav()
|
||||
if button.selectedFunc ~= nil then
|
||||
button.selected = button.selectedFunc(button.selectedParam)
|
||||
elseif CoD.LobbyMenus.History[lobbyNav] ~= nil then
|
||||
button.selected = CoD.LobbyMenus.History[lobbyNav] == button.customId
|
||||
end
|
||||
if button.newBreadcrumbFunc then
|
||||
local f8_local1 = button.newBreadcrumbFunc
|
||||
if type(f8_local1) == "string" then
|
||||
f8_local1 = LUI.getTableFromPath(f8_local1)
|
||||
end
|
||||
if f8_local1 then
|
||||
button.isBreadcrumbNew = f8_local1(controller)
|
||||
end
|
||||
end
|
||||
if button.warningFunc ~= nil then
|
||||
button.warning = button.warningFunc(controller)
|
||||
end
|
||||
if button.starterPack == CoD.LobbyButtons.STARTERPACK_UPGRADE then
|
||||
button.starterPackUpgrade = true
|
||||
if IsStarterPack() then
|
||||
button.disabled = false
|
||||
end
|
||||
end
|
||||
if index ~= nil then
|
||||
table.insert(options, index, {
|
||||
optionDisplay = button.stringRef,
|
||||
action = button.action,
|
||||
param = button.param,
|
||||
customId = button.customId,
|
||||
isLargeButton = isLargeButton,
|
||||
isLastButtonInGroup = false,
|
||||
disabled = button.disabled,
|
||||
selected = button.selected,
|
||||
isBreadcrumbNew = button.isBreadcrumbNew,
|
||||
warning = button.warning,
|
||||
requiredChunk = button.selectedParam,
|
||||
starterPackUpgrade = button.starterPackUpgrade,
|
||||
unloadMod = button.unloadMod
|
||||
})
|
||||
else
|
||||
table.insert(options, {
|
||||
optionDisplay = button.stringRef,
|
||||
action = button.action,
|
||||
param = button.param,
|
||||
customId = button.customId,
|
||||
isLargeButton = isLargeButton,
|
||||
isLastButtonInGroup = false,
|
||||
disabled = button.disabled,
|
||||
selected = button.selected,
|
||||
isBreadcrumbNew = button.isBreadcrumbNew,
|
||||
warning = button.warning,
|
||||
requiredChunk = button.selectedParam,
|
||||
starterPackUpgrade = button.starterPackUpgrade,
|
||||
unloadMod = button.unloadMod
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
local AddLargeButton = function(controller, options, button, index)
|
||||
AddButton(controller, options, button, true, index)
|
||||
end
|
||||
|
||||
local AddSmallButton = function(controller, options, button, index)
|
||||
AddButton(controller, options, button, false, index)
|
||||
end
|
||||
|
||||
local AddSpacer = function(options, index)
|
||||
if index ~= nil then
|
||||
options[index].isLastButtonInGroup = true
|
||||
elseif 0 < #options then
|
||||
options[#options].isLastButtonInGroup = true
|
||||
end
|
||||
end
|
||||
|
||||
return {
|
||||
AddButton = AddButton,
|
||||
AddLargeButton = AddLargeButton,
|
||||
AddSmallButton = AddSmallButton,
|
||||
AddSpacer = AddSpacer
|
||||
}
|
@ -2,90 +2,107 @@ if Engine.GetCurrentMap() ~= "core_frontend" then
|
||||
return
|
||||
end
|
||||
|
||||
DataSources.MPStatsSettings = DataSourceHelpers.ListSetup( "MPStatsSettings", function ( controller )
|
||||
local optionsTable = {}
|
||||
DataSources.MPStatsSettings = DataSourceHelpers.ListSetup("MPStatsSettings", function(controller)
|
||||
local optionsTable = {}
|
||||
|
||||
local updateDvar = function(f1_arg0, f1_arg1, f1_arg2, dvarName, f1_arg4)
|
||||
local oldValue = Engine.DvarInt( nil, dvarName )
|
||||
local newValue = f1_arg1.value
|
||||
UpdateInfoModels( f1_arg1 )
|
||||
if oldValue == newValue then
|
||||
return
|
||||
end
|
||||
Engine.SetDvar( dvarName, f1_arg1.value )
|
||||
if dvarName == "cg_unlockall_loot" then
|
||||
Engine.SetDvar( "ui_enableAllHeroes", f1_arg1.value )
|
||||
local oldValue = Engine.DvarInt(nil, dvarName)
|
||||
local newValue = f1_arg1.value
|
||||
UpdateInfoModels(f1_arg1)
|
||||
if oldValue == newValue then
|
||||
return
|
||||
end
|
||||
end
|
||||
Engine.SetDvar(dvarName, f1_arg1.value)
|
||||
if dvarName == "cg_unlockall_loot" then
|
||||
Engine.SetDvar("ui_enableAllHeroes", f1_arg1.value)
|
||||
end
|
||||
end
|
||||
|
||||
table.insert( optionsTable, CoD.OptionsUtility.CreateDvarSettings( controller, "Unlock All Loot", "Whether loot should be locked based on the player's stats or always unlocked.", "MPStatsSettings_unlock_loot", "cg_unlockall_loot", {
|
||||
{
|
||||
option = "MENU_DISABLED",
|
||||
value = 0,
|
||||
default = true
|
||||
},
|
||||
{
|
||||
option = "MENU_ENABLED",
|
||||
value = 1
|
||||
},
|
||||
}, nil, updateDvar ))
|
||||
table.insert(optionsTable,
|
||||
CoD.OptionsUtility.CreateDvarSettings(controller, "Unlock All Loot",
|
||||
"Whether loot should be locked based on the player's stats or always unlocked.", "MPStatsSettings_unlock_loot",
|
||||
"cg_unlockall_loot", {
|
||||
{
|
||||
option = "MENU_DISABLED",
|
||||
value = 0,
|
||||
default = true
|
||||
},
|
||||
{
|
||||
option = "MENU_ENABLED",
|
||||
value = 1
|
||||
},
|
||||
}, nil, updateDvar))
|
||||
if Engine.CurrentSessionMode() == Enum.eModes.MODE_MULTIPLAYER then
|
||||
table.insert( optionsTable, CoD.OptionsUtility.CreateDvarSettings( controller, "Unlock All Purchases", "All items that need to be purchased with unlock tokens are unlocked.", "MPStatsSettings_purchase_all", "cg_unlockall_purchases", {
|
||||
{
|
||||
option = "MENU_DISABLED",
|
||||
value = 0,
|
||||
default = true
|
||||
},
|
||||
{
|
||||
option = "MENU_ENABLED",
|
||||
value = 1
|
||||
},
|
||||
}, nil, updateDvar ))
|
||||
end
|
||||
table.insert( optionsTable, CoD.OptionsUtility.CreateDvarSettings( controller, "Unlock All Attachments", "All attachments on weapons are unlocked.", "MPStatsSettings_unlockall_attachments", "cg_unlockall_attachments", {
|
||||
{
|
||||
option = "MENU_DISABLED",
|
||||
value = 0,
|
||||
default = true
|
||||
},
|
||||
{
|
||||
option = "MENU_ENABLED",
|
||||
value = 1
|
||||
},
|
||||
}, nil, updateDvar ))
|
||||
table.insert( optionsTable, CoD.OptionsUtility.CreateDvarSettings( controller, "Unlock all Camos and Reticles", "All camos and reticles on weapons are unlocked.", "MPStatsSettings_unlockall_camos_and_reticles", "cg_unlockall_camos_and_reticles", {
|
||||
{
|
||||
option = "MENU_DISABLED",
|
||||
value = 0,
|
||||
default = true
|
||||
},
|
||||
{
|
||||
option = "MENU_ENABLED",
|
||||
value = 1
|
||||
},
|
||||
}, nil, updateDvar ))
|
||||
table.insert( optionsTable, CoD.OptionsUtility.CreateDvarSettings( controller, "Unlock all Calling Cards", "All calling cards are unlocked.", "MPStatsSettings_unlockall_calling_cards", "cg_unlockall_calling_cards", {
|
||||
{
|
||||
option = "MENU_DISABLED",
|
||||
value = 0,
|
||||
default = true
|
||||
},
|
||||
{
|
||||
option = "MENU_ENABLED",
|
||||
value = 1
|
||||
},
|
||||
}, nil, updateDvar ))
|
||||
table.insert( optionsTable, CoD.OptionsUtility.CreateDvarSettings( controller, "Unlock all Specialists Outfits", "All specialists outfits are unlocked.", "MPStatsSettings_unlockall_specialists_outfits", "cg_unlockall_specialists_outfits", {
|
||||
{
|
||||
option = "MENU_DISABLED",
|
||||
value = 0,
|
||||
default = true
|
||||
},
|
||||
{
|
||||
option = "MENU_ENABLED",
|
||||
value = 1
|
||||
},
|
||||
}, nil, updateDvar ))
|
||||
table.insert(optionsTable,
|
||||
CoD.OptionsUtility.CreateDvarSettings(controller, "Unlock All Purchases",
|
||||
"All items that need to be purchased with unlock tokens are unlocked.", "MPStatsSettings_purchase_all",
|
||||
"cg_unlockall_purchases", {
|
||||
{
|
||||
option = "MENU_DISABLED",
|
||||
value = 0,
|
||||
default = true
|
||||
},
|
||||
{
|
||||
option = "MENU_ENABLED",
|
||||
value = 1
|
||||
},
|
||||
}, nil, updateDvar))
|
||||
end
|
||||
table.insert(optionsTable,
|
||||
CoD.OptionsUtility.CreateDvarSettings(controller, "Unlock All Attachments",
|
||||
"All attachments on weapons are unlocked.",
|
||||
"MPStatsSettings_unlockall_attachments", "cg_unlockall_attachments", {
|
||||
{
|
||||
option = "MENU_DISABLED",
|
||||
value = 0,
|
||||
default = true
|
||||
},
|
||||
{
|
||||
option = "MENU_ENABLED",
|
||||
value = 1
|
||||
},
|
||||
}, nil, updateDvar))
|
||||
table.insert(optionsTable,
|
||||
CoD.OptionsUtility.CreateDvarSettings(controller, "Unlock all Camos and Reticles",
|
||||
"All camos and reticles on weapons are unlocked.", "MPStatsSettings_unlockall_camos_and_reticles",
|
||||
"cg_unlockall_camos_and_reticles", {
|
||||
{
|
||||
option = "MENU_DISABLED",
|
||||
value = 0,
|
||||
default = true
|
||||
},
|
||||
{
|
||||
option = "MENU_ENABLED",
|
||||
value = 1
|
||||
},
|
||||
}, nil, updateDvar))
|
||||
table.insert(optionsTable,
|
||||
CoD.OptionsUtility.CreateDvarSettings(controller, "Unlock all Calling Cards", "All calling cards are unlocked.",
|
||||
"MPStatsSettings_unlockall_calling_cards", "cg_unlockall_calling_cards", {
|
||||
{
|
||||
option = "MENU_DISABLED",
|
||||
value = 0,
|
||||
default = true
|
||||
},
|
||||
{
|
||||
option = "MENU_ENABLED",
|
||||
value = 1
|
||||
},
|
||||
}, nil, updateDvar))
|
||||
table.insert(optionsTable,
|
||||
CoD.OptionsUtility.CreateDvarSettings(controller, "Unlock all Specialists Outfits",
|
||||
"All specialists outfits are unlocked.", "MPStatsSettings_unlockall_specialists_outfits",
|
||||
"cg_unlockall_specialists_outfits", {
|
||||
{
|
||||
option = "MENU_DISABLED",
|
||||
value = 0,
|
||||
default = true
|
||||
},
|
||||
{
|
||||
option = "MENU_ENABLED",
|
||||
value = 1
|
||||
},
|
||||
}, nil, updateDvar))
|
||||
|
||||
local rankLevels = {}
|
||||
if Engine.CurrentSessionMode() == Enum.eModes.MODE_MULTIPLAYER then
|
||||
@ -95,9 +112,9 @@ DataSources.MPStatsSettings = DataSourceHelpers.ListSetup( "MPStatsSettings", fu
|
||||
end
|
||||
local rankObjs = {}
|
||||
local hasDefault = false
|
||||
local currentRank = CoD.BlackMarketUtility.GetCurrentRank( controller ) + 1
|
||||
local currentRank = CoD.BlackMarketUtility.GetCurrentRank(controller) + 1
|
||||
for index, value in ipairs(rankLevels) do
|
||||
table.insert( rankObjs, {
|
||||
table.insert(rankObjs, {
|
||||
name = value,
|
||||
value = value - 1,
|
||||
default = value == currentRank,
|
||||
@ -110,7 +127,7 @@ DataSources.MPStatsSettings = DataSourceHelpers.ListSetup( "MPStatsSettings", fu
|
||||
end
|
||||
|
||||
if not hasDefault then
|
||||
table.insert( rankObjs, {
|
||||
table.insert(rankObjs, {
|
||||
name = currentRank,
|
||||
value = currentRank - 1,
|
||||
default = true,
|
||||
@ -121,23 +138,23 @@ DataSources.MPStatsSettings = DataSourceHelpers.ListSetup( "MPStatsSettings", fu
|
||||
|
||||
local prestigeTable = {}
|
||||
for i = 0, 10 do
|
||||
table.insert( prestigeTable, {
|
||||
table.insert(prestigeTable, {
|
||||
name = i == 0 and "None" or i,
|
||||
value = i,
|
||||
default = i == CoD.PrestigeUtility.GetCurrentPLevel( controller ),
|
||||
default = i == CoD.PrestigeUtility.GetCurrentPLevel(controller),
|
||||
title = "Prestige",
|
||||
desc = ""
|
||||
})
|
||||
end
|
||||
|
||||
local createSettingsDatasource = function ( controller, datasourceName, optionsTable, currentValue, loopEdges, action )
|
||||
local createSettingsDatasource = function(controller, datasourceName, optionsTable, currentValue, loopEdges, action)
|
||||
if currentValue == nil then
|
||||
currentValue = 0
|
||||
end
|
||||
DataSources[datasourceName] = DataSourceHelpers.ListSetup( datasourceName, function ( f47_arg0 )
|
||||
DataSources[datasourceName] = DataSourceHelpers.ListSetup(datasourceName, function(f47_arg0)
|
||||
local f47_local0 = {}
|
||||
for f47_local4, f47_local5 in ipairs( optionsTable ) do
|
||||
table.insert( f47_local0, {
|
||||
for f47_local4, f47_local5 in ipairs(optionsTable) do
|
||||
table.insert(f47_local0, {
|
||||
models = {
|
||||
text = optionsTable[f47_local4].name
|
||||
},
|
||||
@ -150,456 +167,147 @@ DataSources.MPStatsSettings = DataSourceHelpers.ListSetup( "MPStatsSettings", fu
|
||||
action = action,
|
||||
selectIndex = optionsTable[f47_local4].value == currentValue,
|
||||
loopEdges = loopEdges,
|
||||
showChangeIndicator = function ( f48_arg0, f48_arg1, f48_arg2 )
|
||||
showChangeIndicator = function(f48_arg0, f48_arg1, f48_arg2)
|
||||
return f48_arg0.default ~= true
|
||||
end
|
||||
}
|
||||
} )
|
||||
})
|
||||
end
|
||||
f47_local0[1].properties.first = true
|
||||
f47_local0[#optionsTable].properties.last = true
|
||||
return f47_local0
|
||||
end, nil, nil, nil )
|
||||
end, nil, nil, nil)
|
||||
return datasourceName
|
||||
end
|
||||
|
||||
table.insert( optionsTable, {
|
||||
|
||||
table.insert(optionsTable, {
|
||||
models = {
|
||||
name = "Rank Level",
|
||||
desc = "",
|
||||
image = nil,
|
||||
optionsDatasource = createSettingsDatasource( controller, "MPStatsSettings_rank_level", rankObjs, CoD.BlackMarketUtility.GetCurrentRank( controller ), false, function(f1_arg0, f1_arg1, f1_arg2, dvarName, f1_arg4)
|
||||
UpdateInfoModels( f1_arg1 )
|
||||
local rankTable = nil
|
||||
if Engine.CurrentSessionMode() == Enum.eModes.MODE_MULTIPLAYER then
|
||||
rankTable = "gamedata/tables/mp/mp_ranktable.csv"
|
||||
elseif Engine.CurrentSessionMode() == Enum.eModes.MODE_ZOMBIES then
|
||||
rankTable = "gamedata/tables/zm/zm_ranktable.csv"
|
||||
end
|
||||
local skipLines = Engine.CurrentSessionMode() == Enum.eModes.MODE_MULTIPLAYER and 3 or 2
|
||||
local maxXp = tonumber(Engine.TableLookupGetColumnValueForRow(rankTable, f1_arg1.value + skipLines, 7))
|
||||
if maxXp == nil then
|
||||
maxXp = 9999999999
|
||||
end
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname rankxp " .. maxXp - 1)
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname rank " .. f1_arg1.value)
|
||||
Engine.Exec( f1_arg0, "uploadstats " .. tostring( Engine.CurrentSessionMode() ) )
|
||||
end )
|
||||
optionsDatasource = createSettingsDatasource(controller, "MPStatsSettings_rank_level", rankObjs,
|
||||
CoD.BlackMarketUtility.GetCurrentRank(controller), false, function(f1_arg0, f1_arg1, f1_arg2, dvarName, f1_arg4)
|
||||
UpdateInfoModels(f1_arg1)
|
||||
local rankTable = nil
|
||||
if Engine.CurrentSessionMode() == Enum.eModes.MODE_MULTIPLAYER then
|
||||
rankTable = "gamedata/tables/mp/mp_ranktable.csv"
|
||||
elseif Engine.CurrentSessionMode() == Enum.eModes.MODE_ZOMBIES then
|
||||
rankTable = "gamedata/tables/zm/zm_ranktable.csv"
|
||||
end
|
||||
local skipLines = Engine.CurrentSessionMode() == Enum.eModes.MODE_MULTIPLAYER and 3 or 2
|
||||
local maxXp = tonumber(Engine.TableLookupGetColumnValueForRow(rankTable, f1_arg1.value + skipLines, 7))
|
||||
if maxXp == nil then
|
||||
maxXp = 9999999999
|
||||
end
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname rankxp " .. maxXp - 1)
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname rank " .. f1_arg1.value)
|
||||
Engine.Exec(f1_arg0, "uploadstats " .. tostring(Engine.CurrentSessionMode()))
|
||||
end)
|
||||
},
|
||||
properties = {
|
||||
revert = function ( f50_arg0 ) end
|
||||
revert = function(f50_arg0)
|
||||
end
|
||||
}
|
||||
})
|
||||
|
||||
table.insert( optionsTable, {
|
||||
table.insert(optionsTable, {
|
||||
models = {
|
||||
name = "Prestige",
|
||||
desc = "",
|
||||
image = nil,
|
||||
optionsDatasource = createSettingsDatasource( controller, "MPStatsSettings_rank_prestige", prestigeTable, CoD.PrestigeUtility.GetCurrentPLevel( controller ), false, function(f1_arg0, f1_arg1, f1_arg2, dvarName, f1_arg4)
|
||||
UpdateInfoModels( f1_arg1 )
|
||||
local newPrestige = f1_arg1.value
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname plevel " .. newPrestige)
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname hasprestiged " .. (newPrestige > 0 and 1 or 0))
|
||||
Engine.Exec( f1_arg0, "uploadstats " .. tostring( Engine.CurrentSessionMode() ) )
|
||||
end )
|
||||
optionsDatasource = createSettingsDatasource(controller, "MPStatsSettings_rank_prestige", prestigeTable,
|
||||
CoD.PrestigeUtility.GetCurrentPLevel(controller), false, function(f1_arg0, f1_arg1, f1_arg2, dvarName, f1_arg4)
|
||||
UpdateInfoModels(f1_arg1)
|
||||
local newPrestige = f1_arg1.value
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname plevel " .. newPrestige)
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname hasprestiged " .. (newPrestige > 0 and 1 or 0))
|
||||
Engine.Exec(f1_arg0, "uploadstats " .. tostring(Engine.CurrentSessionMode()))
|
||||
end)
|
||||
},
|
||||
properties = {
|
||||
revert = function ( f50_arg0 ) end
|
||||
revert = function(f50_arg0)
|
||||
end
|
||||
}
|
||||
})
|
||||
|
||||
return optionsTable
|
||||
|
||||
return optionsTable
|
||||
end)
|
||||
|
||||
if Dvar.cg_unlockall_loot:get() == true then
|
||||
Engine.SetDvar( "ui_enableAllHeroes", 1 )
|
||||
Engine.SetDvar("ui_enableAllHeroes", 1)
|
||||
end
|
||||
|
||||
LUI.createMenu.BoiiiStatsMenu = function ( controller )
|
||||
local self = CoD.Menu.NewForUIEditor( "BoiiiStatsMenu" )
|
||||
LUI.createMenu.BoiiiStatsMenu = function(controller)
|
||||
local self = CoD.Menu.NewForUIEditor("BoiiiStatsMenu")
|
||||
if PreLoadFunc then
|
||||
PreLoadFunc( self, controller )
|
||||
PreLoadFunc(self, controller)
|
||||
end
|
||||
self.soundSet = "ChooseDecal"
|
||||
self:setOwner( controller )
|
||||
self:setLeftRight( true, true, 0, 0 )
|
||||
self:setTopBottom( true, true, 0, 0 )
|
||||
self:playSound( "menu_open", controller )
|
||||
self.buttonModel = Engine.CreateModel( Engine.GetModelForController( controller ), "BoiiiStatsMenu.buttonPrompts" )
|
||||
self:setOwner(controller)
|
||||
self:setLeftRight(true, true, 0, 0)
|
||||
self:setTopBottom(true, true, 0, 0)
|
||||
self:playSound("menu_open", controller)
|
||||
self.buttonModel = Engine.CreateModel(Engine.GetModelForController(controller), "BoiiiStatsMenu.buttonPrompts")
|
||||
self.anyChildUsesUpdateState = true
|
||||
|
||||
local GameSettingsBackground = CoD.GameSettings_Background.new( self, controller )
|
||||
GameSettingsBackground:setLeftRight( true, true, 0, 0 )
|
||||
GameSettingsBackground:setTopBottom( true, true, 0, 0 )
|
||||
GameSettingsBackground.MenuFrame.titleLabel:setText( Engine.Localize( "STATS SETTINGS" ) )
|
||||
GameSettingsBackground.MenuFrame.cac3dTitleIntermediary0.FE3dTitleContainer0.MenuTitle.TextBox1.Label0:setText( Engine.Localize( "STATS SETTINGS" ) )
|
||||
GameSettingsBackground.GameSettingsSelectedItemInfo.GameModeInfo:setAlpha( 0 )
|
||||
GameSettingsBackground.GameSettingsSelectedItemInfo.GameModeName:setAlpha( 0 )
|
||||
self:addElement( GameSettingsBackground )
|
||||
local GameSettingsBackground = CoD.GameSettings_Background.new(self, controller)
|
||||
GameSettingsBackground:setLeftRight(true, true, 0, 0)
|
||||
GameSettingsBackground:setTopBottom(true, true, 0, 0)
|
||||
GameSettingsBackground.MenuFrame.titleLabel:setText(Engine.Localize("STATS SETTINGS"))
|
||||
GameSettingsBackground.MenuFrame.cac3dTitleIntermediary0.FE3dTitleContainer0.MenuTitle.TextBox1.Label0:setText(Engine
|
||||
.Localize("STATS SETTINGS"))
|
||||
GameSettingsBackground.GameSettingsSelectedItemInfo.GameModeInfo:setAlpha(0)
|
||||
GameSettingsBackground.GameSettingsSelectedItemInfo.GameModeName:setAlpha(0)
|
||||
self:addElement(GameSettingsBackground)
|
||||
self.GameSettingsBackground = GameSettingsBackground
|
||||
|
||||
local Options = CoD.Competitive_SettingsList.new( self, controller )
|
||||
Options:setLeftRight( true, false, 26, 741 )
|
||||
Options:setTopBottom( true, false, 135, 720 )
|
||||
Options.Title.DescTitle:setText( Engine.Localize( "Stats" ) )
|
||||
Options.ButtonList:setVerticalCount( 15 )
|
||||
Options.ButtonList:setDataSource( "MPStatsSettings" )
|
||||
self:addElement( Options )
|
||||
local Options = CoD.Competitive_SettingsList.new(self, controller)
|
||||
Options:setLeftRight(true, false, 26, 741)
|
||||
Options:setTopBottom(true, false, 135, 720)
|
||||
Options.Title.DescTitle:setText(Engine.Localize("Stats"))
|
||||
Options.ButtonList:setVerticalCount(15)
|
||||
Options.ButtonList:setDataSource("MPStatsSettings")
|
||||
self:addElement(Options)
|
||||
self.Options = Options
|
||||
|
||||
self:AddButtonCallbackFunction( self, controller, Enum.LUIButton.LUI_KEY_XBB_PSCIRCLE, nil, function ( element, menu, controller, model )
|
||||
GoBack( self, controller )
|
||||
SetPerControllerTableProperty( controller, "disableGameSettingsOptions", nil )
|
||||
return true
|
||||
end, function ( element, menu, controller )
|
||||
CoD.Menu.SetButtonLabel( menu, Enum.LUIButton.LUI_KEY_XBB_PSCIRCLE, "MENU_BACK" )
|
||||
return true
|
||||
end, false )
|
||||
self:AddButtonCallbackFunction(self, controller, Enum.LUIButton.LUI_KEY_XBB_PSCIRCLE, nil,
|
||||
function(element, menu, controller, model)
|
||||
GoBack(self, controller)
|
||||
SetPerControllerTableProperty(controller, "disableGameSettingsOptions", nil)
|
||||
return true
|
||||
end, function(element, menu, controller)
|
||||
CoD.Menu.SetButtonLabel(menu, Enum.LUIButton.LUI_KEY_XBB_PSCIRCLE, "MENU_BACK")
|
||||
return true
|
||||
end, false)
|
||||
|
||||
GameSettingsBackground.MenuFrame:setModel( self.buttonModel, controller )
|
||||
Options.id = "Options"
|
||||
GameSettingsBackground.MenuFrame:setModel(self.buttonModel, controller)
|
||||
Options.id = "Options"
|
||||
|
||||
self:processEvent( {
|
||||
self:processEvent({
|
||||
name = "menu_loaded",
|
||||
controller = controller
|
||||
} )
|
||||
self:processEvent( {
|
||||
})
|
||||
self:processEvent({
|
||||
name = "update_state",
|
||||
menu = self
|
||||
} )
|
||||
if not self:restoreState() then
|
||||
self.Options:processEvent( {
|
||||
})
|
||||
if not self:restoreState() then
|
||||
self.Options:processEvent({
|
||||
name = "gain_focus",
|
||||
controller = controller
|
||||
} )
|
||||
})
|
||||
end
|
||||
|
||||
LUI.OverrideFunction_CallOriginalSecond( self, "close", function ( element )
|
||||
LUI.OverrideFunction_CallOriginalSecond(self, "close", function(element)
|
||||
element.GameSettingsBackground:close()
|
||||
element.Options:close()
|
||||
Engine.UnsubscribeAndFreeModel( Engine.GetModel( Engine.GetModelForController( controller ), "BoiiiStatsMenu.buttonPrompts" ) )
|
||||
end )
|
||||
Engine.UnsubscribeAndFreeModel(Engine.GetModel(Engine.GetModelForController(controller),
|
||||
"BoiiiStatsMenu.buttonPrompts"))
|
||||
end)
|
||||
|
||||
if PostLoadFunc then
|
||||
PostLoadFunc( self, controller )
|
||||
if PostLoadFunc then
|
||||
PostLoadFunc(self, controller)
|
||||
end
|
||||
|
||||
return self
|
||||
return self
|
||||
end
|
||||
|
||||
CoD.LobbyButtons.MP_STATS = {
|
||||
stringRef = "STATS",
|
||||
action = function ( self, element, controller, param, menu )
|
||||
SetPerControllerTableProperty( controller, "disableGameSettingsOptions", true )
|
||||
OpenPopup( menu, "BoiiiStatsMenu", controller )
|
||||
end,
|
||||
customId = "btnMPStats"
|
||||
}
|
||||
|
||||
CoD.LobbyButtons.MP_START_GAME = {
|
||||
stringRef = "MENU_START_GAME_CAPS",
|
||||
action = function ( self, element, controller, param, menu )
|
||||
--Engine.SetDvar( "bot_difficulty", 3 )
|
||||
Engine.SetDvar( "party_minplayers", 1 )
|
||||
Engine.Exec( nil, "launchgame" )
|
||||
end,
|
||||
customId = "btnStartGame"
|
||||
}
|
||||
|
||||
CoD.LobbyButtons.SETTING_UP_BOTS = {
|
||||
stringRef = "MENU_SETUP_BOTS_CAPS",
|
||||
action = function ( self, element, controller, param, menu )
|
||||
SetPerControllerTableProperty( controller, "disableGameSettingsOptions", true )
|
||||
OpenPopup( menu, "GameSettings_Bots", controller )
|
||||
end,
|
||||
customId = "btnSettingUpBots"
|
||||
}
|
||||
|
||||
CoD.LobbyButtons.MP_CUSTOM_SETUP_GAME = {
|
||||
stringRef = "MPUI_SETUP_GAME_CAPS",
|
||||
action = OpenSetupGameMP,
|
||||
customId = "btnSetupGame",
|
||||
}
|
||||
|
||||
local IsGamescomDemo = function ()
|
||||
return Dvar.ui_execdemo_gamescom:get()
|
||||
end
|
||||
|
||||
local IsBetaDemo = function ()
|
||||
return Dvar.ui_execdemo_beta:get()
|
||||
end
|
||||
|
||||
local SetButtonState = function ( button, state )
|
||||
if state == nil then
|
||||
return
|
||||
elseif state == CoD.LobbyButtons.DISABLED then
|
||||
button.disabled = true
|
||||
elseif state == CoD.LobbyButtons.HIDDEN then
|
||||
button.hidden = true
|
||||
end
|
||||
end
|
||||
|
||||
local AddButton = function ( controller, options, button, isLargeButton )
|
||||
button.disabled = false
|
||||
button.hidden = false
|
||||
button.selected = false
|
||||
button.warning = false
|
||||
if button.defaultState ~= nil then
|
||||
if button.defaultState == CoD.LobbyButtons.DISABLED then
|
||||
button.disabled = true
|
||||
elseif button.defaultState == CoD.LobbyButtons.HIDDEN then
|
||||
button.hidden = true
|
||||
end
|
||||
end
|
||||
if button.disabledFunc ~= nil then
|
||||
button.disabled = button.disabledFunc( controller )
|
||||
end
|
||||
if button.visibleFunc ~= nil then
|
||||
button.hidden = not button.visibleFunc( controller )
|
||||
end
|
||||
if IsBetaDemo() then
|
||||
SetButtonState( button, button.demo_beta )
|
||||
elseif IsGamescomDemo() then
|
||||
SetButtonState( button, button.demo_gamescom )
|
||||
end
|
||||
if button.hidden then
|
||||
return
|
||||
end
|
||||
local lobbyNav = LobbyData.GetLobbyNav()
|
||||
if button.selectedFunc ~= nil then
|
||||
button.selected = button.selectedFunc( button.selectedParam )
|
||||
elseif CoD.LobbyMenus.History[lobbyNav] ~= nil then
|
||||
button.selected = CoD.LobbyMenus.History[lobbyNav] == button.customId
|
||||
end
|
||||
if button.newBreadcrumbFunc then
|
||||
local f8_local1 = button.newBreadcrumbFunc
|
||||
if type( f8_local1 ) == "string" then
|
||||
f8_local1 = LUI.getTableFromPath( f8_local1 )
|
||||
end
|
||||
if f8_local1 then
|
||||
button.isBreadcrumbNew = f8_local1( controller )
|
||||
end
|
||||
end
|
||||
if button.warningFunc ~= nil then
|
||||
button.warning = button.warningFunc( controller )
|
||||
end
|
||||
if button.starterPack == CoD.LobbyButtons.STARTERPACK_UPGRADE then
|
||||
button.starterPackUpgrade = true
|
||||
if IsStarterPack() then
|
||||
button.disabled = false
|
||||
end
|
||||
end
|
||||
table.insert( options, {
|
||||
optionDisplay = button.stringRef,
|
||||
action = button.action,
|
||||
param = button.param,
|
||||
customId = button.customId,
|
||||
isLargeButton = isLargeButton,
|
||||
isLastButtonInGroup = false,
|
||||
disabled = button.disabled,
|
||||
selected = button.selected,
|
||||
isBreadcrumbNew = button.isBreadcrumbNew,
|
||||
warning = button.warning,
|
||||
requiredChunk = button.selectedParam,
|
||||
starterPackUpgrade = button.starterPackUpgrade,
|
||||
unloadMod = button.unloadMod
|
||||
} )
|
||||
end
|
||||
|
||||
local AddLargeButton = function ( controller, options, button )
|
||||
AddButton( controller, options, button, true )
|
||||
end
|
||||
|
||||
local AddSmallButton = function ( controller, options, button )
|
||||
AddButton( controller, options, button, false )
|
||||
end
|
||||
|
||||
local AddSpacer = function ( options )
|
||||
if 0 < #options then
|
||||
options[#options].isLastButtonInGroup = true
|
||||
end
|
||||
end
|
||||
|
||||
local MapVote = 0
|
||||
|
||||
CoD.LobbyMenus.MPButtonsLAN = function( arg0, arg1, arg2 )
|
||||
if IsStarterPack() then
|
||||
AddSmallButton( arg0, arg1, CoD.LobbyButtons.QUIT )
|
||||
return
|
||||
end
|
||||
if arg2 == 1 then
|
||||
AddSmallButton( arg0, arg1, CoD.LobbyButtons.MP_CUSTOM_START_GAME )
|
||||
AddSmallButton( arg0, arg1, CoD.LobbyButtons.MP_CUSTOM_SETUP_GAME )
|
||||
AddSpacer( arg1 )
|
||||
end
|
||||
AddLargeButton( arg0, arg1, CoD.LobbyButtons.MP_CAC )
|
||||
AddLargeButton( arg0, arg1, CoD.LobbyButtons.MP_SPECIALISTS )
|
||||
AddLargeButton( arg0, arg1, CoD.LobbyButtons.MP_SCORESTREAKS )
|
||||
AddSpacer( arg1 )
|
||||
AddLargeButton( arg0, arg1, CoD.LobbyButtons.MP_CODCASTER_SETTINGS )
|
||||
if Engine.DvarBool( nil, "inventory_test_button_visible" ) then
|
||||
AddLargeButton( arg0, arg1, CoD.LobbyButtons.MP_INVENTORY_TEST )
|
||||
end
|
||||
Engine.Mods_Lists_UpdateUsermaps()
|
||||
end
|
||||
|
||||
CoD.LobbyMenus.MPButtonsMain = function ( arg0, arg1, arg2 )
|
||||
if arg2 == 1 then
|
||||
AddLargeButton( arg0, arg1, CoD.LobbyButtons.MP_PUBLIC_MATCH )
|
||||
AddLargeButton( arg0, arg1, CoD.LobbyButtons.MP_ARENA )
|
||||
AddLargeButton( arg0, arg1, CoD.LobbyButtons.MP_CUSTOM_GAMES )
|
||||
AddLargeButton( arg0, arg1, CoD.LobbyButtons.THEATER_MP )
|
||||
end
|
||||
AddSpacer( arg1 )
|
||||
if CoD.isPC then
|
||||
AddLargeButton( arg0, arg1, CoD.LobbyButtons.STEAM_STORE )
|
||||
else
|
||||
AddLargeButton( arg0, arg1, CoD.LobbyButtons.STORE )
|
||||
end
|
||||
Engine.Mods_Lists_UpdateUsermaps()
|
||||
end
|
||||
|
||||
CoD.LobbyMenus.MPButtonsOnline = function ( f26_arg0, f26_arg1, f26_arg2 )
|
||||
if f26_arg2 == 1 then
|
||||
AddLargeButton( f26_arg0, f26_arg1, CoD.LobbyButtons.MP_FIND_MATCH )
|
||||
AddSpacer( f26_arg1 )
|
||||
end
|
||||
AddLargeButton( f26_arg0, f26_arg1, CoD.LobbyButtons.MP_CAC_NO_WARNING )
|
||||
AddLargeButton( f26_arg0, f26_arg1, CoD.LobbyButtons.MP_SPECIALISTS_NO_WARNING )
|
||||
AddLargeButton( f26_arg0, f26_arg1, CoD.LobbyButtons.MP_SCORESTREAKS )
|
||||
if (Dvar.ui_execdemo_beta:get() or IsStarterPack()) and IsStoreAvailable() then
|
||||
if CoD.isPC then
|
||||
AddLargeButton( f26_arg0, f26_arg1, CoD.LobbyButtons.STEAM_STORE )
|
||||
else
|
||||
AddLargeButton( f26_arg0, f26_arg1, CoD.LobbyButtons.STORE )
|
||||
end
|
||||
end
|
||||
if Engine.DvarBool( nil, "inventory_test_button_visible" ) then
|
||||
AddLargeButton( f26_arg0, f26_arg1, CoD.LobbyButtons.MP_INVENTORY_TEST )
|
||||
end
|
||||
AddSpacer( f26_arg1 )
|
||||
if not DisableBlackMarket() then
|
||||
AddSmallButton( f26_arg0, f26_arg1, CoD.LobbyButtons.BLACK_MARKET )
|
||||
end
|
||||
AddSpacer( f26_arg1 )
|
||||
AddSmallButton( f26_arg0, f26_arg1, CoD.LobbyButtons.MP_STATS )
|
||||
MapVote = 1
|
||||
end
|
||||
|
||||
CoD.LobbyMenus.MPButtonsOnlinePublic = function ( f27_arg0, f27_arg1, f27_arg2 )
|
||||
if MapVote == 1 then
|
||||
Engine.Exec(nil, "LobbyStopDemo") -- Enable map vote at start lobby
|
||||
MapVote = 0
|
||||
end
|
||||
AddLargeButton( f27_arg0, f27_arg1, CoD.LobbyButtons.MP_START_GAME ) --Launch match button
|
||||
AddSpacer( f27_arg1 )
|
||||
AddLargeButton( f27_arg0, f27_arg1, CoD.LobbyButtons.MP_CAC )
|
||||
AddLargeButton( f27_arg0, f27_arg1, CoD.LobbyButtons.MP_SPECIALISTS )
|
||||
AddLargeButton( f27_arg0, f27_arg1, CoD.LobbyButtons.MP_SCORESTREAKS )
|
||||
if Engine.DvarBool( nil, "inventory_test_button_visible" ) then
|
||||
AddLargeButton( f27_arg0, f27_arg1, CoD.LobbyButtons.MP_INVENTORY_TEST )
|
||||
end
|
||||
--[[local f27_local0 = Engine.GetPlaylistInfoByID( Engine.GetPlaylistID() )
|
||||
if f27_local0 then
|
||||
local f27_local1 = f27_local0.playlist.category
|
||||
if f27_local1 == Engine.GetPlaylistCategoryIdByName( "core" ) or f27_local1 == Engine.GetPlaylistCategoryIdByName( "hardcore" ) then
|
||||
AddSpacer( f27_arg1 )
|
||||
AddSmallButton( f27_arg0, f27_arg1, CoD.LobbyButtons.MP_PUBLIC_LOBBY_LEADERBOARD )
|
||||
end
|
||||
end
|
||||
]] if not DisableBlackMarket() then
|
||||
AddSpacer( f27_arg1 )
|
||||
AddLargeButton( f27_arg0, f27_arg1, CoD.LobbyButtons.BLACK_MARKET )
|
||||
end
|
||||
AddSpacer( f27_arg1 )
|
||||
AddSmallButton( f27_arg0, f27_arg1, CoD.LobbyButtons.MP_CUSTOM_SETUP_GAME ) --Setup game in public lobby
|
||||
end
|
||||
|
||||
CoD.LobbyMenus.MPButtonsArenaGame = function ( f31_arg0, f31_arg1, f31_arg2 )
|
||||
AddLargeButton( f31_arg0, f31_arg1, CoD.LobbyButtons.MP_START_GAME ) --Launch match button
|
||||
AddSpacer( f31_arg1 )
|
||||
AddLargeButton( f31_arg0, f31_arg1, CoD.LobbyButtons.MP_CAC )
|
||||
AddLargeButton( f31_arg0, f31_arg1, CoD.LobbyButtons.MP_SPECIALISTS )
|
||||
AddLargeButton( f31_arg0, f31_arg1, CoD.LobbyButtons.MP_SCORESTREAKS )
|
||||
if not DisableBlackMarket() then
|
||||
AddSpacer( f31_arg1 )
|
||||
AddLargeButton( f31_arg0, f31_arg1, CoD.LobbyButtons.BLACK_MARKET )
|
||||
end
|
||||
AddSpacer( f31_arg1 )
|
||||
AddSmallButton( f31_arg0, f31_arg1, CoD.LobbyButtons.SETTING_UP_BOTS ) --Bot setting button in public lobby
|
||||
end
|
||||
|
||||
CoD.LobbyMenus.ZMButtonsOnline = function ( f33_arg0, f33_arg1, f33_arg2 )
|
||||
if IsStarterPack() then
|
||||
AddSmallButton( f33_arg0, f33_arg1, CoD.LobbyButtons.QUIT )
|
||||
return
|
||||
elseif f33_arg2 == 1 then
|
||||
AddLargeButton( f33_arg0, f33_arg1, CoD.LobbyButtons.ZM_SOLO_GAME )
|
||||
AddLargeButton( f33_arg0, f33_arg1, CoD.LobbyButtons.ZM_FIND_MATCH )
|
||||
AddLargeButton( f33_arg0, f33_arg1, CoD.LobbyButtons.ZM_CUSTOM_GAMES )
|
||||
AddLargeButton( f33_arg0, f33_arg1, CoD.LobbyButtons.THEATER_ZM )
|
||||
AddSpacer( f33_arg1 )
|
||||
end
|
||||
AddLargeButton( f33_arg0, f33_arg1, CoD.LobbyButtons.ZM_BUBBLEGUM_BUFFS )
|
||||
AddLargeButton( f33_arg0, f33_arg1, CoD.LobbyButtons.ZM_MEGACHEW_FACTORY )
|
||||
AddLargeButton( f33_arg0, f33_arg1, CoD.LobbyButtons.ZM_GOBBLEGUM_RECIPES )
|
||||
AddLargeButton( f33_arg0, f33_arg1, CoD.LobbyButtons.ZM_BUILD_KITS )
|
||||
AddSpacer( f33_arg1 )
|
||||
AddSmallButton( f33_arg0, f33_arg1, CoD.LobbyButtons.MP_STATS )
|
||||
Engine.Mods_Lists_UpdateUsermaps()
|
||||
end
|
||||
|
||||
local targetButtons = {
|
||||
[LobbyData.UITargets.UI_MAIN.id] = CoD.LobbyMenus.ModeSelect,
|
||||
[LobbyData.UITargets.UI_MODESELECT.id] = CoD.LobbyMenus.ModeSelect,
|
||||
[LobbyData.UITargets.UI_CPLOBBYLANGAME.id] = CoD.LobbyMenus.CPButtonsLAN,
|
||||
[LobbyData.UITargets.UI_CPLOBBYLANCUSTOMGAME.id] = CoD.LobbyMenus.CPButtonsLANCUSTOM,
|
||||
[LobbyData.UITargets.UI_CPLOBBYONLINE.id] = CoD.LobbyMenus.CPButtonsOnline,
|
||||
[LobbyData.UITargets.UI_CPLOBBYONLINEPUBLICGAME.id] = CoD.LobbyMenus.CPButtonsPublicGame,
|
||||
[LobbyData.UITargets.UI_CPLOBBYONLINECUSTOMGAME.id] = CoD.LobbyMenus.CPButtonsCustomGame,
|
||||
[LobbyData.UITargets.UI_CP2LOBBYLANGAME.id] = CoD.LobbyMenus.CPZMButtonsLAN,
|
||||
[LobbyData.UITargets.UI_CP2LOBBYLANCUSTOMGAME.id] = CoD.LobbyMenus.CPButtonsLANCUSTOM,
|
||||
[LobbyData.UITargets.UI_CP2LOBBYONLINE.id] = CoD.LobbyMenus.CPZMButtonsOnline,
|
||||
[LobbyData.UITargets.UI_CP2LOBBYONLINEPUBLICGAME.id] = CoD.LobbyMenus.CPZMButtonsPublicGame,
|
||||
[LobbyData.UITargets.UI_CP2LOBBYONLINECUSTOMGAME.id] = CoD.LobbyMenus.CPButtonsCustomGame,
|
||||
[LobbyData.UITargets.UI_DOALOBBYLANGAME.id] = CoD.LobbyMenus.DOAButtonsLAN,
|
||||
[LobbyData.UITargets.UI_DOALOBBYONLINE.id] = CoD.LobbyMenus.DOAButtonsOnline,
|
||||
[LobbyData.UITargets.UI_DOALOBBYONLINEPUBLICGAME.id] = CoD.LobbyMenus.DOAButtonsPublicGame,
|
||||
[LobbyData.UITargets.UI_MPLOBBYLANGAME.id] = CoD.LobbyMenus.MPButtonsLAN,
|
||||
[LobbyData.UITargets.UI_MPLOBBYMAIN.id] = CoD.LobbyMenus.MPButtonsMain,
|
||||
[LobbyData.UITargets.UI_MPLOBBYONLINE.id] = CoD.LobbyMenus.MPButtonsOnline,
|
||||
[LobbyData.UITargets.UI_MPLOBBYONLINEPUBLICGAME.id] = CoD.LobbyMenus.MPButtonsOnlinePublic,
|
||||
[LobbyData.UITargets.UI_MPLOBBYONLINEMODGAME.id] = CoD.LobbyMenus.MPButtonsModGame,
|
||||
[LobbyData.UITargets.UI_MPLOBBYONLINECUSTOMGAME.id] = CoD.LobbyMenus.MPButtonsCustomGame,
|
||||
[LobbyData.UITargets.UI_MPLOBBYONLINEARENA.id] = CoD.LobbyMenus.MPButtonsArena,
|
||||
[LobbyData.UITargets.UI_MPLOBBYONLINEARENAGAME.id] = CoD.LobbyMenus.MPButtonsArenaGame,
|
||||
[LobbyData.UITargets.UI_FRLOBBYONLINEGAME.id] = CoD.LobbyMenus.FRButtonsOnlineGame,
|
||||
[LobbyData.UITargets.UI_FRLOBBYLANGAME.id] = CoD.LobbyMenus.FRButtonsLANGame,
|
||||
[LobbyData.UITargets.UI_ZMLOBBYLANGAME.id] = CoD.LobbyMenus.ZMButtonsLAN,
|
||||
[LobbyData.UITargets.UI_ZMLOBBYONLINE.id] = CoD.LobbyMenus.ZMButtonsOnline,
|
||||
[LobbyData.UITargets.UI_ZMLOBBYONLINEPUBLICGAME.id] = CoD.LobbyMenus.ZMButtonsPublicGame,
|
||||
[LobbyData.UITargets.UI_ZMLOBBYONLINECUSTOMGAME.id] = CoD.LobbyMenus.ZMButtonsCustomGame,
|
||||
[LobbyData.UITargets.UI_MPLOBBYONLINETHEATER.id] = CoD.LobbyMenus.ButtonsTheaterGame,
|
||||
[LobbyData.UITargets.UI_ZMLOBBYONLINETHEATER.id] = CoD.LobbyMenus.ButtonsTheaterGame
|
||||
}
|
||||
|
||||
CoD.LobbyMenus.AddButtonsForTarget = function ( controller, id )
|
||||
local buttonFunc = targetButtons[id]
|
||||
local model = nil
|
||||
if Engine.IsLobbyActive( Enum.LobbyType.LOBBY_TYPE_GAME ) then
|
||||
model = Engine.GetModel( DataSources.LobbyRoot.getModel( controller ), "gameClient.isHost" )
|
||||
else
|
||||
model = Engine.GetModel( DataSources.LobbyRoot.getModel( controller ), "privateClient.isHost" )
|
||||
end
|
||||
local isLeader = nil
|
||||
if model ~= nil then
|
||||
isLeader = Engine.GetModelValue( model )
|
||||
else
|
||||
isLeader = 1
|
||||
end
|
||||
local result = {}
|
||||
buttonFunc( controller, result, isLeader )
|
||||
return result
|
||||
end
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user