Skip to content

Commit f3fc843

Browse files
committed
Quick match
1 parent 620d8a6 commit f3fc843

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1534
-39
lines changed

ClientCore/ClientCore.csproj

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
<DefineConstants>TRACE;DEBUG;XNA</DefineConstants>
5656
<ErrorReport>prompt</ErrorReport>
5757
<WarningLevel>4</WarningLevel>
58-
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
58+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
5959
<PlatformTarget>x86</PlatformTarget>
6060
</PropertyGroup>
6161
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|XNAFramework' ">
@@ -65,7 +65,7 @@
6565
<DefineConstants>TRACE</DefineConstants>
6666
<ErrorReport>prompt</ErrorReport>
6767
<WarningLevel>4</WarningLevel>
68-
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
68+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
6969
<PlatformTarget>x86</PlatformTarget>
7070
</PropertyGroup>
7171
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'AresRelease|SharpDX' ">
@@ -83,7 +83,7 @@
8383
<DefineConstants>TRACE;ARES YR</DefineConstants>
8484
<ErrorReport>prompt</ErrorReport>
8585
<WarningLevel>4</WarningLevel>
86-
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
86+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
8787
<PlatformTarget>x86</PlatformTarget>
8888
</PropertyGroup>
8989
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'AresRelease|WindowsGL' ">
@@ -109,7 +109,7 @@
109109
<DefineConstants>TRACE;YR</DefineConstants>
110110
<ErrorReport>prompt</ErrorReport>
111111
<WarningLevel>4</WarningLevel>
112-
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
112+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
113113
<PlatformTarget>x86</PlatformTarget>
114114
</PropertyGroup>
115115
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'YRRelease|WindowsGL' ">
@@ -145,7 +145,7 @@
145145
<OutputPath>bin\XNAFramework\Debug\</OutputPath>
146146
<DefineConstants>TRACE;DEBUG;ARES YR</DefineConstants>
147147
<DebugType>full</DebugType>
148-
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
148+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
149149
<PlatformTarget>x86</PlatformTarget>
150150
<LangVersion>7.3</LangVersion>
151151
<ErrorReport>prompt</ErrorReport>
@@ -176,7 +176,7 @@
176176
<OutputPath>bin\XNAFramework\Debug\</OutputPath>
177177
<DefineConstants>TRACE;DEBUG;YR</DefineConstants>
178178
<DebugType>full</DebugType>
179-
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
179+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
180180
<PlatformTarget>x86</PlatformTarget>
181181
<LangVersion>7.3</LangVersion>
182182
<ErrorReport>prompt</ErrorReport>
@@ -248,6 +248,7 @@
248248
</ItemGroup>
249249
<ItemGroup>
250250
<Compile Include="CCIniFile.cs" />
251+
<Compile Include="ClientException.cs" />
251252
<Compile Include="CnCNet5\CnCNetGame.cs" />
252253
<Compile Include="CnCNet5\GameCollection.cs" />
253254
<Compile Include="ClientConfiguration.cs" />
@@ -323,4 +324,4 @@
323324
<Target Name="AfterBuild">
324325
</Target>
325326
-->
326-
</Project>
327+
</Project>

ClientCore/ClientException.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
using System;
2+
3+
namespace ClientCore
4+
{
5+
public class ClientException : Exception
6+
{
7+
public ClientException(string message) : base(message)
8+
{
9+
}
10+
}
11+
}

ClientGUI/ClientGUI.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
<DefineConstants>TRACE;DEBUG;XNA</DefineConstants>
6060
<ErrorReport>prompt</ErrorReport>
6161
<WarningLevel>4</WarningLevel>
62-
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
62+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
6363
</PropertyGroup>
6464
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|XNAFramework' ">
6565
<PlatformTarget>x86</PlatformTarget>
@@ -69,7 +69,7 @@
6969
<DefineConstants>TRACE;XNA</DefineConstants>
7070
<ErrorReport>prompt</ErrorReport>
7171
<WarningLevel>4</WarningLevel>
72-
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
72+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
7373
</PropertyGroup>
7474
<Choose>
7575
<When Condition="'$(Platform)' != 'XNAFramework'">
@@ -187,4 +187,4 @@
187187
<Target Name="AfterBuild">
188188
</Target>
189189
-->
190-
</Project>
190+
</Project>

ClientGUI/Parser.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
using Rampastring.XNAUI.XNAControls;
2525
using System;
2626
using System.Collections.Generic;
27+
using System.Text.RegularExpressions;
2728

2829
namespace ClientGUI
2930
{
@@ -69,6 +70,9 @@ private XNAControl GetControl(string controlName)
6970
if (controlName == primaryControl.Name)
7071
return primaryControl;
7172

73+
if (controlName == primaryControl.Parent.Name)
74+
return primaryControl.Parent;
75+
7276
var control = Find(primaryControl.Children, controlName);
7377
if (control == null)
7478
throw new KeyNotFoundException($"Control '{controlName}' not found while parsing input '{Input}'");
@@ -104,7 +108,7 @@ public void SetPrimaryControl(XNAControl primaryControl)
104108
public int GetExprValue(string input, XNAControl parsingControl)
105109
{
106110
this.parsingControl = parsingControl;
107-
Input = input;
111+
Input = Regex.Replace(input, @"\s", "");
108112
tokenPlace = 0;
109113
return GetExprValue();
110114
}
@@ -115,8 +119,6 @@ private int GetExprValue()
115119

116120
while (true)
117121
{
118-
SkipWhitespace();
119-
120122
if (IsEndOfInput())
121123
return value;
122124

ClientGUI/XNAMessageBox.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,10 @@ private static void MsgBox_OKClicked(XNAMessageBox messageBox)
262262
/// <param name="caption">The caption of the message box.</param>
263263
/// <param name="description">The description in the message box.</param>
264264
/// <returns>The XNAMessageBox instance that is created.</returns>
265-
public static XNAMessageBox ShowYesNoDialog(WindowManager windowManager, string caption, string description)
265+
public static XNAMessageBox ShowYesNoDialog(WindowManager windowManager, string caption, string description)
266+
=> ShowYesNoDialog(windowManager, caption, description, null);
267+
268+
public static XNAMessageBox ShowYesNoDialog(WindowManager windowManager, string caption, string description, Action<XNAMessageBox> yesAction)
266269
{
267270
var panel = new DarkeningPanel(windowManager);
268271
windowManager.AddAndInitializeControl(panel);
@@ -274,6 +277,8 @@ public static XNAMessageBox ShowYesNoDialog(WindowManager windowManager, string
274277

275278
panel.AddChild(msgBox);
276279
msgBox.YesClickedAction = MsgBox_YesClicked;
280+
if (yesAction != null)
281+
msgBox.YesClickedAction += yesAction;
277282
msgBox.NoClickedAction = MsgBox_NoClicked;
278283

279284
return msgBox;

DTAConfig/DTAConfig.csproj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
<DefineConstants>TRACE;DEBUG;XNA TS</DefineConstants>
5858
<ErrorReport>prompt</ErrorReport>
5959
<WarningLevel>4</WarningLevel>
60-
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
60+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
6161
<PlatformTarget>x86</PlatformTarget>
6262
</PropertyGroup>
6363
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|XNAFramework' ">
@@ -67,7 +67,7 @@
6767
<DefineConstants>TRACE;XNA</DefineConstants>
6868
<ErrorReport>prompt</ErrorReport>
6969
<WarningLevel>4</WarningLevel>
70-
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
70+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
7171
<PlatformTarget>x86</PlatformTarget>
7272
</PropertyGroup>
7373
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'TSRelease|SharpDX' ">
@@ -87,7 +87,7 @@
8787
<DefineConstants>TRACE;XNA TS</DefineConstants>
8888
<ErrorReport>prompt</ErrorReport>
8989
<WarningLevel>4</WarningLevel>
90-
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
90+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
9191
</PropertyGroup>
9292
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'TSRelease|WindowsGL' ">
9393
<PlatformTarget>AnyCPU</PlatformTarget>
@@ -115,7 +115,7 @@
115115
<DefineConstants>TRACE;XNA ARES YR</DefineConstants>
116116
<ErrorReport>prompt</ErrorReport>
117117
<WarningLevel>4</WarningLevel>
118-
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
118+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
119119
</PropertyGroup>
120120
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'AresRelease|WindowsGL' ">
121121
<PlatformTarget>AnyCPU</PlatformTarget>
@@ -143,7 +143,7 @@
143143
<DefineConstants>TRACE;XNA YR</DefineConstants>
144144
<ErrorReport>prompt</ErrorReport>
145145
<WarningLevel>4</WarningLevel>
146-
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
146+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
147147
</PropertyGroup>
148148
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'YRRelease|WindowsGL' ">
149149
<PlatformTarget>AnyCPU</PlatformTarget>
@@ -345,4 +345,4 @@
345345
<Target Name="AfterBuild">
346346
</Target>
347347
-->
348-
</Project>
348+
</Project>

DXMainClient/DXGUI/Generic/LoadingScreen.cs

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@
77
using DTAClient.DXGUI.Multiplayer;
88
using DTAClient.DXGUI.Multiplayer.CnCNet;
99
using DTAClient.DXGUI.Multiplayer.GameLobby;
10+
using DTAClient.DXGUI.Multiplayer.QuickMatch;
1011
using DTAClient.Online;
1112
using DTAConfig;
1213
using Microsoft.Xna.Framework;
1314
using Rampastring.XNAUI;
1415
using System.Threading.Tasks;
16+
using Rampastring.XNAUI.XNAControls;
1517
using Updater;
1618
using SkirmishLobby = DTAClient.DXGUI.Multiplayer.GameLobby.SkirmishLobby;
1719

@@ -71,7 +73,7 @@ private void InitUpdater()
7173

7274
private void LoadMaps()
7375
{
74-
mapLoader = new MapLoader();
76+
mapLoader = MapLoader.GetInstance();
7577
mapLoader.LoadMaps();
7678
}
7779

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

87-
ClientGUICreator.Instance.AddControl(typeof(GameLobbyCheckBox));
88-
ClientGUICreator.Instance.AddControl(typeof(GameLobbyDropDown));
89-
ClientGUICreator.Instance.AddControl(typeof(MapPreviewBox));
90-
ClientGUICreator.Instance.AddControl(typeof(GameLaunchButton));
91-
ClientGUICreator.Instance.AddControl(typeof(ChatListBox));
92-
ClientGUICreator.Instance.AddControl(typeof(XNAChatTextBox));
93-
ClientGUICreator.Instance.AddControl(typeof(PlayerExtraOptionsPanel));
89+
DeclareCustomControls();
9490

9591
var gameCollection = new GameCollection();
9692
gameCollection.Initialize(GraphicsDevice);
@@ -120,15 +116,18 @@ private void Finish()
120116
var gipw = new GameInProgressWindow(WindowManager);
121117

122118
var skirmishLobby = new SkirmishLobby(WindowManager, topBar, mapLoader, discordHandler);
119+
var quickMatchWindow = new QuickMatchWindow(WindowManager, topBar);
123120

124121
topBar.SetSecondarySwitch(cncnetLobby);
125122

126-
var mainMenu = new MainMenu(WindowManager, skirmishLobby, lanLobby,
123+
var mainMenu = new MainMenu(WindowManager, skirmishLobby, quickMatchWindow, lanLobby,
127124
topBar, optionsWindow, cncnetLobby, cncnetManager, discordHandler);
128125
WindowManager.AddAndInitializeControl(mainMenu);
129126

130127
DarkeningPanel.AddAndInitializeWithControl(WindowManager, skirmishLobby);
131128

129+
DarkeningPanel.AddAndInitializeWithControl(WindowManager, quickMatchWindow);
130+
132131
DarkeningPanel.AddAndInitializeWithControl(WindowManager, cncnetGameLoadingLobby);
133132

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

145144
topBar.SetTertiarySwitch(pmWindow);
146145
topBar.SetOptionsWindow(optionsWindow);
146+
topBar.SetQuickMatchWindow(quickMatchWindow);
147147

148148
WindowManager.AddAndInitializeControl(gipw);
149149
skirmishLobby.Disable();
150+
quickMatchWindow.Disable();
150151
cncnetLobby.Disable();
151152
cncnetGameLobby.Disable();
152153
cncnetGameLoadingLobby.Disable();
@@ -175,6 +176,22 @@ private void Finish()
175176
Cursor.Visible = visibleSpriteCursor;
176177
}
177178

179+
private static void DeclareCustomControls()
180+
{
181+
ClientGUICreator.Instance.AddControl(typeof(GameLobbyCheckBox));
182+
ClientGUICreator.Instance.AddControl(typeof(GameLobbyDropDown));
183+
ClientGUICreator.Instance.AddControl(typeof(MapPreviewBox));
184+
ClientGUICreator.Instance.AddControl(typeof(GameLaunchButton));
185+
ClientGUICreator.Instance.AddControl(typeof(ChatListBox));
186+
ClientGUICreator.Instance.AddControl(typeof(XNAChatTextBox));
187+
ClientGUICreator.Instance.AddControl(typeof(XNAPasswordBox));
188+
ClientGUICreator.Instance.AddControl(typeof(PlayerExtraOptionsPanel));
189+
ClientGUICreator.Instance.AddControl(typeof(QuickMatchLoginPanel));
190+
ClientGUICreator.Instance.AddControl(typeof(QuickMatchLobbyPanel));
191+
ClientGUICreator.Instance.AddControl(typeof(QuickMatchMapList));
192+
ClientGUICreator.Instance.AddControl(typeof(QuickMatchStatusMessageWindow));
193+
}
194+
178195
public override void Update(GameTime gameTime)
179196
{
180197
base.Update(gameTime);

DXMainClient/DXGUI/Generic/MainMenu.cs

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using DTAClient.DXGUI.Multiplayer;
66
using DTAClient.DXGUI.Multiplayer.CnCNet;
77
using DTAClient.DXGUI.Multiplayer.GameLobby;
8+
using DTAClient.DXGUI.Multiplayer.QuickMatch;
89
using DTAClient.Online;
910
using DTAConfig;
1011
using Localization;
@@ -36,12 +37,20 @@ class MainMenu : XNAWindow, ISwitchable
3637
/// <summary>
3738
/// Creates a new instance of the main menu.
3839
/// </summary>
39-
public MainMenu(WindowManager windowManager, SkirmishLobby skirmishLobby,
40-
LANLobby lanLobby, TopBar topBar, OptionsWindow optionsWindow,
40+
public MainMenu(
41+
WindowManager windowManager,
42+
SkirmishLobby skirmishLobby,
43+
QuickMatchWindow quickMatchWindow,
44+
LANLobby lanLobby,
45+
TopBar topBar,
46+
OptionsWindow optionsWindow,
4147
CnCNetLobby cncnetLobby,
42-
CnCNetManager connectionManager, DiscordHandler discordHandler) : base(windowManager)
48+
CnCNetManager connectionManager,
49+
DiscordHandler discordHandler
50+
) : base(windowManager)
4351
{
4452
this.skirmishLobby = skirmishLobby;
53+
this.quickMatchWindow = quickMatchWindow;
4554
this.lanLobby = lanLobby;
4655
this.topBar = topBar;
4756
this.connectionManager = connectionManager;
@@ -62,6 +71,8 @@ public MainMenu(WindowManager windowManager, SkirmishLobby skirmishLobby,
6271

6372
private SkirmishLobby skirmishLobby;
6473

74+
private QuickMatchWindow quickMatchWindow;
75+
6576
private LANLobby lanLobby;
6677

6778
private CnCNetManager connectionManager;
@@ -106,6 +117,7 @@ private bool UpdateInProgress
106117
private XNAClientButton btnLoadGame;
107118
private XNAClientButton btnSkirmish;
108119
private XNAClientButton btnCnCNet;
120+
private XNAClientButton btnQuickmatch;
109121
private XNAClientButton btnLan;
110122
private XNAClientButton btnOptions;
111123
private XNAClientButton btnMapEditor;
@@ -154,6 +166,11 @@ public override void Initialize()
154166
btnCnCNet.HoverSoundEffect = new EnhancedSoundEffect("MainMenu/button.wav");
155167
btnCnCNet.LeftClick += BtnCnCNet_LeftClick;
156168

169+
btnQuickmatch = new XNAClientButton(WindowManager);
170+
btnQuickmatch.Name = nameof(btnQuickmatch);
171+
btnQuickmatch.LeftClick += BtnQuickmatch_LeftClick;
172+
btnQuickmatch.Disable();
173+
157174
btnLan = new XNAClientButton(WindowManager);
158175
btnLan.Name = nameof(btnLan);
159176
btnLan.IdleTexture = AssetLoader.LoadTexture("MainMenu/lan.png");
@@ -225,6 +242,7 @@ public override void Initialize()
225242
AddChild(btnLoadGame);
226243
AddChild(btnSkirmish);
227244
AddChild(btnCnCNet);
245+
AddChild(btnQuickmatch);
228246
AddChild(btnLan);
229247
AddChild(btnOptions);
230248
AddChild(btnMapEditor);
@@ -753,6 +771,8 @@ private void BtnLan_LeftClick(object sender, EventArgs e)
753771

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

774+
private void BtnQuickmatch_LeftClick(object sender, EventArgs e) => quickMatchWindow.Enable();
775+
756776
private void BtnSkirmish_LeftClick(object sender, EventArgs e)
757777
{
758778
skirmishLobby.Open();

0 commit comments

Comments
 (0)