diff --git a/OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj b/OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj
index 333af4cfeb..b236ce20d8 100644
--- a/OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj
+++ b/OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj
@@ -70,6 +70,7 @@
+
@@ -103,5 +104,6 @@ cd "$(SolutionDir)"
+
\ No newline at end of file
diff --git a/OpenRA.Mods.Cnc/Widgets/CncMenuLogic.cs b/OpenRA.Mods.Cnc/Widgets/CncMenuLogic.cs
new file mode 100755
index 0000000000..7bea4f5668
--- /dev/null
+++ b/OpenRA.Mods.Cnc/Widgets/CncMenuLogic.cs
@@ -0,0 +1,49 @@
+#region Copyright & License Information
+/*
+ * Copyright 2007-2011 The OpenRA Developers (see AUTHORS)
+ * This file is part of OpenRA, which is free software. It is made
+ * available to you under the terms of the GNU General Public License
+ * as published by the Free Software Foundation. For more information,
+ * see COPYING.
+ */
+#endregion
+
+using System.Collections.Generic;
+using OpenRA.FileFormats;
+using OpenRA.Network;
+using OpenRA.Server;
+using OpenRA.Widgets;
+using System;
+using System.Drawing;
+using System.Linq;
+
+namespace OpenRA.Mods.RA.Widgets.Delegates
+{
+ public class CncMenuLogic : IWidgetDelegate
+ {
+ enum MenuType
+ {
+ Main,
+ Multiplayer,
+ Settings
+ }
+ MenuType Menu = MenuType.Main;
+
+ [ObjectCreator.UseCtor]
+ public CncMenuLogic([ObjectCreator.Param] Widget widget)
+ {
+ // Root level menu
+ var mainButtons = widget.GetWidget("MAIN_BUTTONS");
+ mainButtons.IsVisible = () => Menu == MenuType.Main;
+
+ mainButtons.GetWidget("MULTIPLAYER_BUTTON").OnMouseUp = mi => { Menu = MenuType.Multiplayer; return true; };
+ mainButtons.GetWidget("QUIT_BUTTON").OnMouseUp = mi => { Game.Exit(); return true; };
+
+ // Multiplayer menu
+ var multiplayerButtons = widget.GetWidget("MULTIPLAYER_BUTTONS");
+ multiplayerButtons.IsVisible = () => Menu == MenuType.Multiplayer;
+
+ multiplayerButtons.GetWidget("BACK_BUTTON").OnMouseUp = mi => { Menu = MenuType.Main; return true; };
+ }
+ }
+}
diff --git a/mods/cnc/chrome/mainmenu.yaml b/mods/cnc/chrome/mainmenu.yaml
index 5658debed1..88af571fa4 100644
--- a/mods/cnc/chrome/mainmenu.yaml
+++ b/mods/cnc/chrome/mainmenu.yaml
@@ -4,6 +4,7 @@ Container@MAINMENU_BG:
Y:0
Width:WINDOW_RIGHT
Height:WINDOW_BOTTOM
+ Delegate:CncMenuLogic
Children:
Image@RETICLE:
X:(WINDOW_RIGHT-WIDTH)/2
@@ -18,20 +19,29 @@ Container@MAINMENU_BG:
Width:WINDOW_RIGHT
Height:WINDOW_BOTTOM
Background:shellmapborder
- Container@BUTTON_CONTAINER:
- Id:BUTTON_CONTAINER
+ Container@MAIN_BUTTONS:
+ Id:MAIN_BUTTONS
X:(WINDOW_RIGHT-WIDTH)/2
Y:WINDOW_BOTTOM-33-HEIGHT-10
Width:740
Height:35
Children:
+ Label@TITLE:
+ X:0
+ Y:0-30
+ Width:PARENT_RIGHT
+ Height:20
+ Text:Main Menu
+ Align:Center
+ Bold:True
+ Contrast:True
Button@SOLO_BUTTON:
Id:SOLO_BUTTON
X:0
Y:0
Width:140
Height:35
- Text:Solo Play
+ Text:Skirmish
Bold:True
Button@MULTIPLAYER_BUTTON:
Id:MULTIPLAYER_BUTTON
@@ -65,6 +75,55 @@ Container@MAINMENU_BG:
Height:35
Text:Quit
Bold:True
+ Container@MULTIPLAYER_BUTTONS:
+ Id:MULTIPLAYER_BUTTONS
+ X:(WINDOW_RIGHT-WIDTH)/2
+ Y:WINDOW_BOTTOM-33-HEIGHT-10
+ Width:740
+ Height:35
+ Visible:false
+ Children:
+ Label@TITLE:
+ X:0
+ Y:0-30
+ Width:PARENT_RIGHT
+ Height:20
+ Text:Multiplayer
+ Align:Center
+ Bold:True
+ Contrast:True
+ Button@CREATE_BUTTON:
+ Id:CREATE_BUTTON
+ X:0
+ Y:0
+ Width:140
+ Height:35
+ Text:Create Server
+ Bold:True
+ Button@JOIN_BUTTON:
+ Id:JOIN_BUTTON
+ X:150
+ Y:0
+ Width:140
+ Height:35
+ Text:Find Server
+ Bold:True
+ Button@DIRECTCONNECT_BUTTON:
+ Id:DIRECTCONNECT_BUTTON
+ X:300
+ Y:0
+ Width:140
+ Height:35
+ Text:Direct Connect
+ Bold:True
+ Button@BACK_BUTTON:
+ Id:BACK_BUTTON
+ X:600
+ Y:0
+ Width:140
+ Height:35
+ Text:Back
+ Bold:True
Background@QUICKMODSWITCHER:
Id:QUICKMODSWITCHER
Background: dialog4