diff --git a/ui_mp/t6/hud/endgamepopup.lua b/ui_mp/t6/hud/endgamepopup.lua new file mode 100644 index 00000000..660950bb --- /dev/null +++ b/ui_mp/t6/hud/endgamepopup.lua @@ -0,0 +1,149 @@ +require("T6.HUD.InGameMenus") +CoD.EndGamePopup = {} +CoD.EndGamePopup.AddButton = function(f1_arg0, f1_arg1, f1_arg2) + local f1_local0 = f1_arg0.buttonList:addButton(f1_arg1) + f1_local0:setActionEventName(f1_arg2) + return f1_local0 +end + +CoD.EndGamePopup.Close = function(f2_arg0, f2_arg1) + f2_arg0:processEvent({ + name = "close_all_ingame_menus", + controller = f2_arg1.controller, + }) +end + +CoD.EndGamePopup.YesButtonPressed = function(f3_arg0, f3_arg1) + if CoD.isZombie == true then + Engine.SetDvar("cl_paused", 0) + end + if CoD.isZombie == false then + if Engine.GameModeIsMode(CoD.GAMEMODE_LEAGUE_MATCH) and Engine.ProbationCheckForQuitWarning(CoD.GAMEMODE_LEAGUE_MATCH) then + f3_arg0:openMenu("popup_probation_quit_warning", f3_arg1.controller) + f3_arg0:close() + return + elseif Engine.GameModeIsMode(CoD.GAMEMODE_PUBLIC_MATCH) and Engine.ProbationCheckForQuitWarning(CoD.GAMEMODE_PUBLIC_MATCH) then + f3_arg0:openMenu("popup_probation_quit_warning", f3_arg1.controller) + f3_arg0:close() + return + end + end + CoD.EndGamePopup.Close(f3_arg0, f3_arg1) + CoD.EndGamePopup.FinishEndGame(f3_arg0, f3_arg1) +end + +CoD.EndGamePopup.FinishEndGame = function(f4_arg0, f4_arg1) + if not CoD.isRankedGame() and CoD.isHost() then + Engine.SendMenuResponse(f4_arg1.controller, "popup_leavegame", "endround") + elseif not CoD.isHost() and UIExpression.InPrivateParty() == 1 and UIExpression.PrivatePartyHost() == 0 and UIExpression.PrivatePartyHostInLobby() == 1 then + Engine.UpdateStatsForQuit(f4_arg1.controller, false) + Engine.Exec(f4_arg1.controller, "disconnect") + Engine.Exec(f4_arg1.controller, "xstopallparties") + Engine.GameModeSetMode(CoD.GAMEMODE_PRIVATE_MATCH, false) + Engine.SessionModeSetPrivate(false) + Engine.Exec(f4_arg1.controller, "xstartprivateparty") + elseif not CoD.isHost() and (CoD.isPartyHost() or UIExpression.PrivatePartyHostInLobby() == 0) then + Engine.UpdateStatsForQuit(f4_arg1.controller, false) + Engine.Exec(f4_arg1.controller, "disconnect") + elseif CoD.isRankedGame() and CoD.isHost() and UIExpression.HostMigrationWaitingForPlayers(controller) == 0 and UIExpression.DvarInt(nil, "g_gameEnded") ~= 1 then + if CoD.isZombie == true then + Engine.UpdateStatsForQuit(f4_arg1.controller, true) + if Engine.PartyGetPlayerCount() <= Dvar.migration_minclientcount:get() then + Engine.SendMenuResponse(f4_arg1.controller, "popup_leavegame", "endround") + else + Engine.Exec(f4_arg1.controller, "hostmigration_start") + Engine.Exec(f4_arg1.controller, "xpartydisbandafterround") + end + else + Engine.UpdateStatsForQuit(f4_arg1.controller, true) + Engine.Exec(f4_arg1.controller, "hostmigration_start") + Engine.Exec(f4_arg1.controller, "xpartydisbandafterround") + end + end +end + +CoD.EndGamePopup.NoButtonPressed = function(f5_arg0, f5_arg1) + CoD.Menu.ButtonPromptBack(f5_arg0, f5_arg1) +end + +CoD.EndGamePopup.AddTitleAndSubtitle = function(f6_arg0, f6_arg1, f6_arg2) + if f6_arg1 ~= nil then + local f6_local0 = LUI.UIText.new() + f6_local0:setLeftRight(true, true, 0, 0) + f6_local0:setTopBottom(true, false, 0, CoD.textSize.Big) + f6_local0:setFont(CoD.fonts.Big) + f6_local0:setAlignment(LUI.Alignment.Left) + f6_local0:setText(f6_arg1) + f6_arg0:addElement(f6_local0) + end + if f6_arg2 ~= nil then + local f6_local0 = CoD.textSize.Big + 5 + local f6_local1 = LUI.UIText.new() + f6_local1:setLeftRight(true, true, 0, 0) + f6_local1:setTopBottom(true, false, f6_local0, f6_local0 + CoD.textSize.Default) + f6_local1:setFont(CoD.fonts.Default) + f6_local1:setAlignment(LUI.Alignment.Left) + f6_local1:setText(f6_arg2) + f6_arg0:addElement(f6_local1) + end +end + +LUI.createMenu.EndGamePopup = function(f7_arg0) + local f7_local0 = CoD.Menu.NewSmallPopup("EndGamePopup") + f7_local0:setOwner(f7_arg0) + f7_local0:registerEventHandler("close_all_ingame_menus", CoD.InGameMenu.CloseAllInGameMenus) + f7_local0:registerEventHandler("endGamePopup_YesButtonPressed", CoD.EndGamePopup.YesButtonPressed) + f7_local0:registerEventHandler("endGamePopup_NoButtonPressed", CoD.EndGamePopup.NoButtonPressed) + f7_local0:addSelectButton() + f7_local0:addBackButton() + f7_local0.backButtonPrompt = CoD.ButtonPrompt.new("select", "", f7_local0, "button_prompt_back", true) + f7_local0.startButtonPrompt = CoD.ButtonPrompt.new("start", "", f7_local0, "button_prompt_back", true) + f7_local0:addRightButtonPrompt(f7_local0.backButtonPrompt) + f7_local0:addRightButtonPrompt(f7_local0.startButtonPrompt) + local f7_local1 = "MENU_LEAVE_GAME_RANKED" + if Engine.ProbationCheckIfPenalizedForQuit(f7_arg0) == true then + f7_local1 = "MENU_LEAVE_GAME_RANKED_PROBATION" + end + if CoD.isZombie == true then + f7_local1 = "ZOMBIE_LEAVE_GAME_RANKED" + end + if Engine.GameModeIsMode(CoD.GAMEMODE_LEAGUE_MATCH) == true then + f7_local1 = "MENU_LEAVE_GAME_LEAGUES" + end + local f7_local2 = Engine.Localize("MENU_QUIT_GAME") + local f7_local3 = nil + if CoD.isRankedGame() then + if CoD.isHost() then + f7_local2 = Engine.Localize("MENU_QUIT_GAME") + elseif UIExpression.InPrivateParty() == 1 and UIExpression.PrivatePartyHost() == 0 and UIExpression.PrivatePartyHostInLobby() == 1 then + f7_local2 = Engine.Localize("MENU_LEAVE_GAME_AND_PARTY") + else + f7_local2 = Engine.Localize("MENU_QUIT_GAME") + end + f7_local3 = Engine.Localize(f7_local1) + elseif CoD.isHost() then + f7_local2 = Engine.Localize("MPUI_END_GAME2") + elseif UIExpression.InPrivateParty() == 1 and UIExpression.PrivatePartyHost() == 0 and UIExpression.PrivatePartyHostInLobby() == 1 then + f7_local2 = Engine.Localize("MENU_LEAVE_GAME_AND_PARTY") + else + f7_local2 = Engine.Localize("MENU_QUIT_GAME") + end + CoD.EndGamePopup.AddTitleAndSubtitle(f7_local0, f7_local2, f7_local3) + f7_local0.buttonList = CoD.ButtonList.new({ + leftAnchor = true, + rightAnchor = true, + left = 0, + right = 0, + topAnchor = false, + bottomAnchor = true, + top = -CoD.ButtonPrompt.Height - CoD.CoD9Button.Height * 3 + 10, + bottom = 0, + }) + local f7_local4 = CoD.EndGamePopup.AddButton(f7_local0, Engine.Localize("MENU_YES"), "endGamePopup_YesButtonPressed") + local f7_local5 = CoD.EndGamePopup.AddButton(f7_local0, Engine.Localize("MENU_NO"), "endGamePopup_NoButtonPressed") + f7_local5:processEvent({ + name = "gain_focus", + }) + f7_local0:addElement(f7_local0.buttonList) + return f7_local0 +end diff --git a/ui_mp/t6/zombie/restartgamepopupzombie.lua b/ui_mp/t6/zombie/restartgamepopupzombie.lua index 7660cf89..17f0c170 100644 --- a/ui_mp/t6/zombie/restartgamepopupzombie.lua +++ b/ui_mp/t6/zombie/restartgamepopupzombie.lua @@ -15,7 +15,7 @@ CoD.RestartGamePopup.YesButtonPressed = function(f6_arg0, f6_arg1) end CoD.RestartGamePopup.NoButtonPressed = function(f7_arg0, f7_arg1) - f7_arg0:goBack(f7_arg1.controller) + CoD.Menu.ButtonPromptBack(f7_arg0, f7_arg1) end LUI.createMenu.RestartGamePopup = function(f8_arg0)