Close the ingame menu upon voting

This commit is contained in:
Gustas
2023-09-11 10:27:06 +03:00
committed by Pavel Penev
parent 144e716cdf
commit d5c940ba4c
3 changed files with 11 additions and 4 deletions

View File

@@ -40,12 +40,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
readonly World world;
readonly ModData modData;
readonly Action<bool> hideMenu;
readonly Action closeMenu;
readonly IObjectivesPanel iop;
IngameInfoPanel activePanel;
readonly bool hasError;
[ObjectCreator.UseCtor]
public GameInfoLogic(Widget widget, ModData modData, World world, IngameInfoPanel initialPanel, Action<bool> hideMenu)
public GameInfoLogic(Widget widget, ModData modData, World world, IngameInfoPanel initialPanel, Action<bool> hideMenu, Action closeMenu)
{
var panels = new Dictionary<IngameInfoPanel, (string Panel, string Label, Action<ButtonWidget, Widget> Setup)>()
{
@@ -59,6 +60,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
this.world = world;
this.modData = modData;
this.hideMenu = hideMenu;
this.closeMenu = closeMenu;
activePanel = initialPanel;
var visiblePanels = new List<IngameInfoPanel>();
@@ -140,7 +142,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
var panel = hasError ? "SCRIPT_ERROR_PANEL" : iop.PanelName;
Game.LoadWidget(world, panel, objectivesPanelContainer, new WidgetArgs()
{
{ "hideMenu", hideMenu }
{ "hideMenu", hideMenu },
{ "closeMenu", closeMenu },
});
}

View File

@@ -87,7 +87,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
const string VoteKickVoteCancel = "dialog-vote-kick.vote-cancel";
[ObjectCreator.UseCtor]
public GameInfoStatsLogic(Widget widget, ModData modData, World world, OrderManager orderManager, WorldRenderer worldRenderer, Action<bool> hideMenu)
public GameInfoStatsLogic(Widget widget, ModData modData, World world, OrderManager orderManager, WorldRenderer worldRenderer, Action<bool> hideMenu, Action closeMenu)
{
var player = world.LocalPlayer;
var playerPanel = widget.Get<ScrollPanelWidget>("PLAYER_LIST");
@@ -165,6 +165,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
{
orderManager.IssueOrder(Order.Command($"vote_kick {client.Index} {true}"));
hideMenu(false);
closeMenu();
},
confirmText: VoteKickVoteStart,
onCancel: () => hideMenu(false));
@@ -180,6 +181,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
{
orderManager.IssueOrder(Order.Command($"vote_kick {client.Index} {true}"));
hideMenu(false);
closeMenu();
},
confirmText: VoteKickVoteFor,
onOther: () =>
@@ -187,6 +189,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
Ui.CloseWindow();
orderManager.IssueOrder(Order.Command($"vote_kick {client.Index} {false}"));
hideMenu(false);
closeMenu();
},
otherText: VoteKickVoteAgainst,
onCancel: () => hideMenu(false),

View File

@@ -225,7 +225,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
var gameInfoPanel = Game.LoadWidget(world, "GAME_INFO_PANEL", panelRoot, new WidgetArgs()
{
{ "initialPanel", initialPanel },
{ "hideMenu", requestHideMenu }
{ "hideMenu", requestHideMenu },
{ "closeMenu", CloseMenu },
});
gameInfoPanel.IsVisible = () => !hideMenu;