(afe15e7b2) Fixed server sending campaign saves and campaign character data to clients after the game mode has been switched to something else. Closes #1346

This commit is contained in:
Joonas Rikkonen
2019-03-26 17:10:35 +02:00
parent 6c4649fe3f
commit 237f164123
4 changed files with 20 additions and 12 deletions
@@ -1382,9 +1382,12 @@ namespace Barotrauma.Networking
{
MultiPlayerCampaign.ClientRead(inc);
}
else if (GameMain.NetLobbyScreen.SelectedMode.Identifier != "multiplayercampaign")
{
GameMain.NetLobbyScreen.SetCampaignCharacterInfo(null);
}
lastSentChatMsgID = inc.ReadUInt16();
break;
case ServerNetObject.CLIENT_LIST:
ReadClientList(inc);
@@ -866,18 +866,21 @@ namespace Barotrauma
spectateButton.Enabled = true;
}
public void SetCampaignCharacterInfo(CharacterInfo characterInfo)
{
if (CampaignCharacterDiscarded) return;
campaignCharacterInfo = characterInfo;
if (campaignCharacterInfo != null)
public void SetCampaignCharacterInfo(CharacterInfo newCampaignCharacterInfo)
{
if (newCampaignCharacterInfo != null)
{
UpdatePlayerFrame(campaignCharacterInfo, false);
if (CampaignCharacterDiscarded) { return; }
if (campaignCharacterInfo != newCampaignCharacterInfo)
{
campaignCharacterInfo = newCampaignCharacterInfo;
UpdatePlayerFrame(campaignCharacterInfo, false);
}
}
else
else if (campaignCharacterInfo != null)
{
UpdatePlayerFrame(null, true);
campaignCharacterInfo = null;
UpdatePlayerFrame(campaignCharacterInfo, false);
}
}