Resetting EntityEvent & EntitySpawner IDs when starting a new round, LOS effect is enabled when a client takes control of a character

This commit is contained in:
Regalis
2017-01-09 18:22:37 +02:00
parent a75ef8ee51
commit ff96f152ce
6 changed files with 15 additions and 2 deletions

View File

@@ -2397,6 +2397,9 @@ namespace Barotrauma
{
GameMain.Client.Character = character;
Controlled = character;
GameMain.LightManager.LosEnabled = true;
character.memInput.Clear();
character.memPos.Clear();
character.memLocalPos.Clear();

View File

@@ -170,7 +170,7 @@ namespace Barotrauma
public void StartShift(Level level, bool reloadSub = true, bool loadSecondSub = false)
{
GameMain.LightManager.LosEnabled = (GameMain.Server==null || GameMain.Server.CharacterInfo!=null);
GameMain.LightManager.LosEnabled = GameMain.NetworkMember == null || GameMain.NetworkMember.CharacterInfo != null;
this.level = level;

View File

@@ -577,6 +577,8 @@ namespace Barotrauma.Networking
if (Character != null) Character.Remove();
Entity.Spawner.Clear();
entityEventManager.Clear();
LastSentEntityEventID = 0;
endVoteTickBox.Selected = false;

View File

@@ -906,6 +906,12 @@ namespace Barotrauma.Networking
List<CharacterInfo> characterInfos = new List<CharacterInfo>();
foreach (Client client in connectedClients)
{
client.lastRecvEntitySpawnID = 0;
client.entityEventLastSent.Clear();
client.lastSentEntityEventID = 0;
client.lastRecvEntityEventID = 0;
if (client.characterInfo == null)
{
client.characterInfo = new CharacterInfo(Character.HumanConfigFile, client.name);

View File

@@ -120,6 +120,8 @@ namespace Barotrauma.Networking
{
ID = 0;
lastReceivedID = 0;
events.Clear();
eventLastSent.Clear();
}

View File

@@ -31,7 +31,6 @@ namespace Barotrauma.Networking
//write into a temporary buffer so we can write the length before the actual data
NetBuffer tempBuffer = new NetBuffer();
WriteEvent(tempBuffer, e, recipient);
tempBuffer.WritePadBits();
Debug.Assert(
tempBuffer.LengthBytes < 256,
@@ -40,6 +39,7 @@ namespace Barotrauma.Networking
msg.Write((UInt16)e.Entity.ID);
msg.Write((byte)tempBuffer.LengthBytes);
msg.Write(tempBuffer);
msg.WritePadBits();
}
}