diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
index 24746d4412..a95faa52bd 100644
--- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
+++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
@@ -586,7 +586,6 @@
-
diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoLogic.cs
index 48901b8595..08eae9e622 100644
--- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoLogic.cs
+++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoLogic.cs
@@ -10,6 +10,7 @@
using System;
using System.Linq;
+using OpenRA.Mods.Common.Scripting;
using OpenRA.Traits;
using OpenRA.Widgets;
@@ -28,8 +29,12 @@ namespace OpenRA.Mods.Common.Widgets.Logic
widget.IsVisible = () => activePanel != IngameInfoPanel.AutoSelect;
// Objectives/Stats tab
+ var scriptContext = world.WorldActor.TraitOrDefault();
+ var hasError = scriptContext != null && scriptContext.FatalErrorOccurred;
var iop = world.WorldActor.TraitsImplementing().FirstOrDefault();
- if (lp != null && iop != null && iop.PanelName != null)
+ var hasObjectives = hasError || (lp != null && iop != null && iop.PanelName != null);
+
+ if (hasObjectives)
{
numTabs++;
var objectivesTabButton = widget.Get(string.Concat("BUTTON", numTabs.ToString()));
@@ -38,10 +43,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic
objectivesTabButton.OnClick = () => activePanel = IngameInfoPanel.Objectives;
objectivesTabButton.IsHighlighted = () => activePanel == IngameInfoPanel.Objectives;
+ var panel = hasError ? "SCRIPT_ERROR_PANEL" : iop.PanelName;
var objectivesPanel = widget.Get("OBJECTIVES_PANEL");
objectivesPanel.IsVisible = () => activePanel == IngameInfoPanel.Objectives;
- Game.LoadWidget(world, iop.PanelName, objectivesPanel, new WidgetArgs());
+ Game.LoadWidget(world, panel, objectivesPanel, new WidgetArgs());
if (activePanel == IngameInfoPanel.AutoSelect)
activePanel = IngameInfoPanel.Objectives;
@@ -73,6 +79,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
var debugTabButton = widget.Get(string.Concat("BUTTON", numTabs.ToString()));
debugTabButton.Text = "Debug";
debugTabButton.IsVisible = () => lp != null && world.LobbyInfo.GlobalSettings.AllowCheats && numTabs > 1;
+ debugTabButton.IsDisabled = () => world.IsGameOver;
debugTabButton.OnClick = () => activePanel = IngameInfoPanel.Debug;
debugTabButton.IsHighlighted = () => activePanel == IngameInfoPanel.Debug;
diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameMenuLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameMenuLogic.cs
index e1bf0c83dd..678af1bf57 100644
--- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameMenuLogic.cs
+++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameMenuLogic.cs
@@ -24,7 +24,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
[ObjectCreator.UseCtor]
public IngameMenuLogic(Widget widget, World world, Action onExit, WorldRenderer worldRenderer, IngameInfoPanel activePanel)
{
- var resumeDisabled = false;
+ var leaving = false;
menu = widget.Get("INGAME_MENU");
var mpe = world.WorldActor.TraitOrDefault();
if (mpe != null)
@@ -41,7 +41,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
if (world.Type == WorldType.Regular)
Sound.PlayNotification(world.Map.Rules, null, "Speech", "Leave", world.LocalPlayer == null ? null : world.LocalPlayer.Faction.InternalName);
- resumeDisabled = true;
+ leaving = true;
var iop = world.WorldActor.TraitsImplementing().FirstOrDefault();
var exitDelay = iop != null ? iop.ExitDelay : 0;
@@ -71,8 +71,18 @@ namespace OpenRA.Mods.Common.Widgets.Logic
var abortMissionButton = menu.Get("ABORT_MISSION");
abortMissionButton.IsVisible = () => world.Type == WorldType.Regular;
+ abortMissionButton.IsDisabled = () => leaving;
+ if (world.IsGameOver)
+ abortMissionButton.GetText = () => "Leave";
+
abortMissionButton.OnClick = () =>
{
+ if (world.IsGameOver)
+ {
+ onQuit();
+ return;
+ }
+
hideMenu = true;
ConfirmationDialogs.PromptConfirmAction("Abort Mission", "Leave this game and return to the menu?", onQuit, showMenu);
};
@@ -116,7 +126,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
});
};
- menu.Get("MUSIC").OnClick = () =>
+ var musicButton = menu.Get("MUSIC");
+ musicButton.IsDisabled = () => leaving;
+ musicButton.OnClick = () =>
{
hideMenu = true;
Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs()
@@ -127,6 +139,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
};
var settingsButton = widget.Get("SETTINGS");
+ settingsButton.IsDisabled = () => leaving;
settingsButton.OnClick = () =>
{
hideMenu = true;
@@ -139,7 +152,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
};
var resumeButton = menu.Get("RESUME");
- resumeButton.IsDisabled = () => resumeDisabled;
+ resumeButton.IsDisabled = () => leaving;
+ if (world.IsGameOver)
+ resumeButton.GetText = () => "Return to map";
+
resumeButton.OnClick = closeMenu;
var panelRoot = widget.GetOrNull("PANEL_ROOT");
diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/LeaveMapLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/LeaveMapLogic.cs
deleted file mode 100644
index 0b82032240..0000000000
--- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/LeaveMapLogic.cs
+++ /dev/null
@@ -1,158 +0,0 @@
-#region Copyright & License Information
-/*
- * Copyright 2007-2015 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;
-using System.Drawing;
-using System.Linq;
-using OpenRA.Mods.Common.Scripting;
-using OpenRA.Mods.Common.Traits;
-using OpenRA.Network;
-using OpenRA.Traits;
-using OpenRA.Widgets;
-
-namespace OpenRA.Mods.Common.Widgets
-{
- class LeaveMapLogic
- {
- readonly OrderManager orderManager;
-
- enum Tab { Objectives, Chat }
- Tab currentTab;
-
- bool newChatMessage;
-
- [ObjectCreator.UseCtor]
- public LeaveMapLogic(Widget widget, World world, OrderManager orderManager)
- {
- this.orderManager = orderManager;
-
- var mpe = world.WorldActor.TraitOrDefault();
- if (mpe != null)
- mpe.Fade(mpe.Info.MenuEffect);
-
- widget.Get("VERSION_LABEL").Text = Game.ModData.Manifest.Mod.Version;
-
- var showStats = false;
-
- var scriptContext = world.WorldActor.TraitOrDefault();
- var iop = world.WorldActor.TraitsImplementing().FirstOrDefault();
- var isMultiplayer = !world.LobbyInfo.IsSinglePlayer && !world.IsReplay;
- var hasError = scriptContext != null && scriptContext.FatalErrorOccurred;
- var hasObjectives = hasError || (iop != null && iop.PanelName != null && world.LocalPlayer != null);
- var showTabs = hasObjectives && isMultiplayer;
- currentTab = hasObjectives ? Tab.Objectives : Tab.Chat;
-
- var panelName = hasObjectives || isMultiplayer ? "LEAVE_MAP_FULL" : "LEAVE_MAP_SIMPLE";
- var dialog = widget.Get(panelName);
- dialog.IsVisible = () => !showStats;
- widget.IsVisible = () => Ui.CurrentWindow() == null;
-
- if (hasObjectives || isMultiplayer)
- {
- var titleText = dialog.Get("GAME_ENDED_LABEL");
- var titleTextNoTabs = dialog.GetOrNull("GAME_ENDED_LABEL_NO_TABS");
- titleText.IsVisible = () => showTabs || (!showTabs && titleTextNoTabs == null);
- if (titleTextNoTabs != null)
- titleTextNoTabs.IsVisible = () => !showTabs;
-
- var bg = dialog.Get("LEAVE_MAP_BG");
- var bgNoTabs = dialog.GetOrNull("LEAVE_MAP_BG_NO_TABS");
- bg.IsVisible = () => showTabs || (!showTabs && bgNoTabs == null);
- if (bgNoTabs != null)
- bgNoTabs.IsVisible = () => !showTabs;
-
- var objButton = dialog.Get("OBJECTIVES_BUTTON");
- objButton.IsVisible = () => showTabs;
- objButton.OnClick = () => currentTab = Tab.Objectives;
- objButton.IsHighlighted = () => currentTab == Tab.Objectives;
-
- var chatButton = dialog.Get("CHAT_BUTTON");
- chatButton.IsVisible = () => showTabs;
- chatButton.OnClick = () =>
- {
- currentTab = Tab.Chat;
- newChatMessage = false;
- };
- chatButton.IsHighlighted = () => currentTab == Tab.Chat || (newChatMessage && Game.LocalTick % 50 < 25);
-
- Game.BeforeGameStart += UnregisterChatNotification;
- orderManager.AddChatLine += NotifyNewChatMessage;
- }
-
- var statsButton = dialog.Get("STATS_BUTTON");
- statsButton.IsVisible = () => !world.Map.Visibility.HasFlag(MapVisibility.MissionSelector) || world.IsReplay;
- statsButton.OnClick = () =>
- {
- showStats = true;
- Game.LoadWidget(world, "INGAME_OBSERVERSTATS_BG", Ui.Root, new WidgetArgs()
- {
- { "onExit", () => showStats = false }
- });
- };
-
- var leaveButton = dialog.Get("LEAVE_BUTTON");
- leaveButton.OnClick = () =>
- {
- leaveButton.Disabled = true;
-
- if (world.Type == WorldType.Regular)
- Sound.PlayNotification(world.Map.Rules, null, "Speech", "Leave",
- world.LocalPlayer == null ? null : world.LocalPlayer.Faction.InternalName);
-
- var exitDelay = iop != null ? iop.ExitDelay : 0;
- if (mpe != null)
- {
- Game.RunAfterDelay(exitDelay, () => mpe.Fade(MenuPaletteEffect.EffectType.Black));
- exitDelay += 40 * mpe.Info.FadeLength;
- }
-
- Game.RunAfterDelay(exitDelay, () =>
- {
- Game.Disconnect();
- Ui.ResetAll();
- Game.LoadShellMap();
- });
- };
-
- if (hasObjectives)
- {
- var panel = hasError ? "SCRIPT_ERROR_PANEL" : iop.PanelName;
- var objectivesContainer = dialog.Get("OBJECTIVES_PANEL");
- Game.LoadWidget(world, panel, objectivesContainer, new WidgetArgs());
- objectivesContainer.IsVisible = () => currentTab == Tab.Objectives;
-
- string video = null;
- if (world.LocalPlayer.WinState != WinState.Undefined)
- video = world.LocalPlayer.WinState == WinState.Won ? world.Map.Videos.GameWon : world.Map.Videos.GameLost;
-
- if (!string.IsNullOrEmpty(video))
- Media.PlayFMVFullscreen(world, video, () => { });
- }
-
- if (isMultiplayer)
- {
- var chatContainer = dialog.Get("DIALOG_CHAT_PANEL");
- chatContainer.IsVisible = () => currentTab == Tab.Chat;
- }
- }
-
- void NotifyNewChatMessage(Color c, string s1, string s2)
- {
- if (currentTab != Tab.Chat)
- newChatMessage = true;
- }
-
- void UnregisterChatNotification()
- {
- orderManager.AddChatLine -= NotifyNewChatMessage;
- Game.BeforeGameStart -= UnregisterChatNotification;
- }
- }
-}
\ No newline at end of file
diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs
index 0120bf2fbb..9ba207a1dd 100644
--- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs
+++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs
@@ -8,6 +8,7 @@
*/
#endregion
+using OpenRA.Mods.Common.Scripting;
using OpenRA.Widgets;
namespace OpenRA.Mods.Common.Widgets.Logic
@@ -46,9 +47,21 @@ namespace OpenRA.Mods.Common.Widgets.Logic
world.GameOver += () =>
{
- worldRoot.RemoveChildren();
+ Ui.CloseWindow();
menuRoot.RemoveChildren();
- Game.LoadWidget(world, "LEAVE_MAP_WIDGET", menuRoot, new WidgetArgs());
+
+ if (world.LocalPlayer != null)
+ {
+ var scriptContext = world.WorldActor.TraitOrDefault();
+ var video = world.LocalPlayer.WinState == WinState.Won ? world.Map.Videos.GameWon : world.Map.Videos.GameLost;
+
+ if (!string.IsNullOrEmpty(video) && !(scriptContext != null && scriptContext.FatalErrorOccurred))
+ Media.PlayFMVFullscreen(world, video, () => { });
+ }
+
+ var optionsButton = playerRoot.GetOrNull("OPTIONS_BUTTON");
+ if (optionsButton != null)
+ optionsButton.OnClick();
};
}
}
diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/MenuButtonsChromeLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/MenuButtonsChromeLogic.cs
index 0e4c082a11..adafc9e957 100644
--- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/MenuButtonsChromeLogic.cs
+++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/MenuButtonsChromeLogic.cs
@@ -33,9 +33,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic
worldRoot = Ui.Root.Get("WORLD_ROOT");
menuRoot = Ui.Root.Get("MENU_ROOT");
- Action removeCurrentWidget = () => menuRoot.RemoveChild(currentWidget);
- world.GameOver += removeCurrentWidget;
-
// System buttons
var options = widget.GetOrNull("OPTIONS_BUTTON");
if (options != null)
diff --git a/mods/cnc/chrome/ingame-info.yaml b/mods/cnc/chrome/ingame-info.yaml
index 7b0a99f610..24299c750f 100644
--- a/mods/cnc/chrome/ingame-info.yaml
+++ b/mods/cnc/chrome/ingame-info.yaml
@@ -50,6 +50,7 @@ Container@GAME_INFO_PANEL:
Width: PARENT_RIGHT
Height: PARENT_BOTTOM
Container@OBJECTIVES_PANEL:
+ Width: PARENT_RIGHT
Container@DEBUG_PANEL:
Width: PARENT_RIGHT
Height: PARENT_BOTTOM
diff --git a/mods/cnc/chrome/ingame-leavemap.yaml b/mods/cnc/chrome/ingame-leavemap.yaml
deleted file mode 100644
index 6acdc1e86a..0000000000
--- a/mods/cnc/chrome/ingame-leavemap.yaml
+++ /dev/null
@@ -1,167 +0,0 @@
-Container@LEAVE_MAP_WIDGET:
- Logic: LeaveMapLogic
- Children:
- Image@EVA:
- X: WINDOW_RIGHT-128-43
- Y: 43
- Width: 128
- Height: 64
- ImageCollection: logos
- ImageName: eva
- Label@VERSION_LABEL:
- X: WINDOW_RIGHT-128-43
- Y: 115
- Width: 128
- Align: Center
- Contrast: true
- Background@BORDER:
- Width: WINDOW_RIGHT
- Height: WINDOW_BOTTOM
- Background: shellmapborder
- Container@LEAVE_MAP_SIMPLE:
- X: (WINDOW_RIGHT - WIDTH) / 2
- Y: (WINDOW_BOTTOM - HEIGHT) / 2
- Width: 370
- Height: 125
- Visible: False
- Children:
- Background@LEAVE_MAP_SIMPLE_BG:
- Width: PARENT_RIGHT
- Height: PARENT_BOTTOM - 35
- Background: panel-black
- Children:
- Label@GAME_ENDED_LABEL:
- X: 0
- Y: 0 - 25
- Width: PARENT_RIGHT
- Font: BigBold
- Align: Center
- Text: The game has ended
- Contrast: True
- Label@BLURB:
- X: 15
- Y: (PARENT_BOTTOM - HEIGHT) / 2
- Width: PARENT_RIGHT - 30
- Text: Press 'Leave' to return to the main menu.
- Align: Center
- Button@LEAVE_BUTTON:
- X: 0
- Y: PARENT_BOTTOM - 1
- Width: 140
- Height: 35
- Font: Bold
- Text: Leave
- Button@STATS_BUTTON:
- X: PARENT_RIGHT - WIDTH
- Y: PARENT_BOTTOM - 1
- Width: 140
- Height: 35
- Font: Bold
- Text: Statistics
- Container@LEAVE_MAP_FULL:
- X: (WINDOW_RIGHT - WIDTH) / 2
- Y: (WINDOW_BOTTOM - HEIGHT) / 2
- Width: 512
- Height: 410
- Visible: False
- Children:
- Background@LEAVE_MAP_BG:
- Width: PARENT_RIGHT
- Height: PARENT_BOTTOM - 35
- Background: panel-black
- Label@GAME_ENDED_LABEL:
- X: 0
- Y: 0 - 60
- Width: PARENT_RIGHT
- Font: BigBold
- Align: Center
- Text: The game has ended
- Contrast: True
- Label@GAME_ENDED_LABEL_NO_TABS:
- X: 0
- Y: 0 - 25
- Width: PARENT_RIGHT
- Font: BigBold
- Align: Center
- Text: The game has ended
- Contrast: True
- Container@TAB_CONTAINER:
- Width: 290
- Children:
- Button@OBJECTIVES_BUTTON:
- Y: 1 - HEIGHT
- Width: 140
- Height: 35
- Font: Bold
- Text: Objectives
- Button@CHAT_BUTTON:
- X: 150
- Y: 1 - HEIGHT
- Width: 140
- Height: 35
- Font: Bold
- Text: Chat
- Button@LEAVE_BUTTON:
- X: 0
- Y: PARENT_BOTTOM - 36
- Width: 140
- Height: 35
- Font: Bold
- Text: Leave
- Button@STATS_BUTTON:
- X: 150
- Y: PARENT_BOTTOM - 36
- Width: 140
- Height: 35
- Font: Bold
- Text: Statistics
- Container@OBJECTIVES_PANEL:
- Width: PARENT_RIGHT
- Height: 365
- Container@DIALOG_CHAT_PANEL:
- X: 15
- Y: 15
- Width: PARENT_RIGHT - 30
- Height: 365
- Logic: IngameChatLogic
- Visible: False
- Children:
- Container@CHAT_CHROME:
- Width: PARENT_RIGHT
- Height: PARENT_BOTTOM
- Children:
- Button@CHAT_MODE:
- Y: PARENT_BOTTOM - HEIGHT - 20
- Width: 50
- Height: 25
- Text: Team
- Font: Bold
- TextField@CHAT_TEXTFIELD:
- X: 55
- Y: PARENT_BOTTOM - HEIGHT - 20
- Width: 427
- Height: 25
- ScrollPanel@CHAT_SCROLLPANEL:
- Y: PARENT_BOTTOM - HEIGHT - 50
- Width: 482
- Height: 315
- ItemSpacing: 4
- Align: Bottom
- Children:
- Container@CHAT_TEMPLATE:
- X: 2
- Width: PARENT_RIGHT-27
- Height: 16
- Children:
- Label@NAME:
- X: 3
- Width: 50
- Height: 15
- VAlign: Top
- Label@TEXT:
- X: 12
- Width: PARENT_RIGHT - 17
- Height: 15
- WordWrap: true
- VAlign: Top
-
diff --git a/mods/cnc/mod.yaml b/mods/cnc/mod.yaml
index 73818b0bcd..49cc307058 100644
--- a/mods/cnc/mod.yaml
+++ b/mods/cnc/mod.yaml
@@ -111,7 +111,6 @@ ChromeLayout:
./mods/cnc/chrome/ingame-infoscripterror.yaml
./mods/cnc/chrome/ingame-infoobjectives.yaml
./mods/cnc/chrome/ingame-infostats.yaml
- ./mods/cnc/chrome/ingame-leavemap.yaml
./mods/cnc/chrome/ingame-observerstats.yaml
./mods/cnc/chrome/music.yaml
./mods/cnc/chrome/settings.yaml
diff --git a/mods/d2k/chrome/ingame-leavemap.yaml b/mods/d2k/chrome/ingame-leavemap.yaml
deleted file mode 100644
index 12f9d286c1..0000000000
--- a/mods/d2k/chrome/ingame-leavemap.yaml
+++ /dev/null
@@ -1,168 +0,0 @@
-Container@LEAVE_MAP_WIDGET:
- Logic: LeaveMapLogic
- Children:
- Background@BORDER:
- X: 0 - 15
- Y: 0 - 15
- Width: WINDOW_RIGHT + 30
- Height: WINDOW_BOTTOM + 30
- Background: mainmenu-border
- Label@VERSION_LABEL:
- X: WINDOW_RIGHT - 10
- Y: WINDOW_BOTTOM - 20
- Align: Right
- Font: Regular
- Contrast: True
- Container@LEAVE_MAP_SIMPLE:
- X: (WINDOW_RIGHT - WIDTH) / 2
- Y: (WINDOW_BOTTOM - HEIGHT) / 2
- Width: 370
- Height: 175
- Visible: False
- Children:
- Background@LEAVE_MAP_SIMPLE_BG:
- Width: PARENT_RIGHT
- Height: PARENT_BOTTOM
- Children:
- Label@GAME_ENDED_LABEL:
- Y: 20
- Width: PARENT_RIGHT
- Height: 25
- Font: Bold
- Align: Center
- Text: The game has ended
- Label@BLURB:
- X: 15
- Y: 50
- Width: PARENT_RIGHT - 30
- Height: 65
- Text: Press 'Leave' to return to the main menu.
- Align: Center
- Button@STATS_BUTTON:
- X: 20
- Y: PARENT_BOTTOM - 45
- Width: 140
- Height: 25
- Font: Bold
- Text: Statistics
- Button@LEAVE_BUTTON:
- X: PARENT_RIGHT - WIDTH - 20
- Y: PARENT_BOTTOM - 45
- Width: 140
- Height: 25
- Font: Bold
- Text: Leave
- Container@LEAVE_MAP_FULL:
- X: (WINDOW_RIGHT - WIDTH) / 2
- Y: (WINDOW_BOTTOM - HEIGHT) / 2
- Width: 522
- Height: 495
- Visible: False
- Children:
- Background@LEAVE_MAP_BG:
- Width: PARENT_RIGHT
- Height: PARENT_BOTTOM
- Visible: False
- Background@LEAVE_MAP_BG_NO_TABS:
- Y: 25
- Width: PARENT_RIGHT
- Height: PARENT_BOTTOM - 25
- Visible: False
- Label@GAME_ENDED_LABEL:
- X: 20
- Y: 20
- Width: PARENT_RIGHT - 40
- Height: 25
- Font: Bold
- Align: Center
- Text: The game has ended
- Label@GAME_ENDED_LABEL_NO_TABS:
- X: 20
- Y: 45
- Width: PARENT_RIGHT - 40
- Height: 25
- Font: Bold
- Align: Center
- Text: The game has ended
- Container@TAB_CONTAINER:
- X: (PARENT_RIGHT - WIDTH) / 2
- Width: 240
- Height: 25
- Children:
- Button@OBJECTIVES_BUTTON:
- X: 0
- Y: 50
- Width: 120
- Height: 25
- Font: Bold
- Text: Objectives
- Button@CHAT_BUTTON:
- X: 120
- Y: 50
- Width: 120
- Height: 25
- Font: Bold
- Text: Chat
- Button@STATS_BUTTON:
- X: PARENT_RIGHT - 2 * (WIDTH + 20)
- Y: PARENT_BOTTOM - 45
- Width: 120
- Height: 25
- Font: Bold
- Text: Statistics
- Button@LEAVE_BUTTON:
- X: PARENT_RIGHT - WIDTH - 20
- Y: PARENT_BOTTOM - 45
- Width: 120
- Height: 25
- Font: Bold
- Text: Leave
- Container@OBJECTIVES_PANEL:
- Y: 65
- Width: PARENT_RIGHT
- Container@DIALOG_CHAT_PANEL:
- X: 20
- Y: 65
- Width: PARENT_RIGHT - 40
- Height: 370
- Logic: IngameChatLogic
- Visible: False
- Children:
- Container@CHAT_CHROME:
- Width: PARENT_RIGHT
- Height: PARENT_BOTTOM
- Children:
- Button@CHAT_MODE:
- Y: PARENT_BOTTOM - HEIGHT
- Width: 50
- Height: 25
- Text: Team
- Font: Bold
- TextField@CHAT_TEXTFIELD:
- X: 55
- Y: PARENT_BOTTOM - HEIGHT
- Width: 427
- Height: 25
- ScrollPanel@CHAT_SCROLLPANEL:
- Y: PARENT_BOTTOM - HEIGHT - 30
- Width: 482
- Height: 315
- ItemSpacing: 4
- Align: Bottom
- Children:
- Container@CHAT_TEMPLATE:
- X: 2
- Width: PARENT_RIGHT-27
- Height: 16
- Children:
- Label@NAME:
- X: 3
- Width: 50
- Height: 15
- VAlign: Top
- Label@TEXT:
- X: 12
- Width: PARENT_RIGHT - 17
- Height: 15
- WordWrap: true
- VAlign: Top
diff --git a/mods/d2k/mod.yaml b/mods/d2k/mod.yaml
index c4d81a1297..554bbdff1a 100644
--- a/mods/d2k/mod.yaml
+++ b/mods/d2k/mod.yaml
@@ -81,7 +81,6 @@ ChromeLayout:
./mods/d2k/chrome/ingame-player.yaml
./mods/ra/chrome/ingame-perf.yaml
./mods/ra/chrome/ingame-debug.yaml
- ./mods/d2k/chrome/ingame-leavemap.yaml
./mods/d2k/chrome/mainmenu.yaml
./mods/ra/chrome/settings.yaml
./mods/ra/chrome/credits.yaml
diff --git a/mods/ra/chrome/ingame-info.yaml b/mods/ra/chrome/ingame-info.yaml
index 6aad3f056d..ffe21675d0 100644
--- a/mods/ra/chrome/ingame-info.yaml
+++ b/mods/ra/chrome/ingame-info.yaml
@@ -58,6 +58,7 @@ Container@GAME_INFO_PANEL:
Height: PARENT_BOTTOM
Container@OBJECTIVES_PANEL:
Y: 65
+ Width: PARENT_RIGHT
Container@DEBUG_PANEL:
Y: 65
Width: PARENT_RIGHT
diff --git a/mods/ra/chrome/ingame-leavemap.yaml b/mods/ra/chrome/ingame-leavemap.yaml
deleted file mode 100644
index 74776c26de..0000000000
--- a/mods/ra/chrome/ingame-leavemap.yaml
+++ /dev/null
@@ -1,175 +0,0 @@
-Container@LEAVE_MAP_WIDGET:
- Logic: LeaveMapLogic
- Children:
- Background@BORDER:
- X: 0 - 15
- Y: 0 - 15
- Width: WINDOW_RIGHT + 30
- Height: WINDOW_BOTTOM + 30
- Background: mainmenu-border
- Image@LOGO:
- X: WINDOW_RIGHT - 296
- Y: 30
- ImageCollection: logos
- ImageName: logo
- Label@VERSION_LABEL:
- X: WINDOW_RIGHT - 296
- Y: 296 - 20
- Width: 296 - 20
- Height: 25
- Align: Center
- Font: Regular
- Contrast: True
- Container@LEAVE_MAP_SIMPLE:
- X: (WINDOW_RIGHT - WIDTH) / 2
- Y: (WINDOW_BOTTOM - HEIGHT) / 2
- Width: 370
- Height: 175
- Visible: False
- Children:
- Background@LEAVE_MAP_SIMPLE_BG:
- Width: PARENT_RIGHT
- Height: PARENT_BOTTOM
- Children:
- Label@GAME_ENDED_LABEL:
- Y: 20
- Width: PARENT_RIGHT
- Height: 25
- Font: Bold
- Align: Center
- Text: The game has ended
- Label@BLURB:
- X: 15
- Y: 50
- Width: PARENT_RIGHT - 30
- Height: 65
- Text: Press 'Leave' to return to the main menu.
- Align: Center
- Button@STATS_BUTTON:
- X: 20
- Y: PARENT_BOTTOM - 45
- Width: 140
- Height: 25
- Font: Bold
- Text: Statistics
- Button@LEAVE_BUTTON:
- X: PARENT_RIGHT - WIDTH - 20
- Y: PARENT_BOTTOM - 45
- Width: 140
- Height: 25
- Font: Bold
- Text: Leave
- Container@LEAVE_MAP_FULL:
- X: (WINDOW_RIGHT - WIDTH) / 2
- Y: (WINDOW_BOTTOM - HEIGHT) / 2
- Width: 522
- Height: 510
- Visible: False
- Children:
- Background@LEAVE_MAP_BG:
- Width: PARENT_RIGHT
- Height: PARENT_BOTTOM
- Visible: False
- Background@LEAVE_MAP_BG_NO_TABS:
- Y: 25
- Width: PARENT_RIGHT
- Height: PARENT_BOTTOM - 25
- Visible: False
- Label@GAME_ENDED_LABEL:
- X: 20
- Y: 20
- Width: PARENT_RIGHT - 40
- Height: 25
- Font: Bold
- Align: Center
- Text: The game has ended
- Label@GAME_ENDED_LABEL_NO_TABS:
- X: 20
- Y: 45
- Width: PARENT_RIGHT - 40
- Height: 25
- Font: Bold
- Align: Center
- Text: The game has ended
- Container@TAB_CONTAINER:
- X: (PARENT_RIGHT - WIDTH) / 2
- Width: 240
- Height: 25
- Children:
- Button@OBJECTIVES_BUTTON:
- X: 0
- Y: 50
- Width: 120
- Height: 25
- Font: Bold
- Text: Objectives
- Button@CHAT_BUTTON:
- X: 120
- Y: 50
- Width: 120
- Height: 25
- Font: Bold
- Text: Chat
- Button@STATS_BUTTON:
- X: PARENT_RIGHT - 2 * (WIDTH + 20)
- Y: PARENT_BOTTOM - 45
- Width: 120
- Height: 25
- Font: Bold
- Text: Statistics
- Button@LEAVE_BUTTON:
- X: PARENT_RIGHT - WIDTH - 20
- Y: PARENT_BOTTOM - 45
- Width: 120
- Height: 25
- Font: Bold
- Text: Leave
- Container@OBJECTIVES_PANEL:
- Y: 65
- Width: PARENT_RIGHT
- Container@DIALOG_CHAT_PANEL:
- X: 20
- Y: 65
- Width: PARENT_RIGHT - 40
- Height: 370
- Logic: IngameChatLogic
- Visible: False
- Children:
- Container@CHAT_CHROME:
- Width: PARENT_RIGHT
- Height: PARENT_BOTTOM
- Children:
- Button@CHAT_MODE:
- Y: PARENT_BOTTOM - HEIGHT
- Width: 50
- Height: 25
- Text: Team
- Font: Bold
- TextField@CHAT_TEXTFIELD:
- X: 55
- Y: PARENT_BOTTOM - HEIGHT
- Width: 427
- Height: 25
- ScrollPanel@CHAT_SCROLLPANEL:
- Y: PARENT_BOTTOM - HEIGHT - 30
- Width: 482
- Height: 315
- ItemSpacing: 4
- Align: Bottom
- Children:
- Container@CHAT_TEMPLATE:
- X: 2
- Width: PARENT_RIGHT-27
- Height: 16
- Children:
- Label@NAME:
- X: 3
- Width: 50
- Height: 15
- VAlign: Top
- Label@TEXT:
- X: 12
- Width: PARENT_RIGHT - 17
- Height: 15
- WordWrap: true
- VAlign: Top
diff --git a/mods/ra/mod.yaml b/mods/ra/mod.yaml
index 4b09a8d6df..5b47ef8fd0 100644
--- a/mods/ra/mod.yaml
+++ b/mods/ra/mod.yaml
@@ -87,7 +87,6 @@ ChromeLayout:
./mods/ra/chrome/ingame-infobriefing.yaml
./mods/ra/chrome/ingame-infoobjectives.yaml
./mods/ra/chrome/ingame-infostats.yaml
- ./mods/ra/chrome/ingame-leavemap.yaml
./mods/ra/chrome/ingame-menu.yaml
./mods/ra/chrome/ingame-observer.yaml
./mods/ra/chrome/ingame-observerstats.yaml
diff --git a/mods/ts/mod.yaml b/mods/ts/mod.yaml
index 152bed8c70..9ae2ee8785 100644
--- a/mods/ts/mod.yaml
+++ b/mods/ts/mod.yaml
@@ -148,7 +148,6 @@ ChromeLayout:
./mods/ts/chrome/ingame-player.yaml
./mods/ra/chrome/ingame-perf.yaml
./mods/ra/chrome/ingame-debug.yaml
- ./mods/ra/chrome/ingame-leavemap.yaml
./mods/ra/chrome/mainmenu.yaml
./mods/ra/chrome/settings.yaml
./mods/ra/chrome/credits.yaml