Unify and tweak layout of MP browser window.
This commit is contained in:
@@ -81,15 +81,129 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
gameStartedColor = ChromeMetrics.Get<Color>("GameStartedColor");
|
gameStartedColor = ChromeMetrics.Get<Color>("GameStartedColor");
|
||||||
incompatibleGameStartedColor = ChromeMetrics.Get<Color>("IncompatibleGameStartedColor");
|
incompatibleGameStartedColor = ChromeMetrics.Get<Color>("IncompatibleGameStartedColor");
|
||||||
|
|
||||||
LoadBrowserPanel(widget);
|
serverList = widget.Get<ScrollPanelWidget>("SERVER_LIST");
|
||||||
|
headerTemplate = serverList.Get<ScrollItemWidget>("HEADER_TEMPLATE");
|
||||||
|
serverTemplate = serverList.Get<ScrollItemWidget>("SERVER_TEMPLATE");
|
||||||
|
|
||||||
// Filter and refresh buttons act on the browser panel,
|
var join = widget.Get<ButtonWidget>("JOIN_BUTTON");
|
||||||
// but remain visible (disabled) on the other panels
|
join.IsVisible = () => currentServer != null;
|
||||||
var refreshButton = widget.Get<ButtonWidget>("REFRESH_BUTTON");
|
join.IsDisabled = () => !currentServer.IsJoinable;
|
||||||
refreshButton.IsDisabled = () => searchStatus == SearchStatus.Fetching;
|
join.OnClick = () => Join(currentServer);
|
||||||
|
|
||||||
var filtersButton = widget.Get<DropDownButtonWidget>("FILTERS_DROPDOWNBUTTON");
|
// Display the progress label over the server list
|
||||||
filtersButton.IsDisabled = () => searchStatus == SearchStatus.Fetching;
|
// The text is only visible when the list is empty
|
||||||
|
var progressText = widget.Get<LabelWidget>("PROGRESS_LABEL");
|
||||||
|
progressText.IsVisible = () => searchStatus != SearchStatus.Hidden;
|
||||||
|
progressText.GetText = ProgressLabelText;
|
||||||
|
|
||||||
|
var gs = Game.Settings.Game;
|
||||||
|
Action<MPGameFilters> toggleFilterFlag = f =>
|
||||||
|
{
|
||||||
|
gs.MPGameFilters ^= f;
|
||||||
|
Game.Settings.Save();
|
||||||
|
RefreshServerList();
|
||||||
|
};
|
||||||
|
|
||||||
|
var filtersPanel = Ui.LoadWidget("MULTIPLAYER_FILTER_PANEL", null, new WidgetArgs());
|
||||||
|
var showWaitingCheckbox = filtersPanel.GetOrNull<CheckboxWidget>("WAITING_FOR_PLAYERS");
|
||||||
|
if (showWaitingCheckbox != null)
|
||||||
|
{
|
||||||
|
showWaitingCheckbox.IsChecked = () => gs.MPGameFilters.HasFlag(MPGameFilters.Waiting);
|
||||||
|
showWaitingCheckbox.OnClick = () => toggleFilterFlag(MPGameFilters.Waiting);
|
||||||
|
}
|
||||||
|
|
||||||
|
var showEmptyCheckbox = filtersPanel.GetOrNull<CheckboxWidget>("EMPTY");
|
||||||
|
if (showEmptyCheckbox != null)
|
||||||
|
{
|
||||||
|
showEmptyCheckbox.IsChecked = () => gs.MPGameFilters.HasFlag(MPGameFilters.Empty);
|
||||||
|
showEmptyCheckbox.OnClick = () => toggleFilterFlag(MPGameFilters.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
|
var showAlreadyStartedCheckbox = filtersPanel.GetOrNull<CheckboxWidget>("ALREADY_STARTED");
|
||||||
|
if (showAlreadyStartedCheckbox != null)
|
||||||
|
{
|
||||||
|
showAlreadyStartedCheckbox.IsChecked = () => gs.MPGameFilters.HasFlag(MPGameFilters.Started);
|
||||||
|
showAlreadyStartedCheckbox.OnClick = () => toggleFilterFlag(MPGameFilters.Started);
|
||||||
|
}
|
||||||
|
|
||||||
|
var showProtectedCheckbox = filtersPanel.GetOrNull<CheckboxWidget>("PASSWORD_PROTECTED");
|
||||||
|
if (showProtectedCheckbox != null)
|
||||||
|
{
|
||||||
|
showProtectedCheckbox.IsChecked = () => gs.MPGameFilters.HasFlag(MPGameFilters.Protected);
|
||||||
|
showProtectedCheckbox.OnClick = () => toggleFilterFlag(MPGameFilters.Protected);
|
||||||
|
}
|
||||||
|
|
||||||
|
var showIncompatibleCheckbox = filtersPanel.GetOrNull<CheckboxWidget>("INCOMPATIBLE_VERSION");
|
||||||
|
if (showIncompatibleCheckbox != null)
|
||||||
|
{
|
||||||
|
showIncompatibleCheckbox.IsChecked = () => gs.MPGameFilters.HasFlag(MPGameFilters.Incompatible);
|
||||||
|
showIncompatibleCheckbox.OnClick = () => toggleFilterFlag(MPGameFilters.Incompatible);
|
||||||
|
}
|
||||||
|
|
||||||
|
var filtersButton = widget.GetOrNull<DropDownButtonWidget>("FILTERS_DROPDOWNBUTTON");
|
||||||
|
if (filtersButton != null)
|
||||||
|
{
|
||||||
|
filtersButton.IsDisabled = () => searchStatus == SearchStatus.Fetching;
|
||||||
|
filtersButton.OnMouseDown = _ =>
|
||||||
|
{
|
||||||
|
filtersButton.RemovePanel();
|
||||||
|
filtersButton.AttachPanel(filtersPanel);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
var refreshButton = widget.GetOrNull<ButtonWidget>("REFRESH_BUTTON");
|
||||||
|
if (refreshButton != null)
|
||||||
|
{
|
||||||
|
refreshButton.GetText = () => searchStatus == SearchStatus.Fetching ? "Refreshing..." : "Refresh";
|
||||||
|
refreshButton.IsDisabled = () => searchStatus == SearchStatus.Fetching;
|
||||||
|
refreshButton.OnClick = RefreshServerList;
|
||||||
|
}
|
||||||
|
|
||||||
|
var mapPreview = widget.GetOrNull<MapPreviewWidget>("SELECTED_MAP_PREVIEW");
|
||||||
|
if (mapPreview != null)
|
||||||
|
mapPreview.Preview = () => currentMap;
|
||||||
|
|
||||||
|
var mapTitle = widget.GetOrNull<LabelWidget>("SELECTED_MAP");
|
||||||
|
if (mapTitle != null)
|
||||||
|
{
|
||||||
|
var font = Game.Renderer.Fonts[mapTitle.Font];
|
||||||
|
var title = new CachedTransform<MapPreview, string>(m => m == null ? "No Server Selected" :
|
||||||
|
WidgetUtils.TruncateText(m.Title, mapTitle.Bounds.Width, font));
|
||||||
|
mapTitle.GetText = () => title.Update(currentMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
var ip = widget.GetOrNull<LabelWidget>("SELECTED_IP");
|
||||||
|
if (ip != null)
|
||||||
|
{
|
||||||
|
ip.IsVisible = () => currentServer != null;
|
||||||
|
ip.GetText = () => currentServer.Address;
|
||||||
|
}
|
||||||
|
|
||||||
|
var status = widget.GetOrNull<LabelWidget>("SELECTED_STATUS");
|
||||||
|
if (status != null)
|
||||||
|
{
|
||||||
|
status.IsVisible = () => currentServer != null;
|
||||||
|
status.GetText = () => GetStateLabel(currentServer);
|
||||||
|
status.GetColor = () => GetStateColor(currentServer, status);
|
||||||
|
}
|
||||||
|
|
||||||
|
var modVersion = widget.GetOrNull<LabelWidget>("SELECTED_MOD_VERSION");
|
||||||
|
if (modVersion != null)
|
||||||
|
{
|
||||||
|
modVersion.IsVisible = () => currentServer != null;
|
||||||
|
modVersion.GetColor = () => currentServer.IsCompatible ? modVersion.TextColor : incompatibleVersionColor;
|
||||||
|
|
||||||
|
var font = Game.Renderer.Fonts[modVersion.Font];
|
||||||
|
var version = new CachedTransform<GameServer, string>(s => WidgetUtils.TruncateText(s.ModLabel, mapTitle.Bounds.Width, font));
|
||||||
|
modVersion.GetText = () => version.Update(currentServer);
|
||||||
|
}
|
||||||
|
|
||||||
|
var players = widget.GetOrNull<LabelWidget>("SELECTED_PLAYERS");
|
||||||
|
if (players != null)
|
||||||
|
{
|
||||||
|
players.IsVisible = () => currentServer != null;
|
||||||
|
players.GetText = () => PlayersLabel(currentServer);
|
||||||
|
}
|
||||||
|
|
||||||
var directConnectButton = widget.Get<ButtonWidget>("DIRECTCONNECT_BUTTON");
|
var directConnectButton = widget.Get<ButtonWidget>("DIRECTCONNECT_BUTTON");
|
||||||
directConnectButton.OnClick = () =>
|
directConnectButton.OnClick = () =>
|
||||||
@@ -149,129 +263,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LoadBrowserPanel(Widget widget)
|
|
||||||
{
|
|
||||||
var browserPanel = Game.LoadWidget(null, "MULTIPLAYER_BROWSER_PANEL", widget.Get("TOP_PANELS_ROOT"), new WidgetArgs());
|
|
||||||
|
|
||||||
serverList = browserPanel.Get<ScrollPanelWidget>("SERVER_LIST");
|
|
||||||
headerTemplate = serverList.Get<ScrollItemWidget>("HEADER_TEMPLATE");
|
|
||||||
serverTemplate = serverList.Get<ScrollItemWidget>("SERVER_TEMPLATE");
|
|
||||||
|
|
||||||
var join = widget.Get<ButtonWidget>("JOIN_BUTTON");
|
|
||||||
join.IsDisabled = () => currentServer == null || !currentServer.IsJoinable;
|
|
||||||
join.OnClick = () => Join(currentServer);
|
|
||||||
|
|
||||||
// Display the progress label over the server list
|
|
||||||
// The text is only visible when the list is empty
|
|
||||||
var progressText = widget.Get<LabelWidget>("PROGRESS_LABEL");
|
|
||||||
progressText.IsVisible = () => searchStatus != SearchStatus.Hidden;
|
|
||||||
progressText.GetText = ProgressLabelText;
|
|
||||||
|
|
||||||
var gs = Game.Settings.Game;
|
|
||||||
Action<MPGameFilters> toggleFilterFlag = f =>
|
|
||||||
{
|
|
||||||
gs.MPGameFilters ^= f;
|
|
||||||
Game.Settings.Save();
|
|
||||||
RefreshServerList();
|
|
||||||
};
|
|
||||||
|
|
||||||
var filtersPanel = Ui.LoadWidget("MULTIPLAYER_FILTER_PANEL", null, new WidgetArgs());
|
|
||||||
var showWaitingCheckbox = filtersPanel.GetOrNull<CheckboxWidget>("WAITING_FOR_PLAYERS");
|
|
||||||
if (showWaitingCheckbox != null)
|
|
||||||
{
|
|
||||||
showWaitingCheckbox.IsChecked = () => gs.MPGameFilters.HasFlag(MPGameFilters.Waiting);
|
|
||||||
showWaitingCheckbox.OnClick = () => toggleFilterFlag(MPGameFilters.Waiting);
|
|
||||||
}
|
|
||||||
|
|
||||||
var showEmptyCheckbox = filtersPanel.GetOrNull<CheckboxWidget>("EMPTY");
|
|
||||||
if (showEmptyCheckbox != null)
|
|
||||||
{
|
|
||||||
showEmptyCheckbox.IsChecked = () => gs.MPGameFilters.HasFlag(MPGameFilters.Empty);
|
|
||||||
showEmptyCheckbox.OnClick = () => toggleFilterFlag(MPGameFilters.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
var showAlreadyStartedCheckbox = filtersPanel.GetOrNull<CheckboxWidget>("ALREADY_STARTED");
|
|
||||||
if (showAlreadyStartedCheckbox != null)
|
|
||||||
{
|
|
||||||
showAlreadyStartedCheckbox.IsChecked = () => gs.MPGameFilters.HasFlag(MPGameFilters.Started);
|
|
||||||
showAlreadyStartedCheckbox.OnClick = () => toggleFilterFlag(MPGameFilters.Started);
|
|
||||||
}
|
|
||||||
|
|
||||||
var showProtectedCheckbox = filtersPanel.GetOrNull<CheckboxWidget>("PASSWORD_PROTECTED");
|
|
||||||
if (showProtectedCheckbox != null)
|
|
||||||
{
|
|
||||||
showProtectedCheckbox.IsChecked = () => gs.MPGameFilters.HasFlag(MPGameFilters.Protected);
|
|
||||||
showProtectedCheckbox.OnClick = () => toggleFilterFlag(MPGameFilters.Protected);
|
|
||||||
}
|
|
||||||
|
|
||||||
var showIncompatibleCheckbox = filtersPanel.GetOrNull<CheckboxWidget>("INCOMPATIBLE_VERSION");
|
|
||||||
if (showIncompatibleCheckbox != null)
|
|
||||||
{
|
|
||||||
showIncompatibleCheckbox.IsChecked = () => gs.MPGameFilters.HasFlag(MPGameFilters.Incompatible);
|
|
||||||
showIncompatibleCheckbox.OnClick = () => toggleFilterFlag(MPGameFilters.Incompatible);
|
|
||||||
}
|
|
||||||
|
|
||||||
var filtersButton = widget.GetOrNull<DropDownButtonWidget>("FILTERS_DROPDOWNBUTTON");
|
|
||||||
if (filtersButton != null)
|
|
||||||
{
|
|
||||||
filtersButton.OnMouseDown = _ =>
|
|
||||||
{
|
|
||||||
filtersButton.RemovePanel();
|
|
||||||
filtersButton.AttachPanel(filtersPanel);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
var refreshButton = widget.Get<ButtonWidget>("REFRESH_BUTTON");
|
|
||||||
refreshButton.GetText = () => searchStatus == SearchStatus.Fetching ? "Refreshing..." : "Refresh";
|
|
||||||
refreshButton.OnClick = RefreshServerList;
|
|
||||||
|
|
||||||
var mapPreview = widget.GetOrNull<MapPreviewWidget>("SELECTED_MAP_PREVIEW");
|
|
||||||
if (mapPreview != null)
|
|
||||||
mapPreview.Preview = () => currentMap;
|
|
||||||
|
|
||||||
var mapTitle = widget.GetOrNull<LabelWidget>("SELECTED_MAP");
|
|
||||||
if (mapTitle != null)
|
|
||||||
{
|
|
||||||
var font = Game.Renderer.Fonts[mapTitle.Font];
|
|
||||||
var title = new CachedTransform<MapPreview, string>(m => m == null ? "No Server Selected" :
|
|
||||||
WidgetUtils.TruncateText(m.Title, mapTitle.Bounds.Width, font));
|
|
||||||
mapTitle.GetText = () => title.Update(currentMap);
|
|
||||||
}
|
|
||||||
|
|
||||||
var ip = widget.GetOrNull<LabelWidget>("SELECTED_IP");
|
|
||||||
if (ip != null)
|
|
||||||
{
|
|
||||||
ip.IsVisible = () => currentServer != null;
|
|
||||||
ip.GetText = () => currentServer.Address;
|
|
||||||
}
|
|
||||||
|
|
||||||
var status = widget.GetOrNull<LabelWidget>("SELECTED_STATUS");
|
|
||||||
if (status != null)
|
|
||||||
{
|
|
||||||
status.IsVisible = () => currentServer != null;
|
|
||||||
status.GetText = () => GetStateLabel(currentServer);
|
|
||||||
status.GetColor = () => GetStateColor(currentServer, status);
|
|
||||||
}
|
|
||||||
|
|
||||||
var modVersion = widget.GetOrNull<LabelWidget>("SELECTED_MOD_VERSION");
|
|
||||||
if (modVersion != null)
|
|
||||||
{
|
|
||||||
modVersion.IsVisible = () => currentServer != null;
|
|
||||||
modVersion.GetColor = () => currentServer.IsCompatible ? modVersion.TextColor : incompatibleVersionColor;
|
|
||||||
|
|
||||||
var font = Game.Renderer.Fonts[modVersion.Font];
|
|
||||||
var version = new CachedTransform<GameServer, string>(s => WidgetUtils.TruncateText(s.ModLabel, mapTitle.Bounds.Width, font));
|
|
||||||
modVersion.GetText = () => version.Update(currentServer);
|
|
||||||
}
|
|
||||||
|
|
||||||
var players = widget.GetOrNull<LabelWidget>("SELECTED_PLAYERS");
|
|
||||||
if (players != null)
|
|
||||||
{
|
|
||||||
players.IsVisible = () => currentServer != null;
|
|
||||||
players.GetText = () => PlayersLabel(currentServer);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
string PlayersLabel(GameServer game)
|
string PlayersLabel(GameServer game)
|
||||||
{
|
{
|
||||||
return "{0}{1}{2}".F(
|
return "{0}{1}{2}".F(
|
||||||
|
|||||||
@@ -1,139 +1,233 @@
|
|||||||
Container@MULTIPLAYER_BROWSER_PANEL:
|
Container@MULTIPLAYER_PANEL:
|
||||||
Width: PARENT_RIGHT
|
Logic: MultiplayerLogic
|
||||||
Height: PARENT_BOTTOM
|
X: (WINDOW_RIGHT - WIDTH) / 2
|
||||||
|
Y: (WINDOW_BOTTOM - 560) / 2
|
||||||
|
Width: 800
|
||||||
|
Height: 575
|
||||||
Children:
|
Children:
|
||||||
Container@LABEL_CONTAINER:
|
Label@TITLE:
|
||||||
Y: 5
|
Text: Multiplayer
|
||||||
Width: PARENT_RIGHT
|
Width: PARENT_RIGHT
|
||||||
Height: PARENT_BOTTOM
|
Y: 0 - 25
|
||||||
|
Font: BigBold
|
||||||
|
Contrast: true
|
||||||
|
Align: Center
|
||||||
|
Background@bg:
|
||||||
|
Width: PARENT_RIGHT
|
||||||
|
Height: PARENT_BOTTOM - 35
|
||||||
|
Background: panel-black
|
||||||
Children:
|
Children:
|
||||||
Label@NAME:
|
Container@LABEL_CONTAINER:
|
||||||
X: 5
|
X: 15
|
||||||
Width: 255
|
Y: 5
|
||||||
Height: 25
|
Width: PARENT_RIGHT
|
||||||
Text: Server
|
Height: PARENT_BOTTOM
|
||||||
Align: Center
|
|
||||||
Font: Bold
|
|
||||||
Label@PLAYERS:
|
|
||||||
X: 290
|
|
||||||
Width: 85
|
|
||||||
Height: 25
|
|
||||||
Text: Players
|
|
||||||
Font: Bold
|
|
||||||
Label@LOCATION:
|
|
||||||
X: 380
|
|
||||||
Width: 110
|
|
||||||
Height: 25
|
|
||||||
Text: Location
|
|
||||||
Font: Bold
|
|
||||||
Label@STATUS:
|
|
||||||
X: 495
|
|
||||||
Width: 50
|
|
||||||
Height: 25
|
|
||||||
Text: Status
|
|
||||||
Font: Bold
|
|
||||||
ScrollPanel@SERVER_LIST:
|
|
||||||
Y: 30
|
|
||||||
Width: 582
|
|
||||||
Height: 249
|
|
||||||
TopBottomSpacing: 2
|
|
||||||
Children:
|
|
||||||
ScrollItem@HEADER_TEMPLATE:
|
|
||||||
Width: PARENT_RIGHT - 27
|
|
||||||
Height: 20
|
|
||||||
X: 2
|
|
||||||
Visible: false
|
|
||||||
Children:
|
Children:
|
||||||
Label@LABEL:
|
Label@NAME:
|
||||||
Y: 0 - 1
|
|
||||||
Font: TinyBold
|
|
||||||
Width: PARENT_RIGHT
|
|
||||||
Height: 20
|
|
||||||
Align: Center
|
|
||||||
ScrollItem@SERVER_TEMPLATE:
|
|
||||||
Width: PARENT_RIGHT - 27
|
|
||||||
Height: 25
|
|
||||||
X: 2
|
|
||||||
Children:
|
|
||||||
Label@TITLE:
|
|
||||||
X: 5
|
X: 5
|
||||||
Width: 255
|
Width: 255
|
||||||
Height: 25
|
Height: 25
|
||||||
Image@PASSWORD_PROTECTED:
|
Text: Server
|
||||||
X: 272
|
Align: Center
|
||||||
Y: 6
|
Font: Bold
|
||||||
Width: 8
|
|
||||||
Height: 10
|
|
||||||
ImageCollection: lobby-bits
|
|
||||||
Label@PLAYERS:
|
Label@PLAYERS:
|
||||||
X: 290
|
X: 290
|
||||||
Width: 85
|
Width: 85
|
||||||
Height: 25
|
Height: 25
|
||||||
|
Text: Players
|
||||||
|
Font: Bold
|
||||||
Label@LOCATION:
|
Label@LOCATION:
|
||||||
X: 380
|
X: 380
|
||||||
Width: 110
|
Width: 110
|
||||||
Height: 25
|
Height: 25
|
||||||
|
Text: Location
|
||||||
|
Font: Bold
|
||||||
Label@STATUS:
|
Label@STATUS:
|
||||||
X: 495
|
X: 495
|
||||||
Width: 50
|
Width: 50
|
||||||
Height: 25
|
Height: 25
|
||||||
Label@PROGRESS_LABEL:
|
Text: Status
|
||||||
Y: 30 + (249 - HEIGHT) / 2
|
Font: Bold
|
||||||
Width: 582
|
ScrollPanel@SERVER_LIST:
|
||||||
Height: 25
|
X: 15
|
||||||
Font: Bold
|
Y: 30
|
||||||
Align: Center
|
Width: 582
|
||||||
Visible: false
|
Height: PARENT_BOTTOM - 75
|
||||||
Container@SELECTED_SERVER:
|
TopBottomSpacing: 2
|
||||||
X: PARENT_RIGHT - WIDTH
|
|
||||||
Y: 30
|
|
||||||
Width: 174
|
|
||||||
Height: 280
|
|
||||||
Children:
|
|
||||||
Background@MAP_BG:
|
|
||||||
Width: PARENT_RIGHT
|
|
||||||
Height: 174
|
|
||||||
Background: panel-gray
|
|
||||||
Children:
|
Children:
|
||||||
MapPreview@SELECTED_MAP_PREVIEW:
|
ScrollItem@HEADER_TEMPLATE:
|
||||||
X: 1
|
Width: PARENT_RIGHT - 27
|
||||||
Y: 1
|
Height: 20
|
||||||
Width: PARENT_RIGHT - 2
|
X: 2
|
||||||
Height: PARENT_BOTTOM - 2
|
Visible: false
|
||||||
Label@SELECTED_MAP:
|
Children:
|
||||||
Y: 172
|
Label@LABEL:
|
||||||
Width: PARENT_RIGHT
|
Y: 0 - 1
|
||||||
|
Font: TinyBold
|
||||||
|
Width: PARENT_RIGHT
|
||||||
|
Height: 20
|
||||||
|
Align: Center
|
||||||
|
ScrollItem@SERVER_TEMPLATE:
|
||||||
|
Width: PARENT_RIGHT - 27
|
||||||
|
Height: 25
|
||||||
|
X: 2
|
||||||
|
Children:
|
||||||
|
Label@TITLE:
|
||||||
|
X: 5
|
||||||
|
Width: 255
|
||||||
|
Height: 25
|
||||||
|
Image@PASSWORD_PROTECTED:
|
||||||
|
X: 272
|
||||||
|
Y: 6
|
||||||
|
Width: 8
|
||||||
|
Height: 10
|
||||||
|
ImageCollection: lobby-bits
|
||||||
|
Label@PLAYERS:
|
||||||
|
X: 290
|
||||||
|
Width: 85
|
||||||
|
Height: 25
|
||||||
|
Label@LOCATION:
|
||||||
|
X: 380
|
||||||
|
Width: 110
|
||||||
|
Height: 25
|
||||||
|
Label@STATUS:
|
||||||
|
X: 495
|
||||||
|
Width: 50
|
||||||
|
Height: 25
|
||||||
|
Label@PROGRESS_LABEL:
|
||||||
|
X: 15
|
||||||
|
Y: 30 + (PARENT_BOTTOM - 75 - HEIGHT) / 2
|
||||||
|
Width: 582
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Align: Center
|
Align: Center
|
||||||
Label@SELECTED_IP:
|
Visible: false
|
||||||
Y: 187
|
Container@SELECTED_SERVER:
|
||||||
Width: PARENT_RIGHT
|
X: PARENT_RIGHT - WIDTH - 15
|
||||||
|
Y: 30
|
||||||
|
Width: 174
|
||||||
|
Height: 280
|
||||||
|
Children:
|
||||||
|
Background@MAP_BG:
|
||||||
|
Width: PARENT_RIGHT
|
||||||
|
Height: 174
|
||||||
|
Background: panel-gray
|
||||||
|
Children:
|
||||||
|
MapPreview@SELECTED_MAP_PREVIEW:
|
||||||
|
X: 1
|
||||||
|
Y: 1
|
||||||
|
Width: PARENT_RIGHT - 2
|
||||||
|
Height: PARENT_BOTTOM - 2
|
||||||
|
Label@SELECTED_MAP:
|
||||||
|
Y: 172
|
||||||
|
Width: PARENT_RIGHT
|
||||||
|
Height: 25
|
||||||
|
Font: Bold
|
||||||
|
Align: Center
|
||||||
|
Label@SELECTED_IP:
|
||||||
|
Y: 187
|
||||||
|
Width: PARENT_RIGHT
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Center
|
||||||
|
Label@SELECTED_STATUS:
|
||||||
|
Y: 203
|
||||||
|
Width: PARENT_RIGHT
|
||||||
|
Height: 25
|
||||||
|
Font: TinyBold
|
||||||
|
Align: Center
|
||||||
|
Label@SELECTED_MOD_VERSION:
|
||||||
|
Y: 216
|
||||||
|
Width: PARENT_RIGHT
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Center
|
||||||
|
Label@SELECTED_PLAYERS:
|
||||||
|
Y: 229
|
||||||
|
Width: PARENT_RIGHT
|
||||||
|
Height: 25
|
||||||
|
Font: TinyBold
|
||||||
|
Align: Center
|
||||||
|
Button@JOIN_BUTTON:
|
||||||
|
Key: return
|
||||||
|
Y: 255
|
||||||
|
Width: PARENT_RIGHT
|
||||||
|
Height: 25
|
||||||
|
Text: Join
|
||||||
|
DropDownButton@FILTERS_DROPDOWNBUTTON:
|
||||||
|
X: 15
|
||||||
|
Y: PARENT_BOTTOM - 40
|
||||||
|
Width: 152
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Tiny
|
Text: Filter Games
|
||||||
Align: Center
|
Button@REFRESH_BUTTON:
|
||||||
Label@SELECTED_STATUS:
|
X: 172
|
||||||
Y: 203
|
Y: PARENT_BOTTOM - 40
|
||||||
Width: PARENT_RIGHT
|
Width: 100
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: TinyBold
|
Text: Refresh
|
||||||
Align: Center
|
Button@DIRECTCONNECT_BUTTON:
|
||||||
Label@SELECTED_MOD_VERSION:
|
X: 387
|
||||||
Y: 216
|
Y: PARENT_BOTTOM - 40
|
||||||
Width: PARENT_RIGHT
|
Width: 100
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Tiny
|
Text: Direct IP
|
||||||
Align: Center
|
Button@CREATE_BUTTON:
|
||||||
Label@SELECTED_PLAYERS:
|
X: 492
|
||||||
Y: 229
|
Y: PARENT_BOTTOM - 40
|
||||||
Width: PARENT_RIGHT
|
Width: 105
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: TinyBold
|
Text: Create
|
||||||
Align: Center
|
Button@BACK_BUTTON:
|
||||||
Button@JOIN_BUTTON:
|
Key: escape
|
||||||
Key: return
|
X: 0
|
||||||
X: PARENT_RIGHT - WIDTH
|
Y: PARENT_BOTTOM - 36
|
||||||
Y: 284
|
Width: 140
|
||||||
Width: 174
|
Height: 35
|
||||||
Height: 25
|
Text: Back
|
||||||
Text: Join
|
TooltipContainer@TOOLTIP_CONTAINER:
|
||||||
|
|
||||||
|
ScrollPanel@MULTIPLAYER_FILTER_PANEL:
|
||||||
|
Width: 147
|
||||||
|
Height: 130
|
||||||
|
Background: panel-black
|
||||||
|
Children:
|
||||||
|
Checkbox@WAITING_FOR_PLAYERS:
|
||||||
|
X: 5
|
||||||
|
Y: 5
|
||||||
|
Width: PARENT_RIGHT - 29
|
||||||
|
Height: 20
|
||||||
|
Text: Waiting
|
||||||
|
TextColor: 32CD32
|
||||||
|
Font: Regular
|
||||||
|
Checkbox@EMPTY:
|
||||||
|
X: 5
|
||||||
|
Y: 30
|
||||||
|
Width: PARENT_RIGHT - 29
|
||||||
|
Height: 20
|
||||||
|
Text: Empty
|
||||||
|
Font: Regular
|
||||||
|
Checkbox@PASSWORD_PROTECTED:
|
||||||
|
X: 5
|
||||||
|
Y: 55
|
||||||
|
Width: PARENT_RIGHT - 29
|
||||||
|
Height: 20
|
||||||
|
Text: Protected
|
||||||
|
TextColor: FF0000
|
||||||
|
Font: Regular
|
||||||
|
Checkbox@ALREADY_STARTED:
|
||||||
|
X: 5
|
||||||
|
Y: 80
|
||||||
|
Width: PARENT_RIGHT - 29
|
||||||
|
Height: 20
|
||||||
|
Text: Started
|
||||||
|
TextColor: FFA500
|
||||||
|
Font: Regular
|
||||||
|
Checkbox@INCOMPATIBLE_VERSION:
|
||||||
|
X: 5
|
||||||
|
Y: 105
|
||||||
|
Width: PARENT_RIGHT - 29
|
||||||
|
Height: 20
|
||||||
|
Text: Incompatible
|
||||||
|
TextColor: BEBEBE
|
||||||
|
Font: Regular
|
||||||
|
|||||||
@@ -1,100 +0,0 @@
|
|||||||
Container@MULTIPLAYER_PANEL:
|
|
||||||
Logic: MultiplayerLogic
|
|
||||||
X: (WINDOW_RIGHT - WIDTH) / 2
|
|
||||||
Y: (WINDOW_BOTTOM - 345) / 2
|
|
||||||
Width: 800
|
|
||||||
Height: 360
|
|
||||||
Children:
|
|
||||||
Label@TITLE:
|
|
||||||
Text: Multiplayer
|
|
||||||
Width: PARENT_RIGHT
|
|
||||||
Y: 0 - 25
|
|
||||||
Font: BigBold
|
|
||||||
Contrast: true
|
|
||||||
Align: Center
|
|
||||||
Background@bg:
|
|
||||||
Width: PARENT_RIGHT
|
|
||||||
Height: PARENT_BOTTOM - 35
|
|
||||||
Background: panel-black
|
|
||||||
Children:
|
|
||||||
DropDownButton@FILTERS_DROPDOWNBUTTON:
|
|
||||||
X: 15
|
|
||||||
Y: 284
|
|
||||||
Width: 152
|
|
||||||
Height: 25
|
|
||||||
Text: Filter Games
|
|
||||||
Button@REFRESH_BUTTON:
|
|
||||||
X: 172
|
|
||||||
Y: 284
|
|
||||||
Width: 100
|
|
||||||
Height: 25
|
|
||||||
Text: Refresh
|
|
||||||
Button@DIRECTCONNECT_BUTTON:
|
|
||||||
X: 387
|
|
||||||
Y: 284
|
|
||||||
Width: 100
|
|
||||||
Height: 25
|
|
||||||
Text: Direct IP
|
|
||||||
Button@CREATE_BUTTON:
|
|
||||||
X: 492
|
|
||||||
Y: 284
|
|
||||||
Width: 105
|
|
||||||
Height: 25
|
|
||||||
Text: Create
|
|
||||||
Container@TOP_PANELS_ROOT:
|
|
||||||
X: 15
|
|
||||||
Width: PARENT_RIGHT - 30
|
|
||||||
Height: PARENT_BOTTOM
|
|
||||||
TooltipContainer@TOOLTIP_CONTAINER:
|
|
||||||
Button@BACK_BUTTON:
|
|
||||||
Key: escape
|
|
||||||
X: 0
|
|
||||||
Y: PARENT_BOTTOM - 36
|
|
||||||
Width: 140
|
|
||||||
Height: 35
|
|
||||||
Text: Back
|
|
||||||
|
|
||||||
ScrollPanel@MULTIPLAYER_FILTER_PANEL:
|
|
||||||
Width: 147
|
|
||||||
Height: 130
|
|
||||||
Background: panel-black
|
|
||||||
Children:
|
|
||||||
Checkbox@WAITING_FOR_PLAYERS:
|
|
||||||
X: 5
|
|
||||||
Y: 5
|
|
||||||
Width: PARENT_RIGHT - 29
|
|
||||||
Height: 20
|
|
||||||
Text: Waiting
|
|
||||||
TextColor: 32CD32
|
|
||||||
Font: Regular
|
|
||||||
Checkbox@EMPTY:
|
|
||||||
X: 5
|
|
||||||
Y: 30
|
|
||||||
Width: PARENT_RIGHT - 29
|
|
||||||
Height: 20
|
|
||||||
Text: Empty
|
|
||||||
Font: Regular
|
|
||||||
Checkbox@PASSWORD_PROTECTED:
|
|
||||||
X: 5
|
|
||||||
Y: 55
|
|
||||||
Width: PARENT_RIGHT - 29
|
|
||||||
Height: 20
|
|
||||||
Text: Protected
|
|
||||||
TextColor: FF0000
|
|
||||||
Font: Regular
|
|
||||||
Checkbox@ALREADY_STARTED:
|
|
||||||
X: 5
|
|
||||||
Y: 80
|
|
||||||
Width: PARENT_RIGHT - 29
|
|
||||||
Height: 20
|
|
||||||
Text: Started
|
|
||||||
TextColor: FFA500
|
|
||||||
Font: Regular
|
|
||||||
Checkbox@INCOMPATIBLE_VERSION:
|
|
||||||
X: 5
|
|
||||||
Y: 105
|
|
||||||
Width: PARENT_RIGHT - 29
|
|
||||||
Height: 20
|
|
||||||
Text: Incompatible
|
|
||||||
TextColor: BEBEBE
|
|
||||||
Font: Regular
|
|
||||||
@@ -89,7 +89,6 @@ Assemblies:
|
|||||||
|
|
||||||
ChromeLayout:
|
ChromeLayout:
|
||||||
cnc|chrome/mainmenu.yaml
|
cnc|chrome/mainmenu.yaml
|
||||||
cnc|chrome/multiplayer.yaml
|
|
||||||
cnc|chrome/multiplayer-browser.yaml
|
cnc|chrome/multiplayer-browser.yaml
|
||||||
cnc|chrome/multiplayer-createserver.yaml
|
cnc|chrome/multiplayer-createserver.yaml
|
||||||
cnc|chrome/multiplayer-directconnect.yaml
|
cnc|chrome/multiplayer-directconnect.yaml
|
||||||
|
|||||||
@@ -1,9 +1,20 @@
|
|||||||
Container@MULTIPLAYER_BROWSER_PANEL:
|
Background@MULTIPLAYER_PANEL:
|
||||||
Width: PARENT_RIGHT
|
Logic: MultiplayerLogic
|
||||||
Height: PARENT_BOTTOM
|
X: (WINDOW_RIGHT - WIDTH) / 2
|
||||||
|
Y: (WINDOW_BOTTOM - HEIGHT) / 2
|
||||||
|
Width: 808
|
||||||
|
Height: 600
|
||||||
Children:
|
Children:
|
||||||
|
Label@TITLE:
|
||||||
|
Y: 15
|
||||||
|
Width: PARENT_RIGHT
|
||||||
|
Height: 25
|
||||||
|
Text: Multiplayer
|
||||||
|
Align: Center
|
||||||
|
Font: Bold
|
||||||
Container@LABEL_CONTAINER:
|
Container@LABEL_CONTAINER:
|
||||||
Y: 5
|
X: 20
|
||||||
|
Y: 42
|
||||||
Width: PARENT_RIGHT
|
Width: PARENT_RIGHT
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Children:
|
Children:
|
||||||
@@ -33,9 +44,10 @@ Container@MULTIPLAYER_BROWSER_PANEL:
|
|||||||
Text: Status
|
Text: Status
|
||||||
Font: Bold
|
Font: Bold
|
||||||
ScrollPanel@SERVER_LIST:
|
ScrollPanel@SERVER_LIST:
|
||||||
Y: 30
|
X: 20
|
||||||
|
Y: 67
|
||||||
Width: 583
|
Width: 583
|
||||||
Height: 279
|
Height: PARENT_BOTTOM - 119
|
||||||
TopBottomSpacing: 2
|
TopBottomSpacing: 2
|
||||||
Children:
|
Children:
|
||||||
ScrollItem@HEADER_TEMPLATE:
|
ScrollItem@HEADER_TEMPLATE:
|
||||||
@@ -79,15 +91,16 @@ Container@MULTIPLAYER_BROWSER_PANEL:
|
|||||||
Width: 50
|
Width: 50
|
||||||
Height: 25
|
Height: 25
|
||||||
Label@PROGRESS_LABEL:
|
Label@PROGRESS_LABEL:
|
||||||
Y: 30 + (249 - HEIGHT) / 2
|
X: 20
|
||||||
|
Y: 67 + (PARENT_BOTTOM - 119 - HEIGHT) / 2
|
||||||
Width: 582
|
Width: 582
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Align: Center
|
Align: Center
|
||||||
Visible: false
|
Visible: false
|
||||||
Container@SELECTED_SERVER:
|
Container@SELECTED_SERVER:
|
||||||
X: PARENT_RIGHT - WIDTH
|
X: PARENT_RIGHT - WIDTH - 20
|
||||||
Y: 30
|
Y: 67
|
||||||
Width: 174
|
Width: 174
|
||||||
Height: 280
|
Height: 280
|
||||||
Children:
|
Children:
|
||||||
@@ -131,11 +144,91 @@ Container@MULTIPLAYER_BROWSER_PANEL:
|
|||||||
Height: 25
|
Height: 25
|
||||||
Font: TinyBold
|
Font: TinyBold
|
||||||
Align: Center
|
Align: Center
|
||||||
Button@JOIN_BUTTON:
|
Button@JOIN_BUTTON:
|
||||||
Key: return
|
Key: return
|
||||||
X: PARENT_RIGHT - WIDTH
|
Y: 255
|
||||||
Y: 284
|
Width: PARENT_RIGHT
|
||||||
|
Height: 25
|
||||||
|
Text: Join
|
||||||
|
Font: Bold
|
||||||
|
DropDownButton@FILTERS_DROPDOWNBUTTON:
|
||||||
|
X: 20
|
||||||
|
Y: PARENT_BOTTOM - HEIGHT - 20
|
||||||
|
Width: 158
|
||||||
|
Height: 25
|
||||||
|
Text: Filter Games
|
||||||
|
Font: Bold
|
||||||
|
Button@REFRESH_BUTTON:
|
||||||
|
X: 182
|
||||||
|
Y: PARENT_BOTTOM - HEIGHT - 20
|
||||||
|
Width: 100
|
||||||
|
Height: 25
|
||||||
|
Text: Refresh
|
||||||
|
Font: Bold
|
||||||
|
Button@DIRECTCONNECT_BUTTON:
|
||||||
|
X: 398
|
||||||
|
Y: PARENT_BOTTOM - HEIGHT - 20
|
||||||
|
Width: 100
|
||||||
|
Height: 25
|
||||||
|
Text: Direct IP
|
||||||
|
Font: Bold
|
||||||
|
Button@CREATE_BUTTON:
|
||||||
|
X: 503
|
||||||
|
Y: PARENT_BOTTOM - HEIGHT - 20
|
||||||
|
Width: 100
|
||||||
|
Height: 25
|
||||||
|
Text: Create
|
||||||
|
Font: Bold
|
||||||
|
Button@BACK_BUTTON:
|
||||||
|
Key: escape
|
||||||
|
X: PARENT_RIGHT - WIDTH - 20
|
||||||
|
Y: PARENT_BOTTOM - HEIGHT - 20
|
||||||
Width: 174
|
Width: 174
|
||||||
Height: 25
|
Height: 25
|
||||||
Text: Join
|
Text: Back
|
||||||
Font: Bold
|
Font: Bold
|
||||||
|
TooltipContainer@TOOLTIP_CONTAINER:
|
||||||
|
|
||||||
|
ScrollPanel@MULTIPLAYER_FILTER_PANEL:
|
||||||
|
Width: 158
|
||||||
|
Height: 130
|
||||||
|
Children:
|
||||||
|
Checkbox@WAITING_FOR_PLAYERS:
|
||||||
|
X: 5
|
||||||
|
Y: 5
|
||||||
|
Width: PARENT_RIGHT - 29
|
||||||
|
Height: 20
|
||||||
|
Text: Waiting
|
||||||
|
TextColor: 32CD32
|
||||||
|
Font: Regular
|
||||||
|
Checkbox@EMPTY:
|
||||||
|
X: 5
|
||||||
|
Y: 30
|
||||||
|
Width: PARENT_RIGHT - 29
|
||||||
|
Height: 20
|
||||||
|
Text: Empty
|
||||||
|
Font: Regular
|
||||||
|
Checkbox@PASSWORD_PROTECTED:
|
||||||
|
X: 5
|
||||||
|
Y: 55
|
||||||
|
Width: PARENT_RIGHT - 29
|
||||||
|
Height: 20
|
||||||
|
Text: Protected
|
||||||
|
TextColor: FF0000
|
||||||
|
Font: Regular
|
||||||
|
Checkbox@ALREADY_STARTED:
|
||||||
|
X: 5
|
||||||
|
Y: 80
|
||||||
|
Width: PARENT_RIGHT - 29
|
||||||
|
Height: 20
|
||||||
|
Text: Started
|
||||||
|
TextColor: FFA500
|
||||||
|
Font: Regular
|
||||||
|
Checkbox@INCOMPATIBLE_VERSION:
|
||||||
|
X: 5
|
||||||
|
Y: 105
|
||||||
|
Width: PARENT_RIGHT - 29
|
||||||
|
Height: 20
|
||||||
|
Text: Incompatible
|
||||||
|
TextColor: BEBEBE
|
||||||
|
Font: Regular
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
Background@MULTIPLAYER_PANEL:
|
|
||||||
Logic: MultiplayerLogic
|
|
||||||
X: (WINDOW_RIGHT - WIDTH) / 2
|
|
||||||
Y: (WINDOW_BOTTOM - HEIGHT) / 2
|
|
||||||
Width: 808
|
|
||||||
Height: 395
|
|
||||||
Children:
|
|
||||||
Label@TITLE:
|
|
||||||
Y: 15
|
|
||||||
Width: PARENT_RIGHT
|
|
||||||
Height: 25
|
|
||||||
Text: Multiplayer
|
|
||||||
Align: Center
|
|
||||||
Font: Bold
|
|
||||||
DropDownButton@FILTERS_DROPDOWNBUTTON:
|
|
||||||
X: 20
|
|
||||||
Y: PARENT_BOTTOM - HEIGHT - 20
|
|
||||||
Width: 158
|
|
||||||
Height: 25
|
|
||||||
Text: Filter Games
|
|
||||||
Font: Bold
|
|
||||||
Button@REFRESH_BUTTON:
|
|
||||||
X: 182
|
|
||||||
Y: PARENT_BOTTOM - HEIGHT - 20
|
|
||||||
Width: 100
|
|
||||||
Height: 25
|
|
||||||
Text: Refresh
|
|
||||||
Font: Bold
|
|
||||||
Button@DIRECTCONNECT_BUTTON:
|
|
||||||
X: 398
|
|
||||||
Y: PARENT_BOTTOM - HEIGHT - 20
|
|
||||||
Width: 100
|
|
||||||
Height: 25
|
|
||||||
Text: Direct IP
|
|
||||||
Font: Bold
|
|
||||||
Button@CREATE_BUTTON:
|
|
||||||
X: 503
|
|
||||||
Y: PARENT_BOTTOM - HEIGHT - 20
|
|
||||||
Width: 100
|
|
||||||
Height: 25
|
|
||||||
Text: Create
|
|
||||||
Font: Bold
|
|
||||||
Container@TOP_PANELS_ROOT:
|
|
||||||
X: 20
|
|
||||||
Y: 37
|
|
||||||
Width: PARENT_RIGHT - 40
|
|
||||||
Height: PARENT_BOTTOM - 87
|
|
||||||
TooltipContainer@TOOLTIP_CONTAINER:
|
|
||||||
Button@BACK_BUTTON:
|
|
||||||
Key: escape
|
|
||||||
X: PARENT_RIGHT - WIDTH - 20
|
|
||||||
Y: PARENT_BOTTOM - HEIGHT - 20
|
|
||||||
Width: 174
|
|
||||||
Height: 25
|
|
||||||
Text: Back
|
|
||||||
Font: Bold
|
|
||||||
|
|
||||||
ScrollPanel@MULTIPLAYER_FILTER_PANEL:
|
|
||||||
Width: 158
|
|
||||||
Height: 130
|
|
||||||
Children:
|
|
||||||
Checkbox@WAITING_FOR_PLAYERS:
|
|
||||||
X: 5
|
|
||||||
Y: 5
|
|
||||||
Width: PARENT_RIGHT - 29
|
|
||||||
Height: 20
|
|
||||||
Text: Waiting
|
|
||||||
TextColor: 32CD32
|
|
||||||
Font: Regular
|
|
||||||
Checkbox@EMPTY:
|
|
||||||
X: 5
|
|
||||||
Y: 30
|
|
||||||
Width: PARENT_RIGHT - 29
|
|
||||||
Height: 20
|
|
||||||
Text: Empty
|
|
||||||
Font: Regular
|
|
||||||
Checkbox@PASSWORD_PROTECTED:
|
|
||||||
X: 5
|
|
||||||
Y: 55
|
|
||||||
Width: PARENT_RIGHT - 29
|
|
||||||
Height: 20
|
|
||||||
Text: Protected
|
|
||||||
TextColor: FF0000
|
|
||||||
Font: Regular
|
|
||||||
Checkbox@ALREADY_STARTED:
|
|
||||||
X: 5
|
|
||||||
Y: 80
|
|
||||||
Width: PARENT_RIGHT - 29
|
|
||||||
Height: 20
|
|
||||||
Text: Started
|
|
||||||
TextColor: FFA500
|
|
||||||
Font: Regular
|
|
||||||
Checkbox@INCOMPATIBLE_VERSION:
|
|
||||||
X: 5
|
|
||||||
Y: 105
|
|
||||||
Width: PARENT_RIGHT - 29
|
|
||||||
Height: 20
|
|
||||||
Text: Incompatible
|
|
||||||
TextColor: BEBEBE
|
|
||||||
Font: Regular
|
|
||||||
@@ -90,7 +90,6 @@ ChromeLayout:
|
|||||||
common|chrome/lobby-kickdialogs.yaml
|
common|chrome/lobby-kickdialogs.yaml
|
||||||
common|chrome/color-picker.yaml
|
common|chrome/color-picker.yaml
|
||||||
common|chrome/map-chooser.yaml
|
common|chrome/map-chooser.yaml
|
||||||
common|chrome/multiplayer.yaml
|
|
||||||
common|chrome/multiplayer-browser.yaml
|
common|chrome/multiplayer-browser.yaml
|
||||||
common|chrome/multiplayer-createserver.yaml
|
common|chrome/multiplayer-createserver.yaml
|
||||||
common|chrome/multiplayer-directconnect.yaml
|
common|chrome/multiplayer-directconnect.yaml
|
||||||
|
|||||||
@@ -105,7 +105,6 @@ ChromeLayout:
|
|||||||
common|chrome/lobby-kickdialogs.yaml
|
common|chrome/lobby-kickdialogs.yaml
|
||||||
common|chrome/color-picker.yaml
|
common|chrome/color-picker.yaml
|
||||||
common|chrome/map-chooser.yaml
|
common|chrome/map-chooser.yaml
|
||||||
common|chrome/multiplayer.yaml
|
|
||||||
common|chrome/multiplayer-browser.yaml
|
common|chrome/multiplayer-browser.yaml
|
||||||
common|chrome/multiplayer-createserver.yaml
|
common|chrome/multiplayer-createserver.yaml
|
||||||
common|chrome/multiplayer-directconnect.yaml
|
common|chrome/multiplayer-directconnect.yaml
|
||||||
|
|||||||
@@ -153,7 +153,6 @@ ChromeLayout:
|
|||||||
common|chrome/lobby-kickdialogs.yaml
|
common|chrome/lobby-kickdialogs.yaml
|
||||||
ts|chrome/color-picker.yaml
|
ts|chrome/color-picker.yaml
|
||||||
common|chrome/map-chooser.yaml
|
common|chrome/map-chooser.yaml
|
||||||
common|chrome/multiplayer.yaml
|
|
||||||
common|chrome/multiplayer-browser.yaml
|
common|chrome/multiplayer-browser.yaml
|
||||||
common|chrome/multiplayer-createserver.yaml
|
common|chrome/multiplayer-createserver.yaml
|
||||||
common|chrome/multiplayer-directconnect.yaml
|
common|chrome/multiplayer-directconnect.yaml
|
||||||
|
|||||||
Reference in New Issue
Block a user