Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
410080f
Add custom matchmaking support
iDRXGamer Mar 20, 2026
b40052b
fix R14 to R13 to show rooms and fix tunnelhandler
iDRXGamer Mar 20, 2026
c9bffc6
Dynamic Matchmaking system overhaul via INI configuration
iDRXGamer Mar 28, 2026
aaa4a0e
Merge branch 'CnCNet:develop' into IDRXGamer
iDRXGamer Mar 28, 2026
8af12eb
Un commit b40052ba103c760445cd20f2b2c54fef3a6ed9a9
iDRXGamer Mar 28, 2026
94192d0
Stabilize matchmaking map selection and enforce code styles
iDRXGamer Mar 29, 2026
4a56623
UI: Restore color selection and implement dynamic top-bar layout
iDRXGamer Mar 29, 2026
5611585
Hardcode matchmaking settings and remove external INIs
iDRXGamer Mar 29, 2026
b415d21
Merge branch 'CnCNet:develop' into IDRXGamer
iDRXGamer Apr 5, 2026
11fd949
Merge branch 'develop' of https://github.com/iDRXGamer/xna-cncnet-cli…
iDRXGamer Apr 5, 2026
3806cd3
Remove custom logger and enforce SHA1 map matching
iDRXGamer Apr 13, 2026
6654dd1
use standard logging and dynamic INI for map hashes
iDRXGamer Apr 13, 2026
4f0970d
Merge branch 'CnCNet:develop' into IDRXGamer
iDRXGamer Apr 13, 2026
f86e9b4
Merge branch 'CnCNet:develop' into develop
iDRXGamer Apr 13, 2026
2bdf3d6
Merge branch 'IDRXGamer' into develop
iDRXGamer Apr 13, 2026
f808866
Merge branch 'develop' of https://github.com/iDRXGamer/xna-cncnet-cli…
iDRXGamer Apr 13, 2026
df4ea02
Implement MatchFoundWindow and refine matchmaking sync UI
iDRXGamer Apr 15, 2026
f8fc6e2
Add debugMode and enbale auto allying and clear game options when cre…
iDRXGamer Apr 17, 2026
5cef504
Make DeugMode false
iDRXGamer Apr 17, 2026
30e3372
Merge branch 'IDRXGamer' into develop
iDRXGamer Apr 17, 2026
efd3ea1
Select game mode from INI
iDRXGamer Apr 17, 2026
9b079b4
implement MatchmakingService for handling random host
iDRXGamer Apr 18, 2026
b4e7c95
Merge branch 'IDRXGamer' into develop
iDRXGamer Apr 18, 2026
aae5727
Merge branch 'CnCNet:develop' into develop
iDRXGamer Apr 18, 2026
2e11bd3
Fix spelling of "Metallic"
11EJDE11 Apr 18, 2026
456189f
Fix spelling of "Metallic"
11EJDE11 Apr 18, 2026
882e2f8
Merge branch 'CnCNet:develop' into develop
iDRXGamer Apr 18, 2026
f804324
Merge branch 'develop' into develop
iDRXGamer Apr 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions DXMainClient/DXGUI/GameClass.cs
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,7 @@ private IServiceProvider BuildServiceProvider(WindowManager windowManager)
.AddSingletonXnaControl<CnCNetGameLoadingLobby>()
.AddSingletonXnaControl<CnCNetLobby>()
.AddSingletonXnaControl<GameInProgressWindow>()
.AddSingletonXnaControl<MatchFoundWindow>()
.AddSingletonXnaControl<SkirmishLobby>()
.AddSingletonXnaControl<MainMenu>()
.AddSingletonXnaControl<MapPreviewBox>()
Expand Down
3 changes: 2 additions & 1 deletion DXMainClient/DXGUI/Generic/GameSessionDropDown.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System;
using System;

using ClientCore.Extensions;
using ClientCore.I18N;
Expand Down Expand Up @@ -88,6 +88,7 @@ static string Localize(XNAControl control, string attributeName, string defaultV
switch (key)
{
case "Items":
Items.Clear();
string[] items = value.SplitWithCleanup();
string[] itemLabels = iniFile.GetStringListValue(Name, "ItemLabels", "");
string[] iconNames = iniFile.GetStringListValue(Name, "Icons", "");
Expand Down
4 changes: 4 additions & 0 deletions DXMainClient/DXGUI/Generic/MainMenu.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ public MainMenu(
ManualUpdateQueryWindow manualUpdateQueryWindow,
UpdateWindow updateWindow,
ExtrasWindow extrasWindow,
MatchFoundWindow matchFoundWindow,
DirectDrawWrapperManager directDrawWrapperManager
) : base(windowManager)
{
Expand All @@ -84,6 +85,7 @@ DirectDrawWrapperManager directDrawWrapperManager
this.manualUpdateQueryWindow = manualUpdateQueryWindow;
this.updateWindow = updateWindow;
this.extrasWindow = extrasWindow;
this.matchFoundWindow = matchFoundWindow;
this.directDrawWrapperManager = directDrawWrapperManager;

this.cncnetLobby.UpdateCheck += CncnetLobby_UpdateCheck;
Expand Down Expand Up @@ -120,6 +122,7 @@ DirectDrawWrapperManager directDrawWrapperManager
private readonly ManualUpdateQueryWindow manualUpdateQueryWindow;
private readonly UpdateWindow updateWindow;
private readonly ExtrasWindow extrasWindow;
private readonly MatchFoundWindow matchFoundWindow;
private readonly DirectDrawWrapperManager directDrawWrapperManager;

private XNAMessageBox firstRunMessageBox;
Expand Down Expand Up @@ -630,6 +633,7 @@ public void PostInit()
topBar.SetTertiarySwitch(privateMessagingWindow);
topBar.SetOptionsWindow(optionsWindow);
WindowManager.AddAndInitializeControl(gameInProgressWindow);
WindowManager.AddAndInitializeControl(matchFoundWindow);

foreach (XNAControl control in new XNAControl[]
{
Expand Down
77 changes: 77 additions & 0 deletions DXMainClient/DXGUI/Generic/MatchFoundWindow.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
using Rampastring.XNAUI.XNAControls;
using System;
using ClientCore;
using Rampastring.XNAUI;
using ClientGUI;
using ClientCore.Extensions;
using Rectangle = Microsoft.Xna.Framework.Rectangle;
using Color = Microsoft.Xna.Framework.Color;

namespace DTAClient.DXGUI.Generic
{
/// <summary>
/// Displays a dialog in the client when a matchmaking match is found.
/// Blocks user interaction until the game process starts.
/// </summary>
public class MatchFoundWindow : XNAPanel
{
public MatchFoundWindow(WindowManager windowManager) : base(windowManager)
{
}

private bool initialized = false;

public override void Initialize()
{
if (initialized)
throw new InvalidOperationException("MatchFoundWindow cannot be initialized twice!");

initialized = true;

BackgroundTexture = AssetLoader.CreateTexture(new Color(0, 0, 0, 128), 1, 1);
PanelBackgroundDrawMode = PanelBackgroundImageDrawMode.STRETCHED;
DrawBorders = false;
ClientRectangle = new Rectangle(0, 0, WindowManager.RenderResolutionX, WindowManager.RenderResolutionY);

XNAWindow window = new XNAWindow(WindowManager);
window.Name = "MatchFoundWindowBox";
window.BackgroundTexture = AssetLoader.CreateTexture(new Color(0, 0, 0, 220), 2, 2);
window.PanelBackgroundDrawMode = PanelBackgroundImageDrawMode.STRETCHED;
window.ClientRectangle = new Rectangle(0, 0, 350, 120);

XNALabel explanation = new XNALabel(WindowManager);
explanation.FontIndex = 1;
explanation.Text = "Match found! Joining room...".L10N("Client:Main:MatchFoundLabel");

AddChild(window);
window.AddChild(explanation);

base.Initialize();

explanation.CenterOnParent();
window.CenterOnParent();

Visible = false;
Enabled = false;

GameProcessLogic.GameProcessStarted += SharedUILogic_GameProcessStarted;
}

private void SharedUILogic_GameProcessStarted()
{
Hide();
}

public void Show()
{
Visible = true;
Enabled = true;
}

public void Hide()
{
Visible = false;
Enabled = false;
}
}
}
Loading
Loading