layout tidyup - start game now forces game start, ready checkboxes behave as before.
This commit is contained in:
@@ -240,23 +240,24 @@ namespace OpenRA.Server
|
|||||||
conn.socket.RemoteEndPoint, client.State);
|
conn.socket.RemoteEndPoint, client.State);
|
||||||
|
|
||||||
SyncLobbyInfo();
|
SyncLobbyInfo();
|
||||||
|
|
||||||
|
if (conns.Count > 0 && conns.All(c => GetClient(c).State == Session.ClientState.Ready))
|
||||||
|
InterpretCommand(conn, "startgame");
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}},
|
}},
|
||||||
{ "startgame",
|
{ "startgame",
|
||||||
s =>
|
s =>
|
||||||
{
|
{
|
||||||
if (conns.Count > 0 && conns.All(c => GetClient(c).State == Session.ClientState.Ready))
|
GameStarted = true;
|
||||||
{
|
foreach( var c in conns )
|
||||||
GameStarted = true;
|
foreach( var d in conns )
|
||||||
foreach( var c in conns )
|
DispatchOrdersToClient( c, d.PlayerIndex, 0x7FFFFFFF, new byte[] { 0xBF } );
|
||||||
foreach( var d in conns )
|
|
||||||
DispatchOrdersToClient( c, d.PlayerIndex, 0x7FFFFFFF, new byte[] { 0xBF } );
|
|
||||||
|
|
||||||
DispatchOrders(null, 0,
|
DispatchOrders(null, 0,
|
||||||
new ServerOrder("StartGame", "").Serialize());
|
new ServerOrder("StartGame", "").Serialize());
|
||||||
|
|
||||||
PingMasterServer();
|
PingMasterServer();
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}},
|
}},
|
||||||
{ "name",
|
{ "name",
|
||||||
|
|||||||
@@ -54,7 +54,12 @@ namespace OpenRA.Widgets.Delegates
|
|||||||
break;
|
break;
|
||||||
case ConnectionState.Connected:
|
case ConnectionState.Connected:
|
||||||
r.OpenWindow("SERVER_LOBBY");
|
r.OpenWindow("SERVER_LOBBY");
|
||||||
r.GetWidget("SERVER_LOBBY").GetWidget<ChatDisplayWidget>("CHAT_DISPLAY").ClearChat();
|
|
||||||
|
var lobby = r.GetWidget("SERVER_LOBBY");
|
||||||
|
lobby.GetWidget<ChatDisplayWidget>("CHAT_DISPLAY").ClearChat();
|
||||||
|
lobby.GetWidget("CHANGEMAP_BUTTON").Visible = true;
|
||||||
|
lobby.GetWidget("LOCKTEAMS_CHECKBOX").Visible = true;
|
||||||
|
lobby.GetWidget("DISCONNECT_BUTTON").Visible = true;
|
||||||
r.GetWidget("INGAME_ROOT").GetWidget<ChatDisplayWidget>("CHAT_DISPLAY").ClearChat();
|
r.GetWidget("INGAME_ROOT").GetWidget<ChatDisplayWidget>("CHAT_DISPLAY").ClearChat();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,17 +84,8 @@ namespace OpenRA.Widgets.Delegates
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var startGameButton = lobby.GetWidget("START_GAME_BUTTON");
|
|
||||||
startGameButton.OnMouseUp = mi =>
|
|
||||||
{
|
|
||||||
mapButton.Visible = false;
|
|
||||||
Game.IssueOrder(Order.Command("startgame"));
|
|
||||||
return true;
|
|
||||||
};
|
|
||||||
startGameButton.IsVisible = () => Game.IsHost && Game.LobbyInfo.Clients.All(c => c.State == Session.ClientState.Ready);
|
|
||||||
|
|
||||||
var lockTeamsCheckbox = lobby.GetWidget<CheckboxWidget>("LOCKTEAMS_CHECKBOX");
|
var lockTeamsCheckbox = lobby.GetWidget<CheckboxWidget>("LOCKTEAMS_CHECKBOX");
|
||||||
lockTeamsCheckbox.IsVisible = () => true;
|
lockTeamsCheckbox.IsVisible = () => lockTeamsCheckbox.Visible && true;
|
||||||
lockTeamsCheckbox.Checked = () => Game.LobbyInfo.GlobalSettings.LockTeams;
|
lockTeamsCheckbox.Checked = () => Game.LobbyInfo.GlobalSettings.LockTeams;
|
||||||
lockTeamsCheckbox.OnMouseDown = mi =>
|
lockTeamsCheckbox.OnMouseDown = mi =>
|
||||||
{
|
{
|
||||||
@@ -103,6 +94,18 @@ namespace OpenRA.Widgets.Delegates
|
|||||||
"lockteams {0}".F(!Game.LobbyInfo.GlobalSettings.LockTeams)));
|
"lockteams {0}".F(!Game.LobbyInfo.GlobalSettings.LockTeams)));
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var startGameButton = lobby.GetWidget("START_GAME_BUTTON");
|
||||||
|
startGameButton.OnMouseUp = mi =>
|
||||||
|
{
|
||||||
|
mapButton.Visible = false;
|
||||||
|
disconnectButton.Visible = false;
|
||||||
|
lockTeamsCheckbox.Visible = false;
|
||||||
|
Game.IssueOrder(Order.Command("startgame"));
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
startGameButton.IsVisible = () => Game.IsHost;
|
||||||
|
|
||||||
Game.LobbyInfoChanged += JoinedServer;
|
Game.LobbyInfoChanged += JoinedServer;
|
||||||
Game.LobbyInfoChanged += UpdatePlayerList;
|
Game.LobbyInfoChanged += UpdatePlayerList;
|
||||||
Game.AddChatLine += lobby.GetWidget<ChatDisplayWidget>("CHAT_DISPLAY").AddLine;
|
Game.AddChatLine += lobby.GetWidget<ChatDisplayWidget>("CHAT_DISPLAY").AddLine;
|
||||||
|
|||||||
@@ -205,8 +205,8 @@ Container@ROOT:
|
|||||||
Button@CHANGEMAP_BUTTON:
|
Button@CHANGEMAP_BUTTON:
|
||||||
Id:CHANGEMAP_BUTTON
|
Id:CHANGEMAP_BUTTON
|
||||||
Visible:true
|
Visible:true
|
||||||
X:PARENT_RIGHT-140
|
X:PARENT_RIGHT-160
|
||||||
Y:300
|
Y:PARENT_BOTTOM-269
|
||||||
Width:120
|
Width:120
|
||||||
Height:25
|
Height:25
|
||||||
Text:Change Map
|
Text:Change Map
|
||||||
@@ -215,30 +215,30 @@ Container@ROOT:
|
|||||||
Id:CHAT_DISPLAY
|
Id:CHAT_DISPLAY
|
||||||
Visible:true
|
Visible:true
|
||||||
X:20
|
X:20
|
||||||
Y:PARENT_BOTTOM - 269
|
|
||||||
Width:PARENT_RIGHT - 40
|
|
||||||
Height:190
|
|
||||||
Notification: beepy2.aud
|
Notification: beepy2.aud
|
||||||
|
Height:230
|
||||||
|
Y:PARENT_BOTTOM - 289
|
||||||
|
Width:PARENT_RIGHT - 200
|
||||||
Label@LABEL_CHATTYPE:
|
Label@LABEL_CHATTYPE:
|
||||||
Id:LABEL_CHATTYPE
|
Id:LABEL_CHATTYPE
|
||||||
Width:65
|
Width:65
|
||||||
Height:25
|
Height:25
|
||||||
X:0
|
X:0
|
||||||
Y:PARENT_BOTTOM - 75
|
Y:PARENT_BOTTOM - 50
|
||||||
Text:Chat:
|
Text:Chat:
|
||||||
Align:Right
|
Align:Right
|
||||||
TextField@CHAT_TEXTFIELD:
|
TextField@CHAT_TEXTFIELD:
|
||||||
Id:CHAT_TEXTFIELD
|
Id:CHAT_TEXTFIELD
|
||||||
Visible:true
|
Visible:true
|
||||||
X:70
|
X:70
|
||||||
Y:PARENT_BOTTOM - 74
|
Y:PARENT_BOTTOM - 49
|
||||||
Width:710
|
Width:550
|
||||||
Height:25
|
Height:25
|
||||||
Button@START_GAME_BUTTON:
|
Button@START_GAME_BUTTON:
|
||||||
Id:START_GAME_BUTTON
|
Id:START_GAME_BUTTON
|
||||||
Visible:true
|
Visible:true
|
||||||
X:PARENT_RIGHT-140
|
X:PARENT_RIGHT-160
|
||||||
Y:PARENT_BOTTOM-43
|
Y:PARENT_BOTTOM-49
|
||||||
Width:120
|
Width:120
|
||||||
Height:25
|
Height:25
|
||||||
Text:Start Game
|
Text:Start Game
|
||||||
@@ -246,8 +246,8 @@ Container@ROOT:
|
|||||||
Button@DISCONNECT_BUTTON:
|
Button@DISCONNECT_BUTTON:
|
||||||
Id:DISCONNECT_BUTTON
|
Id:DISCONNECT_BUTTON
|
||||||
Visible:true
|
Visible:true
|
||||||
X:20
|
X:PARENT_RIGHT-160
|
||||||
Y:PARENT_BOTTOM-43
|
Y:PARENT_BOTTOM-189
|
||||||
Width:120
|
Width:120
|
||||||
Height:25
|
Height:25
|
||||||
Text:Disconnect
|
Text:Disconnect
|
||||||
@@ -255,8 +255,8 @@ Container@ROOT:
|
|||||||
Checkbox@LOCKTEAMS_CHECKBOX:
|
Checkbox@LOCKTEAMS_CHECKBOX:
|
||||||
Id:LOCKTEAMS_CHECKBOX
|
Id:LOCKTEAMS_CHECKBOX
|
||||||
Visible: true
|
Visible: true
|
||||||
X: PARENT_RIGHT-300
|
X: PARENT_RIGHT-160
|
||||||
Y: PARENT_BOTTOM-38
|
Y: PARENT_BOTTOM-229
|
||||||
Width: 80
|
Width: 80
|
||||||
Height: 20
|
Height: 20
|
||||||
Text: Lock Teams
|
Text: Lock Teams
|
||||||
|
|||||||
@@ -205,8 +205,8 @@ Container@ROOT:
|
|||||||
Button@CHANGEMAP_BUTTON:
|
Button@CHANGEMAP_BUTTON:
|
||||||
Id:CHANGEMAP_BUTTON
|
Id:CHANGEMAP_BUTTON
|
||||||
Visible:true
|
Visible:true
|
||||||
X:PARENT_RIGHT-140
|
X:PARENT_RIGHT-160
|
||||||
Y:300
|
Y:PARENT_BOTTOM-269
|
||||||
Width:120
|
Width:120
|
||||||
Height:25
|
Height:25
|
||||||
Text:Change Map
|
Text:Change Map
|
||||||
@@ -215,30 +215,30 @@ Container@ROOT:
|
|||||||
Id:CHAT_DISPLAY
|
Id:CHAT_DISPLAY
|
||||||
Visible:true
|
Visible:true
|
||||||
X:20
|
X:20
|
||||||
Y:PARENT_BOTTOM - 269
|
Height:230
|
||||||
Width:PARENT_RIGHT - 40
|
Y:PARENT_BOTTOM - 289
|
||||||
Height:190
|
Width:PARENT_RIGHT - 200
|
||||||
Notification: rabeep1.aud
|
Notification: rabeep1.aud
|
||||||
Label@LABEL_CHATTYPE:
|
Label@LABEL_CHATTYPE:
|
||||||
Id:LABEL_CHATTYPE
|
Id:LABEL_CHATTYPE
|
||||||
Width:65
|
Width:65
|
||||||
Height:25
|
Height:25
|
||||||
X:0
|
X:0
|
||||||
Y:PARENT_BOTTOM - 75
|
Y:PARENT_BOTTOM - 50
|
||||||
Text:Chat:
|
Text:Chat:
|
||||||
Align:Right
|
Align:Right
|
||||||
TextField@CHAT_TEXTFIELD:
|
TextField@CHAT_TEXTFIELD:
|
||||||
Id:CHAT_TEXTFIELD
|
Id:CHAT_TEXTFIELD
|
||||||
Visible:true
|
Visible:true
|
||||||
X:70
|
X:70
|
||||||
Y:PARENT_BOTTOM - 74
|
Y:PARENT_BOTTOM - 49
|
||||||
Width:710
|
Width:550
|
||||||
Height:25
|
Height:25
|
||||||
Button@START_GAME_BUTTON:
|
Button@START_GAME_BUTTON:
|
||||||
Id:START_GAME_BUTTON
|
Id:START_GAME_BUTTON
|
||||||
Visible:true
|
Visible:true
|
||||||
X:PARENT_RIGHT-140
|
X:PARENT_RIGHT-160
|
||||||
Y:PARENT_BOTTOM-43
|
Y:PARENT_BOTTOM-49
|
||||||
Width:120
|
Width:120
|
||||||
Height:25
|
Height:25
|
||||||
Text:Start Game
|
Text:Start Game
|
||||||
@@ -246,8 +246,8 @@ Container@ROOT:
|
|||||||
Button@DISCONNECT_BUTTON:
|
Button@DISCONNECT_BUTTON:
|
||||||
Id:DISCONNECT_BUTTON
|
Id:DISCONNECT_BUTTON
|
||||||
Visible:true
|
Visible:true
|
||||||
X:20
|
X:PARENT_RIGHT-160
|
||||||
Y:PARENT_BOTTOM-43
|
Y:PARENT_BOTTOM-189
|
||||||
Width:120
|
Width:120
|
||||||
Height:25
|
Height:25
|
||||||
Text:Disconnect
|
Text:Disconnect
|
||||||
@@ -255,8 +255,8 @@ Container@ROOT:
|
|||||||
Checkbox@LOCKTEAMS_CHECKBOX:
|
Checkbox@LOCKTEAMS_CHECKBOX:
|
||||||
Id:LOCKTEAMS_CHECKBOX
|
Id:LOCKTEAMS_CHECKBOX
|
||||||
Visible: true
|
Visible: true
|
||||||
X: PARENT_RIGHT-300
|
X: PARENT_RIGHT-160
|
||||||
Y: PARENT_BOTTOM-38
|
Y: PARENT_BOTTOM-229
|
||||||
Width: 80
|
Width: 80
|
||||||
Height: 20
|
Height: 20
|
||||||
Text: Lock Teams
|
Text: Lock Teams
|
||||||
|
|||||||
Reference in New Issue
Block a user