(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

View File

@@ -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);
character.MemState.Clear();

View File

@@ -33,7 +33,8 @@ namespace Barotrauma
//update client hulls if the amount of water has changed by >10%
//or if oxygen percentage has changed by 5%
if (Math.Abs(lastSentVolume - waterVolume) > Volume * 0.1f ||
Math.Abs(lastSentOxygen - OxygenPercentage) > 5f)
Math.Abs(lastSentOxygen - OxygenPercentage) > 5f ||
FireSources.Count > 0)
{
sendUpdateTimer -= deltaTime;
if (sendUpdateTimer < 0.0f)

View File

@@ -417,11 +417,6 @@ namespace Barotrauma
public void AddFireSource(FireSource fireSource)
{
FireSources.Add(fireSource);
if (GameMain.NetworkMember != null && GameMain.NetworkMember.IsServer && !IdFreed)
{
GameMain.NetworkMember.CreateEntityEvent(this);
}
}
public override void Update(float deltaTime, Camera cam)
@@ -589,11 +584,6 @@ namespace Barotrauma
public void RemoveFire(FireSource fire)
{
FireSources.Remove(fire);
if (GameMain.NetworkMember != null && GameMain.NetworkMember.IsServer && !Removed && !IdFreed)
{
GameMain.NetworkMember.CreateEntityEvent(this);
}
}
public IEnumerable<Hull> GetConnectedHulls(int? searchDepth)