Add save/load browser and buttons to the UI.

This commit is contained in:
Paul Chote
2019-04-20 10:33:55 +00:00
committed by reaperrr
parent 3a693d8def
commit de9649df27
13 changed files with 679 additions and 1 deletions

View File

@@ -28,7 +28,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
{
protected enum MenuType { Main, Singleplayer, Extras, MapEditor, SystemInfoPrompt, None }
protected enum MenuPanel { None, Missions, Skirmish, Multiplayer, MapEditor, Replays }
protected enum MenuPanel { None, Missions, Skirmish, Multiplayer, MapEditor, Replays, GameSaves }
protected MenuType menuType = MenuType.Main;
readonly Widget rootMenu;
@@ -127,6 +127,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
skirmishButton.OnClick = StartSkirmishGame;
skirmishButton.Disabled = !hasMaps;
var loadButton = singleplayerMenu.Get<ButtonWidget>("LOAD_BUTTON");
loadButton.IsDisabled = () => !GameSaveBrowserLogic.IsLoadPanelEnabled(modData.Manifest);
loadButton.OnClick = OpenGameSaveBrowserPanel;
singleplayerMenu.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => SwitchMenu(MenuType.Main);
// Extras menu
@@ -500,6 +504,18 @@ namespace OpenRA.Mods.Common.Widgets.Logic
});
}
void OpenGameSaveBrowserPanel()
{
SwitchMenu(MenuType.None);
Ui.OpenWindow("GAMESAVE_BROWSER_PANEL", new WidgetArgs
{
{ "onExit", () => SwitchMenu(MenuType.Singleplayer) },
{ "onStart", () => { RemoveShellmapUI(); lastGameState = MenuPanel.GameSaves; } },
{ "isSavePanel", false },
{ "world", null }
});
}
protected override void Dispose(bool disposing)
{
if (disposing)
@@ -535,6 +551,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
case MenuPanel.MapEditor:
SwitchMenu(MenuType.MapEditor);
break;
case MenuPanel.GameSaves:
SwitchMenu(MenuType.Singleplayer);
break;
}
lastGameState = MenuPanel.None;