layout tidyup - start game now forces game start, ready checkboxes behave as before.

This commit is contained in:
alzeih
2010-07-25 22:16:21 +12:00
parent 26b5fbe9bb
commit 5f357288ee
5 changed files with 59 additions and 50 deletions

View File

@@ -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",

View File

@@ -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;
} }

View File

@@ -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;

View File

@@ -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

View File

@@ -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