Fixed issue #15 (sub/shuttle lists being empty at the client's side after joining a server). The clients would ignore the initial update message if they happened to receive one of the normal update messages before the initial one.
This commit is contained in:
@@ -755,7 +755,7 @@ namespace Barotrauma.Networking
|
|||||||
yield return CoroutineStatus.Success;
|
yield return CoroutineStatus.Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ReadInitialUpdate(NetIncomingMessage inc, bool isDuplicate)
|
private void ReadInitialUpdate(NetIncomingMessage inc)
|
||||||
{
|
{
|
||||||
myID = inc.ReadByte();
|
myID = inc.ReadByte();
|
||||||
|
|
||||||
@@ -776,19 +776,17 @@ namespace Barotrauma.Networking
|
|||||||
submarines.Add(new Submarine(Path.Combine(Submarine.SavePath, subName), subHash, false));
|
submarines.Add(new Submarine(Path.Combine(Submarine.SavePath, subName), subHash, false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isDuplicate)
|
GameMain.NetLobbyScreen.UpdateSubList(GameMain.NetLobbyScreen.SubList, submarines);
|
||||||
{
|
GameMain.NetLobbyScreen.UpdateSubList(GameMain.NetLobbyScreen.ShuttleList.ListBox, submarines);
|
||||||
GameMain.NetLobbyScreen.UpdateSubList(GameMain.NetLobbyScreen.SubList, submarines);
|
|
||||||
GameMain.NetLobbyScreen.UpdateSubList(GameMain.NetLobbyScreen.ShuttleList.ListBox, submarines);
|
|
||||||
}
|
|
||||||
|
|
||||||
gameStarted = inc.ReadBoolean();
|
gameStarted = inc.ReadBoolean();
|
||||||
bool allowSpectating = inc.ReadBoolean();
|
bool allowSpectating = inc.ReadBoolean();
|
||||||
|
|
||||||
SetPermissions((ClientPermissions)inc.ReadByte());
|
SetPermissions((ClientPermissions)inc.ReadByte());
|
||||||
|
|
||||||
if (gameStarted && !isDuplicate)
|
if (gameStarted)
|
||||||
{
|
{
|
||||||
new GUIMessageBox("Please wait",
|
new GUIMessageBox("Please wait",
|
||||||
(allowSpectating) ?
|
(allowSpectating) ?
|
||||||
@@ -822,7 +820,7 @@ namespace Barotrauma.Networking
|
|||||||
{
|
{
|
||||||
DebugConsole.NewMessage("Received initial lobby update, ID: " + updateID + ", last ID: " + GameMain.NetLobbyScreen.LastUpdateID, Color.Gray);
|
DebugConsole.NewMessage("Received initial lobby update, ID: " + updateID + ", last ID: " + GameMain.NetLobbyScreen.LastUpdateID, Color.Gray);
|
||||||
}
|
}
|
||||||
ReadInitialUpdate(inc, !NetIdUtils.IdMoreRecent(updateID, GameMain.NetLobbyScreen.LastUpdateID));
|
ReadInitialUpdate(inc);
|
||||||
}
|
}
|
||||||
|
|
||||||
string selectSubName = inc.ReadString();
|
string selectSubName = inc.ReadString();
|
||||||
|
|||||||
Reference in New Issue
Block a user