Skip to content

Commit c8cc03b

Browse files
committed
Update for new DI
1 parent 477386d commit c8cc03b

File tree

12 files changed

+68
-66
lines changed

12 files changed

+68
-66
lines changed

DXMainClient/DXGUI/GameClass.cs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,12 @@
1212
using ClientGUI;
1313
using DTAClient.Domain.Multiplayer;
1414
using DTAClient.Domain.Multiplayer.CnCNet;
15+
using DTAClient.Domain.Multiplayer.CnCNet.QuickMatch.Services;
16+
using DTAClient.Domain.Multiplayer.CnCNet.Services;
1517
using DTAClient.DXGUI.Multiplayer;
1618
using DTAClient.DXGUI.Multiplayer.CnCNet;
1719
using DTAClient.DXGUI.Multiplayer.GameLobby;
20+
using DTAClient.DXGUI.Multiplayer.QuickMatch;
1821
using DTAClient.Online;
1922
using DTAConfig;
2023
using DTAConfig.Settings;
@@ -197,7 +200,11 @@ private IServiceProvider BuildServiceProvider(WindowManager windowManager)
197200
.AddSingleton<TunnelHandler>()
198201
.AddSingleton<DiscordHandler>()
199202
.AddSingleton<PrivateMessageHandler>()
200-
.AddSingleton<MapLoader>();
203+
.AddSingleton<MapLoader>()
204+
.AddSingleton<ApiService>()
205+
.AddSingleton<QmService>()
206+
.AddSingleton<QmSettingsService>()
207+
.AddSingleton<QmUserSettingsService>();
201208

202209
// singleton xna controls - same instance on each request
203210
services
@@ -216,7 +223,13 @@ private IServiceProvider BuildServiceProvider(WindowManager windowManager)
216223
.AddSingletonXnaControl<MapPreviewBox>()
217224
.AddSingletonXnaControl<GameLaunchButton>()
218225
.AddSingletonXnaControl<ChatListBox>()
219-
.AddSingletonXnaControl<PlayerExtraOptionsPanel>();
226+
.AddSingletonXnaControl<PlayerExtraOptionsPanel>()
227+
.AddSingletonXnaControl<QuickMatchWindow>()
228+
.AddSingletonXnaControl<QuickMatchLobbyPanel>()
229+
.AddSingletonXnaControl<QuickMatchLoginPanel>()
230+
.AddSingletonXnaControl<QuickMatchMapList>()
231+
.AddSingletonXnaControl<QuickMatchStatusOverlay>()
232+
.AddSingletonXnaControl<QuickMatchLobbyFooterPanel>();
220233

221234
// transient xna controls - new instance on each request
222235
services
@@ -235,8 +248,12 @@ private IServiceProvider BuildServiceProvider(WindowManager windowManager)
235248
.AddTransientXnaControl<XNAMultiColumnListBox>()
236249
.AddTransientXnaControl<XNAPanel>()
237250
.AddTransientXnaControl<XNAProgressBar>()
251+
.AddTransientXnaControl<XNAClientProgressBar>()
238252
.AddTransientXnaControl<XNASuggestionTextBox>()
239253
.AddTransientXnaControl<XNATextBox>()
254+
.AddTransientXnaControl<XNAPasswordBox>()
255+
.AddTransientXnaControl<XNAScrollBar>()
256+
.AddTransientXnaControl<XNAScrollablePanel>()
240257
.AddTransientXnaControl<XNATrackbar>()
241258
.AddTransientXnaControl<XNAChatTextBox>()
242259
.AddTransientXnaControl<GameLobbyCheckBox>()

DXMainClient/DXGUI/Generic/MainMenu.cs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
using System.Linq;
2222
using System.Threading;
2323
using ClientUpdater;
24+
using DTAClient.DXGUI.Multiplayer.QuickMatch;
2425

2526
namespace DTAClient.DXGUI.Generic
2627
{
@@ -49,7 +50,8 @@ public MainMenu(
4950
CnCNetGameLobby cnCNetGameLobby,
5051
PrivateMessagingPanel privateMessagingPanel,
5152
PrivateMessagingWindow privateMessagingWindow,
52-
GameInProgressWindow gameInProgressWindow
53+
GameInProgressWindow gameInProgressWindow,
54+
QuickMatchWindow quickMatchWindow
5355
) : base(windowManager)
5456
{
5557
this.lanLobby = lanLobby;
@@ -64,6 +66,7 @@ GameInProgressWindow gameInProgressWindow
6466
this.privateMessagingPanel = privateMessagingPanel;
6567
this.privateMessagingWindow = privateMessagingWindow;
6668
this.gameInProgressWindow = gameInProgressWindow;
69+
this.quickMatchWindow = quickMatchWindow;
6770
this.cncnetLobby.UpdateCheck += CncnetLobby_UpdateCheck;
6871
isMediaPlayerAvailable = IsMediaPlayerAvailable();
6972
}
@@ -92,6 +95,7 @@ GameInProgressWindow gameInProgressWindow
9295
private readonly PrivateMessagingPanel privateMessagingPanel;
9396
private readonly PrivateMessagingWindow privateMessagingWindow;
9497
private readonly GameInProgressWindow gameInProgressWindow;
98+
private readonly QuickMatchWindow quickMatchWindow;
9599

96100
private XNAMessageBox firstRunMessageBox;
97101

@@ -133,6 +137,7 @@ private bool UpdateInProgress
133137
private XNAClientButton btnStatistics;
134138
private XNAClientButton btnCredits;
135139
private XNAClientButton btnExtras;
140+
private XNAClientButton btnQuickmatch;
136141

137142
/// <summary>
138143
/// Initializes the main menu's controls.
@@ -176,6 +181,11 @@ public override void Initialize()
176181
btnCnCNet.HoverSoundEffect = new EnhancedSoundEffect("MainMenu/button.wav");
177182
btnCnCNet.LeftClick += BtnCnCNet_LeftClick;
178183

184+
btnQuickmatch = new XNAClientButton(WindowManager);
185+
btnQuickmatch.Name = nameof(btnQuickmatch);
186+
btnQuickmatch.LeftClick += BtnQuickmatch_LeftClick;
187+
btnQuickmatch.Disable();
188+
179189
btnLan = new XNAClientButton(WindowManager);
180190
btnLan.Name = nameof(btnLan);
181191
btnLan.IdleTexture = AssetLoader.LoadTexture("MainMenu/lan.png");
@@ -247,6 +257,7 @@ public override void Initialize()
247257
AddChild(btnLoadGame);
248258
AddChild(btnSkirmish);
249259
AddChild(btnCnCNet);
260+
AddChild(btnQuickmatch);
250261
AddChild(btnLan);
251262
AddChild(btnOptions);
252263
AddChild(btnMapEditor);
@@ -553,12 +564,14 @@ public void PostInit()
553564
DarkeningPanel.AddAndInitializeWithControl(WindowManager, cnCNetGameLobby);
554565
DarkeningPanel.AddAndInitializeWithControl(WindowManager, cncnetLobby);
555566
DarkeningPanel.AddAndInitializeWithControl(WindowManager, lanLobby);
567+
DarkeningPanel.AddAndInitializeWithControl(WindowManager, quickMatchWindow);
556568
optionsWindow.SetTopBar(topBar);
557569
DarkeningPanel.AddAndInitializeWithControl(WindowManager, optionsWindow);
558570
WindowManager.AddAndInitializeControl(privateMessagingPanel);
559571
privateMessagingPanel.AddChild(privateMessagingWindow);
560572
topBar.SetTertiarySwitch(privateMessagingWindow);
561573
topBar.SetOptionsWindow(optionsWindow);
574+
topBar.SetQuickMatchWindow(quickMatchWindow);
562575
WindowManager.AddAndInitializeControl(gameInProgressWindow);
563576

564577
skirmishLobby.Disable();
@@ -568,6 +581,7 @@ public void PostInit()
568581
lanLobby.Disable();
569582
privateMessagingWindow.Disable();
570583
optionsWindow.Disable();
584+
quickMatchWindow.Disable();
571585

572586
WindowManager.AddAndInitializeControl(topBar);
573587
topBar.AddPrimarySwitchable(this);
@@ -849,6 +863,8 @@ private void BtnLan_LeftClick(object sender, EventArgs e)
849863

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

866+
private void BtnQuickmatch_LeftClick(object sender, EventArgs e) => quickMatchWindow.Enable();
867+
852868
private void BtnSkirmish_LeftClick(object sender, EventArgs e)
853869
{
854870
skirmishLobby.Open();

DXMainClient/DXGUI/Multiplayer/QuickMatch/QuickMatchLobbyPanel.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,14 @@ public class QuickMatchLobbyPanel : INItializableWindow
3737
private readonly EnhancedSoundEffect matchFoundSoundEffect;
3838
private readonly QmSettings qmSettings;
3939

40-
public QuickMatchLobbyPanel(WindowManager windowManager) : base(windowManager)
40+
public QuickMatchLobbyPanel(WindowManager windowManager, MapLoader mapLoader, QmService qmService, QmSettingsService qmSettingsService) : base(windowManager)
4141
{
42-
qmService = QmService.GetInstance();
43-
qmService.QmEvent += HandleQmEvent;
42+
this.qmService = qmService;
43+
this.qmService.QmEvent += HandleQmEvent;
4444

45-
mapLoader = MapLoader.GetInstance();
45+
this.mapLoader = mapLoader;
4646

47-
qmSettings = QmSettingsService.GetInstance().GetSettings();
47+
qmSettings = qmSettingsService.GetSettings();
4848
matchFoundSoundEffect = new EnhancedSoundEffect(qmSettings.MatchFoundSoundFile);
4949

5050
IniNameOverride = nameof(QuickMatchLobbyPanel);

DXMainClient/DXGUI/Multiplayer/QuickMatch/QuickMatchLoginPanel.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ public class QuickMatchLoginPanel : INItializableWindow
2121

2222
public event EventHandler LoginEvent;
2323

24-
public QuickMatchLoginPanel(WindowManager windowManager) : base(windowManager)
24+
public QuickMatchLoginPanel(WindowManager windowManager, QmService qmService) : base(windowManager)
2525
{
26-
qmService = QmService.GetInstance();
27-
qmService.QmEvent += HandleQmEvent;
26+
this.qmService = qmService;
27+
this.qmService.QmEvent += HandleQmEvent;
2828
IniNameOverride = nameof(QuickMatchLoginPanel);
2929
}
3030

DXMainClient/DXGUI/Multiplayer/QuickMatch/QuickMatchMapList.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ public class QuickMatchMapList : INItializableWindow
4343

4444
public int MapsWidth => lblMaps?.Width ?? 0;
4545

46-
public QuickMatchMapList(WindowManager windowManager) : base(windowManager)
46+
public QuickMatchMapList(WindowManager windowManager, QmService qmService) : base(windowManager)
4747
{
48-
qmService = QmService.GetInstance();
48+
this.qmService = qmService;
4949
}
5050

5151
public override void Initialize()

DXMainClient/DXGUI/Multiplayer/QuickMatch/QuickMatchStatusOverlay.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@ public class QuickMatchStatusOverlay : INItializableWindow
4444
private readonly QmService qmService;
4545
private readonly QmSettings qmSettings;
4646

47-
public QuickMatchStatusOverlay(WindowManager windowManager) : base(windowManager)
47+
public QuickMatchStatusOverlay(WindowManager windowManager, QmService qmService, QmSettingsService qmSettingsService) : base(windowManager)
4848
{
49-
qmService = QmService.GetInstance();
50-
qmService.QmEvent += HandleQmEvent;
51-
qmSettings = QmSettingsService.GetInstance().GetSettings();
49+
this.qmService = qmService;
50+
this.qmService.QmEvent += HandleQmEvent;
51+
qmSettings = qmSettingsService.GetSettings();
5252

5353
matchupFoundConfirmTimer = new QmMatchFoundTimer();
5454
matchupFoundConfirmTimer.SetElapsedAction(ReduceMatchupFoundConfirmTimeLeft);

DXMainClient/DXGUI/Multiplayer/QuickMatch/QuickMatchWindow.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ public class QuickMatchWindow : INItializableWindow
2020

2121
private XNAPanel headerGameLogo;
2222

23-
public QuickMatchWindow(WindowManager windowManager) : base(windowManager)
23+
public QuickMatchWindow(WindowManager windowManager, QmService qmService, QmSettingsService qmSettingsService) : base(windowManager)
2424
{
25-
qmService = QmService.GetInstance();
26-
qmService.QmEvent += HandleQmEvent;
27-
qmSettingsService = QmSettingsService.GetInstance();
25+
this.qmService = qmService;
26+
this.qmService.QmEvent += HandleQmEvent;
27+
this.qmSettingsService = qmSettingsService;
2828
}
2929

3030
public override void Initialize()

DXMainClient/Domain/Multiplayer/CnCNet/QuickMatch/Services/QmService.cs

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,27 +27,26 @@ public class QmService : IDisposable
2727
{
2828
public const string QmVersion = "2.0";
2929

30-
private readonly QmUserSettingsService userSettingsService;
30+
private readonly QmUserSettingsService qmUserSettingsService;
3131
private readonly ApiService apiService;
32-
private readonly QmSettingsService settingsService;
32+
private readonly QmSettingsService qmSettingsService;
3333

3434
private readonly QmUserSettings qmUserSettings;
3535
private readonly QmSettings qmSettings;
3636
private readonly QmData qmData;
3737

38-
private static QmService _instance;
3938
private readonly Timer retryRequestmatchTimer;
4039
private QmUserAccount userAccount;
4140
private IEnumerable<int> mapSides;
4241

43-
private QmService()
42+
public QmService(QmSettingsService qmSettingsService, QmUserSettingsService qmUserSettingsService, ApiService apiService)
4443
{
45-
userSettingsService = QmUserSettingsService.GetInstance();
46-
apiService = ApiService.GetInstance();
47-
settingsService = QmSettingsService.GetInstance();
44+
this.qmUserSettingsService = qmUserSettingsService;
45+
this.apiService = apiService;
46+
this.qmSettingsService = qmSettingsService;
4847

49-
qmUserSettings = userSettingsService.GetSettings();
50-
qmSettings = settingsService.GetSettings();
48+
qmUserSettings = this.qmUserSettingsService.GetSettings();
49+
qmSettings = this.qmSettingsService.GetSettings();
5150
qmData = new QmData();
5251

5352
retryRequestmatchTimer = new Timer();
@@ -57,8 +56,6 @@ private QmService()
5756

5857
public event EventHandler<QmEvent> QmEvent;
5958

60-
public static QmService GetInstance() => _instance ??= new QmService();
61-
6259
public IEnumerable<QmUserAccount> GetUserAccounts() => qmData?.UserAccounts;
6360

6461
public QmLadder GetLadderForId(int ladderId) => qmData.Ladders.FirstOrDefault(l => l.Id == ladderId);
@@ -128,14 +125,14 @@ public void SetUserAccount(QmUserAccount userAccount)
128125
string laddAbbr = userAccount?.Ladder?.Abbreviation;
129126
this.userAccount = userAccount;
130127
qmUserSettings.Ladder = laddAbbr;
131-
userSettingsService.SaveSettings();
128+
qmUserSettingsService.SaveSettings();
132129
QmEvent?.Invoke(this, new QmUserAccountSelectedEvent(userAccount));
133130
}
134131

135132
public void SetMasterSide(QmSide side)
136133
{
137134
qmUserSettings.SideId = side?.LocalId ?? -1;
138-
userSettingsService.SaveSettings();
135+
qmUserSettingsService.SaveSettings();
139136
QmEvent?.Invoke(this, new QmMasterSideSelected(side));
140137
}
141138

@@ -374,8 +371,8 @@ private static void DecodeToken(string token)
374371

375372
private void ClearAuthData()
376373
{
377-
userSettingsService.ClearAuthData();
378-
userSettingsService.SaveSettings();
374+
qmUserSettingsService.ClearAuthData();
375+
qmUserSettingsService.SaveSettings();
379376
apiService.SetToken(null);
380377
}
381378

@@ -421,7 +418,7 @@ private bool FinishLogin(QmResponse<QmAuthData> response, string email = null)
421418

422419
qmUserSettings.AuthData = response.Data;
423420
qmUserSettings.Email = email ?? qmUserSettings.Email;
424-
userSettingsService.SaveSettings();
421+
qmUserSettingsService.SaveSettings();
425422

426423
apiService.SetToken(response.Data.Token);
427424
return true;

DXMainClient/Domain/Multiplayer/CnCNet/QuickMatch/Services/QmSettingsService.cs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ namespace DTAClient.Domain.Multiplayer.CnCNet.QuickMatch.Services;
1111
public class QmSettingsService
1212
{
1313
private static readonly string SettingsFile = ClientConfiguration.Instance.QuickMatchIniPath;
14-
private static QmSettingsService _instance;
1514

1615
private const string BasicSectionKey = "Basic";
1716
private const string SoundsSectionKey = "Sounds";
@@ -22,12 +21,6 @@ public class QmSettingsService
2221

2322
private QmSettings qmSettings;
2423

25-
private QmSettingsService()
26-
{
27-
}
28-
29-
public static QmSettingsService GetInstance() => _instance ??= new QmSettingsService();
30-
3124
public QmSettings GetSettings() => qmSettings ??= LoadSettings();
3225

3326
private static QmSettings LoadSettings()

DXMainClient/Domain/Multiplayer/CnCNet/QuickMatch/Services/QmUserSettingsService.cs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,6 @@ public class QmUserSettingsService
66
{
77
private QmUserSettings qmUserSettings;
88

9-
private static QmUserSettingsService instance;
10-
11-
private QmUserSettingsService()
12-
{
13-
}
14-
15-
public static QmUserSettingsService GetInstance() => instance ??= new QmUserSettingsService();
16-
179
public QmUserSettings GetSettings() => qmUserSettings ??= QmUserSettings.Load();
1810

1911
public void SaveSettings() => qmUserSettings.Save();

0 commit comments

Comments
 (0)