Skip to content

Commit

Permalink
Quick match
Browse files Browse the repository at this point in the history
  • Loading branch information
devo1929 committed May 11, 2022
1 parent 620d8a6 commit f2143b9
Show file tree
Hide file tree
Showing 39 changed files with 1,511 additions and 16 deletions.
1 change: 1 addition & 0 deletions ClientCore/ClientCore.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="CCIniFile.cs" />
<Compile Include="ClientException.cs" />
<Compile Include="CnCNet5\CnCNetGame.cs" />
<Compile Include="CnCNet5\GameCollection.cs" />
<Compile Include="ClientConfiguration.cs" />
Expand Down
11 changes: 11 additions & 0 deletions ClientCore/ClientException.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
using System;

namespace ClientCore
{
public class ClientException : Exception
{
public ClientException(string message) : base(message)
{
}
}
}
8 changes: 5 additions & 3 deletions ClientGUI/Parser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
using Rampastring.XNAUI.XNAControls;
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

namespace ClientGUI
{
Expand Down Expand Up @@ -69,6 +70,9 @@ private XNAControl GetControl(string controlName)
if (controlName == primaryControl.Name)
return primaryControl;

if (controlName == primaryControl.Parent.Name)
return primaryControl.Parent;

var control = Find(primaryControl.Children, controlName);
if (control == null)
throw new KeyNotFoundException($"Control '{controlName}' not found while parsing input '{Input}'");
Expand Down Expand Up @@ -104,7 +108,7 @@ public void SetPrimaryControl(XNAControl primaryControl)
public int GetExprValue(string input, XNAControl parsingControl)
{
this.parsingControl = parsingControl;
Input = input;
Input = Regex.Replace(input, @"\s", "");
tokenPlace = 0;
return GetExprValue();
}
Expand All @@ -115,8 +119,6 @@ private int GetExprValue()

while (true)
{
SkipWhitespace();

if (IsEndOfInput())
return value;

Expand Down
7 changes: 6 additions & 1 deletion ClientGUI/XNAMessageBox.cs
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,10 @@ private static void MsgBox_OKClicked(XNAMessageBox messageBox)
/// <param name="caption">The caption of the message box.</param>
/// <param name="description">The description in the message box.</param>
/// <returns>The XNAMessageBox instance that is created.</returns>
public static XNAMessageBox ShowYesNoDialog(WindowManager windowManager, string caption, string description)
public static XNAMessageBox ShowYesNoDialog(WindowManager windowManager, string caption, string description)
=> ShowYesNoDialog(windowManager, caption, description, null);

public static XNAMessageBox ShowYesNoDialog(WindowManager windowManager, string caption, string description, Action<XNAMessageBox> yesAction)
{
var panel = new DarkeningPanel(windowManager);
windowManager.AddAndInitializeControl(panel);
Expand All @@ -274,6 +277,8 @@ public static XNAMessageBox ShowYesNoDialog(WindowManager windowManager, string

panel.AddChild(msgBox);
msgBox.YesClickedAction = MsgBox_YesClicked;
if (yesAction != null)
msgBox.YesClickedAction += yesAction;
msgBox.NoClickedAction = MsgBox_NoClicked;

return msgBox;
Expand Down
35 changes: 26 additions & 9 deletions DXMainClient/DXGUI/Generic/LoadingScreen.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@
using DTAClient.DXGUI.Multiplayer;
using DTAClient.DXGUI.Multiplayer.CnCNet;
using DTAClient.DXGUI.Multiplayer.GameLobby;
using DTAClient.DXGUI.Multiplayer.QuickMatch;
using DTAClient.Online;
using DTAConfig;
using Microsoft.Xna.Framework;
using Rampastring.XNAUI;
using System.Threading.Tasks;
using Rampastring.XNAUI.XNAControls;
using Updater;
using SkirmishLobby = DTAClient.DXGUI.Multiplayer.GameLobby.SkirmishLobby;

Expand Down Expand Up @@ -71,7 +73,7 @@ private void InitUpdater()

private void LoadMaps()
{
mapLoader = new MapLoader();
mapLoader = MapLoader.GetInstance();
mapLoader.LoadMaps();
}

Expand All @@ -84,13 +86,7 @@ private void Finish()
if (!string.IsNullOrEmpty(ClientConfiguration.Instance.DiscordAppId))
discordHandler = new DiscordHandler(WindowManager);

ClientGUICreator.Instance.AddControl(typeof(GameLobbyCheckBox));
ClientGUICreator.Instance.AddControl(typeof(GameLobbyDropDown));
ClientGUICreator.Instance.AddControl(typeof(MapPreviewBox));
ClientGUICreator.Instance.AddControl(typeof(GameLaunchButton));
ClientGUICreator.Instance.AddControl(typeof(ChatListBox));
ClientGUICreator.Instance.AddControl(typeof(XNAChatTextBox));
ClientGUICreator.Instance.AddControl(typeof(PlayerExtraOptionsPanel));
DeclareCustomControls();

var gameCollection = new GameCollection();
gameCollection.Initialize(GraphicsDevice);
Expand Down Expand Up @@ -120,15 +116,18 @@ private void Finish()
var gipw = new GameInProgressWindow(WindowManager);

var skirmishLobby = new SkirmishLobby(WindowManager, topBar, mapLoader, discordHandler);
var quickMatchWindow = new QuickMatchWindow(WindowManager, topBar);

topBar.SetSecondarySwitch(cncnetLobby);

var mainMenu = new MainMenu(WindowManager, skirmishLobby, lanLobby,
var mainMenu = new MainMenu(WindowManager, skirmishLobby, quickMatchWindow, lanLobby,
topBar, optionsWindow, cncnetLobby, cncnetManager, discordHandler);
WindowManager.AddAndInitializeControl(mainMenu);

DarkeningPanel.AddAndInitializeWithControl(WindowManager, skirmishLobby);

DarkeningPanel.AddAndInitializeWithControl(WindowManager, quickMatchWindow);

DarkeningPanel.AddAndInitializeWithControl(WindowManager, cncnetGameLoadingLobby);

DarkeningPanel.AddAndInitializeWithControl(WindowManager, cncnetGameLobby);
Expand All @@ -144,9 +143,11 @@ private void Finish()

topBar.SetTertiarySwitch(pmWindow);
topBar.SetOptionsWindow(optionsWindow);
topBar.SetQuickMatchWindow(quickMatchWindow);

WindowManager.AddAndInitializeControl(gipw);
skirmishLobby.Disable();
quickMatchWindow.Disable();
cncnetLobby.Disable();
cncnetGameLobby.Disable();
cncnetGameLoadingLobby.Disable();
Expand Down Expand Up @@ -175,6 +176,22 @@ private void Finish()
Cursor.Visible = visibleSpriteCursor;
}

private static void DeclareCustomControls()
{
ClientGUICreator.Instance.AddControl(typeof(GameLobbyCheckBox));
ClientGUICreator.Instance.AddControl(typeof(GameLobbyDropDown));
ClientGUICreator.Instance.AddControl(typeof(MapPreviewBox));
ClientGUICreator.Instance.AddControl(typeof(GameLaunchButton));
ClientGUICreator.Instance.AddControl(typeof(ChatListBox));
ClientGUICreator.Instance.AddControl(typeof(XNAChatTextBox));
ClientGUICreator.Instance.AddControl(typeof(XNAPasswordBox));
ClientGUICreator.Instance.AddControl(typeof(PlayerExtraOptionsPanel));
ClientGUICreator.Instance.AddControl(typeof(QuickMatchLoginPanel));
ClientGUICreator.Instance.AddControl(typeof(QuickMatchLobbyPanel));
ClientGUICreator.Instance.AddControl(typeof(QuickMatchMapList));
ClientGUICreator.Instance.AddControl(typeof(QuickMatchStatusMessageWindow));
}

public override void Update(GameTime gameTime)
{
base.Update(gameTime);
Expand Down
26 changes: 23 additions & 3 deletions DXMainClient/DXGUI/Generic/MainMenu.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using DTAClient.DXGUI.Multiplayer;
using DTAClient.DXGUI.Multiplayer.CnCNet;
using DTAClient.DXGUI.Multiplayer.GameLobby;
using DTAClient.DXGUI.Multiplayer.QuickMatch;
using DTAClient.Online;
using DTAConfig;
using Localization;
Expand Down Expand Up @@ -36,12 +37,20 @@ class MainMenu : XNAWindow, ISwitchable
/// <summary>
/// Creates a new instance of the main menu.
/// </summary>
public MainMenu(WindowManager windowManager, SkirmishLobby skirmishLobby,
LANLobby lanLobby, TopBar topBar, OptionsWindow optionsWindow,
public MainMenu(
WindowManager windowManager,
SkirmishLobby skirmishLobby,
QuickMatchWindow quickMatchWindow,
LANLobby lanLobby,
TopBar topBar,
OptionsWindow optionsWindow,
CnCNetLobby cncnetLobby,
CnCNetManager connectionManager, DiscordHandler discordHandler) : base(windowManager)
CnCNetManager connectionManager,
DiscordHandler discordHandler
) : base(windowManager)
{
this.skirmishLobby = skirmishLobby;
this.quickMatchWindow = quickMatchWindow;
this.lanLobby = lanLobby;
this.topBar = topBar;
this.connectionManager = connectionManager;
Expand All @@ -62,6 +71,8 @@ public MainMenu(WindowManager windowManager, SkirmishLobby skirmishLobby,

private SkirmishLobby skirmishLobby;

private QuickMatchWindow quickMatchWindow;

private LANLobby lanLobby;

private CnCNetManager connectionManager;
Expand Down Expand Up @@ -106,6 +117,7 @@ private bool UpdateInProgress
private XNAClientButton btnLoadGame;
private XNAClientButton btnSkirmish;
private XNAClientButton btnCnCNet;
private XNAClientButton btnQuickmatch;
private XNAClientButton btnLan;
private XNAClientButton btnOptions;
private XNAClientButton btnMapEditor;
Expand Down Expand Up @@ -154,6 +166,11 @@ public override void Initialize()
btnCnCNet.HoverSoundEffect = new EnhancedSoundEffect("MainMenu/button.wav");
btnCnCNet.LeftClick += BtnCnCNet_LeftClick;

btnQuickmatch = new XNAClientButton(WindowManager);
btnQuickmatch.Name = nameof(btnQuickmatch);
btnQuickmatch.LeftClick += BtnQuickmatch_LeftClick;
btnQuickmatch.Disable();

btnLan = new XNAClientButton(WindowManager);
btnLan.Name = nameof(btnLan);
btnLan.IdleTexture = AssetLoader.LoadTexture("MainMenu/lan.png");
Expand Down Expand Up @@ -225,6 +242,7 @@ public override void Initialize()
AddChild(btnLoadGame);
AddChild(btnSkirmish);
AddChild(btnCnCNet);
AddChild(btnQuickmatch);
AddChild(btnLan);
AddChild(btnOptions);
AddChild(btnMapEditor);
Expand Down Expand Up @@ -753,6 +771,8 @@ private void BtnLan_LeftClick(object sender, EventArgs e)

private void BtnCnCNet_LeftClick(object sender, EventArgs e) => topBar.SwitchToSecondary();

private void BtnQuickmatch_LeftClick(object sender, EventArgs e) => quickMatchWindow.Enable();

private void BtnSkirmish_LeftClick(object sender, EventArgs e)
{
skirmishLobby.Open();
Expand Down
5 changes: 5 additions & 0 deletions DXMainClient/DXGUI/Generic/TopBar.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
using ClientCore;
using System.Threading;
using DTAClient.Domain.Multiplayer.CnCNet;
using DTAClient.DXGUI.Multiplayer.QuickMatch;
using DTAClient.Online.EventArguments;
using DTAConfig;
using Localization;
Expand Down Expand Up @@ -53,6 +54,7 @@ PrivateMessageHandler privateMessageHandler
private ISwitchable privateMessageSwitch;

private OptionsWindow optionsWindow;
private QuickMatchWindow quickMatchWindow;

private XNAClientButton btnMainButton;
private XNAClientButton btnCnCNetLobby;
Expand Down Expand Up @@ -107,6 +109,8 @@ public void SetOptionsWindow(OptionsWindow optionsWindow)
optionsWindow.EnabledChanged += OptionsWindow_EnabledChanged;
}

public void SetQuickMatchWindow(QuickMatchWindow quickMatchWindow) => this.quickMatchWindow = quickMatchWindow;

private void OptionsWindow_EnabledChanged(object sender, EventArgs e)
{
if (!lanMode)
Expand Down Expand Up @@ -324,6 +328,7 @@ private void BtnMainButton_LeftClick(object sender, EventArgs e)
LastSwitchType = SwitchType.PRIMARY;
cncnetLobbySwitch.SwitchOff();
privateMessageSwitch.SwitchOff();
quickMatchWindow.Disable();
primarySwitches[primarySwitches.Count - 1].SwitchOn();

// HACK warning
Expand Down
Loading

0 comments on commit f2143b9

Please sign in to comment.