(7f12d8742) More reliable firesource syncing: instead of just creating a network event when a firesource is created/removed and trusting that the fire behaves deterministically enough to stay in sync between the client and server, create events at 0.5 s intervals when there's fire in a hull. Closes #721

This commit is contained in:
Joonas Rikkonen
2019-04-25 17:43:13 +03:00
parent 907df8fa09
commit 4e20fe871f
3 changed files with 2 additions and 17 deletions
@@ -257,12 +257,6 @@ namespace Barotrauma
} }
} }
}
if (Character.Controlled == character)
{
GameMain.GameScreen.Cam.Shake = Math.Min(Math.Max(strongestImpact, GameMain.GameScreen.Cam.Shake), 3.0f);
}
}
if (character.MemLocalState.Count > 120) character.MemLocalState.RemoveRange(0, character.MemLocalState.Count - 120); if (character.MemLocalState.Count > 120) character.MemLocalState.RemoveRange(0, character.MemLocalState.Count - 120);
character.MemState.Clear(); character.MemState.Clear();
@@ -33,7 +33,8 @@ namespace Barotrauma
//update client hulls if the amount of water has changed by >10% //update client hulls if the amount of water has changed by >10%
//or if oxygen percentage has changed by 5% //or if oxygen percentage has changed by 5%
if (Math.Abs(lastSentVolume - waterVolume) > Volume * 0.1f || if (Math.Abs(lastSentVolume - waterVolume) > Volume * 0.1f ||
Math.Abs(lastSentOxygen - OxygenPercentage) > 5f) Math.Abs(lastSentOxygen - OxygenPercentage) > 5f ||
FireSources.Count > 0)
{ {
sendUpdateTimer -= deltaTime; sendUpdateTimer -= deltaTime;
if (sendUpdateTimer < 0.0f) if (sendUpdateTimer < 0.0f)
@@ -417,11 +417,6 @@ namespace Barotrauma
public void AddFireSource(FireSource fireSource) public void AddFireSource(FireSource fireSource)
{ {
FireSources.Add(fireSource); FireSources.Add(fireSource);
if (GameMain.NetworkMember != null && GameMain.NetworkMember.IsServer && !IdFreed)
{
GameMain.NetworkMember.CreateEntityEvent(this);
}
} }
public override void Update(float deltaTime, Camera cam) public override void Update(float deltaTime, Camera cam)
@@ -589,11 +584,6 @@ namespace Barotrauma
public void RemoveFire(FireSource fire) public void RemoveFire(FireSource fire)
{ {
FireSources.Remove(fire); FireSources.Remove(fire);
if (GameMain.NetworkMember != null && GameMain.NetworkMember.IsServer && !Removed && !IdFreed)
{
GameMain.NetworkMember.CreateEntityEvent(this);
}
} }
public IEnumerable<Hull> GetConnectedHulls(int? searchDepth) public IEnumerable<Hull> GetConnectedHulls(int? searchDepth)