Make the lobby teamchat selector match the in-game selector.

This commit is contained in:
Paul Chote
2018-09-09 04:25:16 +01:00
committed by abcdefg30
parent 7454427b13
commit 9e85aefca8
3 changed files with 35 additions and 25 deletions

View File

@@ -57,10 +57,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
readonly TabCompletionLogic tabCompletion = new TabCompletionLogic(); readonly TabCompletionLogic tabCompletion = new TabCompletionLogic();
readonly LabelWidget chatLabel;
MapPreview map; MapPreview map;
bool addBotOnMapLoad; bool addBotOnMapLoad;
bool disableTeamChat;
bool teamChat; bool teamChat;
readonly string chatLineSound = ChromeMetrics.Get<string>("ChatLineSound"); readonly string chatLineSound = ChromeMetrics.Get<string>("ChatLineSound");
@@ -386,7 +385,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic
if (skirmishMode) if (skirmishMode)
disconnectButton.Text = "Back"; disconnectButton.Text = "Back";
chatLabel = lobby.Get<LabelWidget>("LABEL_CHATTYPE"); var chatMode = lobby.Get<ButtonWidget>("CHAT_MODE");
chatMode.GetText = () => teamChat ? "Team" : "All";
chatMode.OnClick = () => teamChat ^= true;
chatMode.IsDisabled = () => disableTeamChat;
var chatTextField = lobby.Get<TextFieldWidget>("CHAT_TEXTFIELD"); var chatTextField = lobby.Get<TextFieldWidget>("CHAT_TEXTFIELD");
chatTextField.MaxLength = UnitOrders.ChatMessageMaxLength; chatTextField.MaxLength = UnitOrders.ChatMessageMaxLength;
@@ -483,8 +486,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
bool SwitchTeamChat() bool SwitchTeamChat()
{ {
teamChat ^= true; if (!disableTeamChat)
chatLabel.Text = teamChat ? "Team:" : "Chat:"; teamChat ^= true;
return true; return true;
} }
@@ -546,6 +549,15 @@ namespace OpenRA.Mods.Common.Widgets.Logic
if (orderManager.LocalClient == null) if (orderManager.LocalClient == null)
return; return;
disableTeamChat = orderManager.LocalClient.Team == 0 ||
!orderManager.LobbyInfo.Clients.Any(c =>
c != orderManager.LocalClient &&
c.Bot == null &&
c.Team == orderManager.LocalClient.Team);
if (disableTeamChat)
teamChat = false;
var isHost = Game.IsHost; var isHost = Game.IsHost;
var idx = 0; var idx = 0;
foreach (var kv in orderManager.LobbyInfo.Slots) foreach (var kv in orderManager.LobbyInfo.Slots)

View File

@@ -124,18 +124,17 @@ Container@SERVER_LOBBY:
WordWrap: true WordWrap: true
VAlign: Top VAlign: Top
Shadow: True Shadow: True
TextField@CHAT_TEXTFIELD: Button@CHAT_MODE:
Y: PARENT_BOTTOM - HEIGHT Y: PARENT_BOTTOM - HEIGHT
Width: PARENT_RIGHT Width: 50
Height: 25
Text: Team
Font: Bold
TextField@CHAT_TEXTFIELD:
X: 55
Y: PARENT_BOTTOM - HEIGHT
Width: PARENT_RIGHT - 55
Height: 25 Height: 25
LeftMargin: 50
Children:
Label@LABEL_CHATTYPE:
Y: 0 - 1
Width: 45
Height: 25
Align: Right
Text: Chat:
Button@DISCONNECT_BUTTON: Button@DISCONNECT_BUTTON:
Y: PARENT_BOTTOM - 36 Y: PARENT_BOTTOM - 36
Width: 140 Width: 140

View File

@@ -127,18 +127,17 @@ Background@SERVER_LOBBY:
WordWrap: true WordWrap: true
VAlign: Top VAlign: Top
Shadow: True Shadow: True
TextField@CHAT_TEXTFIELD: Button@CHAT_MODE:
Y: PARENT_BOTTOM - HEIGHT Y: PARENT_BOTTOM - HEIGHT
Width: PARENT_RIGHT - 260 Width: 50
Height: 25
Text: Team
Font: Bold
TextField@CHAT_TEXTFIELD:
X: 55
Y: PARENT_BOTTOM - HEIGHT
Width: PARENT_RIGHT - 260 - 55
Height: 25 Height: 25
LeftMargin: 50
Children:
Label@LABEL_CHATTYPE:
Y: 0 - 1
Width: 45
Height: 25
Align: Right
Text: Chat:
Button@START_GAME_BUTTON: Button@START_GAME_BUTTON:
X: PARENT_RIGHT - WIDTH - 150 X: PARENT_RIGHT - WIDTH - 150
Y: PARENT_BOTTOM - HEIGHT - 20 Y: PARENT_BOTTOM - HEIGHT - 20