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);
SyncLobbyInfo();
if (conns.Count > 0 && conns.All(c => GetClient(c).State == Session.ClientState.Ready))
InterpretCommand(conn, "startgame");
return true;
}},
{ "startgame",
s =>
{
if (conns.Count > 0 && conns.All(c => GetClient(c).State == Session.ClientState.Ready))
{
GameStarted = true;
foreach( var c in conns )
foreach( var d in conns )
DispatchOrdersToClient( c, d.PlayerIndex, 0x7FFFFFFF, new byte[] { 0xBF } );
GameStarted = true;
foreach( var c in conns )
foreach( var d in conns )
DispatchOrdersToClient( c, d.PlayerIndex, 0x7FFFFFFF, new byte[] { 0xBF } );
DispatchOrders(null, 0,
new ServerOrder("StartGame", "").Serialize());
DispatchOrders(null, 0,
new ServerOrder("StartGame", "").Serialize());
PingMasterServer();
}
PingMasterServer();
return true;
}},
{ "name",

View File

@@ -54,7 +54,12 @@ namespace OpenRA.Widgets.Delegates
break;
case ConnectionState.Connected:
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();
break;
}

View File

@@ -84,17 +84,8 @@ namespace OpenRA.Widgets.Delegates
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");
lockTeamsCheckbox.IsVisible = () => true;
lockTeamsCheckbox.IsVisible = () => lockTeamsCheckbox.Visible && true;
lockTeamsCheckbox.Checked = () => Game.LobbyInfo.GlobalSettings.LockTeams;
lockTeamsCheckbox.OnMouseDown = mi =>
{
@@ -103,6 +94,18 @@ namespace OpenRA.Widgets.Delegates
"lockteams {0}".F(!Game.LobbyInfo.GlobalSettings.LockTeams)));
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 += UpdatePlayerList;
Game.AddChatLine += lobby.GetWidget<ChatDisplayWidget>("CHAT_DISPLAY").AddLine;

View File

@@ -205,8 +205,8 @@ Container@ROOT:
Button@CHANGEMAP_BUTTON:
Id:CHANGEMAP_BUTTON
Visible:true
X:PARENT_RIGHT-140
Y:300
X:PARENT_RIGHT-160
Y:PARENT_BOTTOM-269
Width:120
Height:25
Text:Change Map
@@ -215,30 +215,30 @@ Container@ROOT:
Id:CHAT_DISPLAY
Visible:true
X:20
Y:PARENT_BOTTOM - 269
Width:PARENT_RIGHT - 40
Height:190
Notification: beepy2.aud
Height:230
Y:PARENT_BOTTOM - 289
Width:PARENT_RIGHT - 200
Label@LABEL_CHATTYPE:
Id:LABEL_CHATTYPE
Width:65
Height:25
X:0
Y:PARENT_BOTTOM - 75
Y:PARENT_BOTTOM - 50
Text:Chat:
Align:Right
TextField@CHAT_TEXTFIELD:
Id:CHAT_TEXTFIELD
Visible:true
X:70
Y:PARENT_BOTTOM - 74
Width:710
Y:PARENT_BOTTOM - 49
Width:550
Height:25
Button@START_GAME_BUTTON:
Id:START_GAME_BUTTON
Visible:true
X:PARENT_RIGHT-140
Y:PARENT_BOTTOM-43
X:PARENT_RIGHT-160
Y:PARENT_BOTTOM-49
Width:120
Height:25
Text:Start Game
@@ -246,8 +246,8 @@ Container@ROOT:
Button@DISCONNECT_BUTTON:
Id:DISCONNECT_BUTTON
Visible:true
X:20
Y:PARENT_BOTTOM-43
X:PARENT_RIGHT-160
Y:PARENT_BOTTOM-189
Width:120
Height:25
Text:Disconnect
@@ -255,8 +255,8 @@ Container@ROOT:
Checkbox@LOCKTEAMS_CHECKBOX:
Id:LOCKTEAMS_CHECKBOX
Visible: true
X: PARENT_RIGHT-300
Y: PARENT_BOTTOM-38
X: PARENT_RIGHT-160
Y: PARENT_BOTTOM-229
Width: 80
Height: 20
Text: Lock Teams

View File

@@ -205,8 +205,8 @@ Container@ROOT:
Button@CHANGEMAP_BUTTON:
Id:CHANGEMAP_BUTTON
Visible:true
X:PARENT_RIGHT-140
Y:300
X:PARENT_RIGHT-160
Y:PARENT_BOTTOM-269
Width:120
Height:25
Text:Change Map
@@ -215,30 +215,30 @@ Container@ROOT:
Id:CHAT_DISPLAY
Visible:true
X:20
Y:PARENT_BOTTOM - 269
Width:PARENT_RIGHT - 40
Height:190
Height:230
Y:PARENT_BOTTOM - 289
Width:PARENT_RIGHT - 200
Notification: rabeep1.aud
Label@LABEL_CHATTYPE:
Id:LABEL_CHATTYPE
Width:65
Height:25
X:0
Y:PARENT_BOTTOM - 75
Y:PARENT_BOTTOM - 50
Text:Chat:
Align:Right
TextField@CHAT_TEXTFIELD:
Id:CHAT_TEXTFIELD
Visible:true
X:70
Y:PARENT_BOTTOM - 74
Width:710
Y:PARENT_BOTTOM - 49
Width:550
Height:25
Button@START_GAME_BUTTON:
Id:START_GAME_BUTTON
Visible:true
X:PARENT_RIGHT-140
Y:PARENT_BOTTOM-43
X:PARENT_RIGHT-160
Y:PARENT_BOTTOM-49
Width:120
Height:25
Text:Start Game
@@ -246,8 +246,8 @@ Container@ROOT:
Button@DISCONNECT_BUTTON:
Id:DISCONNECT_BUTTON
Visible:true
X:20
Y:PARENT_BOTTOM-43
X:PARENT_RIGHT-160
Y:PARENT_BOTTOM-189
Width:120
Height:25
Text:Disconnect
@@ -255,8 +255,8 @@ Container@ROOT:
Checkbox@LOCKTEAMS_CHECKBOX:
Id:LOCKTEAMS_CHECKBOX
Visible: true
X: PARENT_RIGHT-300
Y: PARENT_BOTTOM-38
X: PARENT_RIGHT-160
Y: PARENT_BOTTOM-229
Width: 80
Height: 20
Text: Lock Teams