Always update player info on server join
This commit is contained in:
@@ -161,6 +161,9 @@ namespace OpenRA
|
|||||||
CurrentHost = host;
|
CurrentHost = host;
|
||||||
CurrentPort = port;
|
CurrentPort = port;
|
||||||
|
|
||||||
|
lastConnectionState = ConnectionState.PreConnecting;
|
||||||
|
ConnectionStateChanged();
|
||||||
|
|
||||||
orderManager = new OrderManager(new NetworkConnection(host, port), ChooseReplayFilename());
|
orderManager = new OrderManager(new NetworkConnection(host, port), ChooseReplayFilename());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,6 +174,9 @@ namespace OpenRA
|
|||||||
|
|
||||||
static void JoinLocal()
|
static void JoinLocal()
|
||||||
{
|
{
|
||||||
|
lastConnectionState = ConnectionState.PreConnecting;
|
||||||
|
ConnectionStateChanged();
|
||||||
|
|
||||||
if (orderManager != null) orderManager.Dispose();
|
if (orderManager != null) orderManager.Dispose();
|
||||||
orderManager = new OrderManager(new EchoConnection());
|
orderManager = new OrderManager(new EchoConnection());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -136,13 +136,14 @@ namespace OpenRA.Server
|
|||||||
newConn.socket.Send(BitConverter.GetBytes(newConn.PlayerIndex));
|
newConn.socket.Send(BitConverter.GetBytes(newConn.PlayerIndex));
|
||||||
conns.Add(newConn);
|
conns.Add(newConn);
|
||||||
|
|
||||||
|
var defaults = new GameRules.UserSettings();
|
||||||
lobbyInfo.Clients.Add(
|
lobbyInfo.Clients.Add(
|
||||||
new Session.Client()
|
new Session.Client()
|
||||||
{
|
{
|
||||||
Index = newConn.PlayerIndex,
|
Index = newConn.PlayerIndex,
|
||||||
Color1 = System.Drawing.Color.FromArgb(246,214,121),
|
Color1 = defaults.PlayerColor1,
|
||||||
Color2 = System.Drawing.Color.FromArgb(40,32,8),
|
Color2 = defaults.PlayerColor2,
|
||||||
Name = "Player {0}".F(1 + newConn.PlayerIndex),
|
Name = defaults.PlayerName,
|
||||||
Country = "random",
|
Country = "random",
|
||||||
State = Session.ClientState.NotReady,
|
State = Session.ClientState.NotReady,
|
||||||
SpawnPoint = 0,
|
SpawnPoint = 0,
|
||||||
|
|||||||
@@ -12,7 +12,8 @@ using System.Collections.Generic;
|
|||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using OpenRA.FileFormats;
|
using OpenRA.FileFormats;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
|
using OpenRA.Network;
|
||||||
|
|
||||||
namespace OpenRA.Widgets.Delegates
|
namespace OpenRA.Widgets.Delegates
|
||||||
{
|
{
|
||||||
@@ -107,7 +108,9 @@ namespace OpenRA.Widgets.Delegates
|
|||||||
startGameButton.IsVisible = () => Game.IsHost;
|
startGameButton.IsVisible = () => Game.IsHost;
|
||||||
|
|
||||||
Game.LobbyInfoChanged += JoinedServer;
|
Game.LobbyInfoChanged += JoinedServer;
|
||||||
|
Game.ConnectionStateChanged += ResetConnectionState;
|
||||||
Game.LobbyInfoChanged += UpdatePlayerList;
|
Game.LobbyInfoChanged += UpdatePlayerList;
|
||||||
|
|
||||||
Game.AddChatLine += lobby.GetWidget<ChatDisplayWidget>("CHAT_DISPLAY").AddLine;
|
Game.AddChatLine += lobby.GetWidget<ChatDisplayWidget>("CHAT_DISPLAY").AddLine;
|
||||||
|
|
||||||
bool teamChat = false;
|
bool teamChat = false;
|
||||||
@@ -229,6 +232,13 @@ namespace OpenRA.Widgets.Delegates
|
|||||||
Game.IssueOrder(Order.Command("color {0},{1},{2},{3},{4},{5}".F(c1.R,c1.G,c1.B,c2.R,c2.G,c2.B)));
|
Game.IssueOrder(Order.Command("color {0},{1},{2},{3},{4},{5}".F(c1.R,c1.G,c1.B,c2.R,c2.G,c2.B)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ResetConnectionState()
|
||||||
|
{
|
||||||
|
if (Game.orderManager.Connection.ConnectionState == ConnectionState.PreConnecting)
|
||||||
|
hasJoined = false;
|
||||||
|
}
|
||||||
|
|
||||||
void UpdatePlayerList()
|
void UpdatePlayerList()
|
||||||
{
|
{
|
||||||
// This causes problems for people who are in the process of editing their names (the widgets vanish from beneath them)
|
// This causes problems for people who are in the process of editing their names (the widgets vanish from beneath them)
|
||||||
|
|||||||
Reference in New Issue
Block a user