Fixed #22
This commit is contained in:
@@ -745,7 +745,6 @@ namespace Barotrauma
|
||||
waterFlowThisFrame = 0.0f;
|
||||
}
|
||||
|
||||
private static readonly HashSet<Hull> checkedHulls = new HashSet<Hull>();
|
||||
|
||||
/// <summary>
|
||||
/// Simulates water flow from the source to all the hulls it's connected to across the sub, as if the water was coming directly from outside.
|
||||
@@ -753,7 +752,7 @@ namespace Barotrauma
|
||||
/// </summary>
|
||||
void SimulateWaterFlowFromOutsideToConnectedHulls(Hull hull, float maxFlow, float deltaTime)
|
||||
{
|
||||
checkedHulls.Clear();
|
||||
List<Hull> checkedHulls = new List<Hull>();
|
||||
checkedHulls.Add(hull);
|
||||
foreach (var connectedGap in hull.ConnectedGaps)
|
||||
{
|
||||
@@ -764,7 +763,7 @@ namespace Barotrauma
|
||||
}
|
||||
}
|
||||
|
||||
static void SimulateWaterFlowFromOutsideToConnectedHullsRecursive(Hull targetHull, Gap gap, HashSet<Hull> checkedHulls, Hull originHull, float maxFlow, float deltaTime)
|
||||
static void SimulateWaterFlowFromOutsideToConnectedHullsRecursive(Hull targetHull, Gap gap, List<Hull> checkedHulls, Hull originHull, float maxFlow, float deltaTime)
|
||||
{
|
||||
const float decay = 0.95f;
|
||||
|
||||
@@ -995,8 +994,6 @@ namespace Barotrauma
|
||||
base.Remove();
|
||||
GapList.Remove(this);
|
||||
|
||||
checkedHulls.Clear();
|
||||
|
||||
foreach (Hull hull in Hull.HullList)
|
||||
{
|
||||
hull.ConnectedGaps.Remove(this);
|
||||
|
||||
@@ -655,13 +655,13 @@ namespace Barotrauma
|
||||
|
||||
// First phase: parallel updates that have no order dependencies
|
||||
Parallel.Invoke(parallelOptions,
|
||||
// Hull parallel update
|
||||
() =>
|
||||
{
|
||||
Parallel.ForEach(hullList, parallelOptions, hull =>
|
||||
// basically nothing here is thread-safe so
|
||||
foreach(var hull in hullList)
|
||||
{
|
||||
hull.Update(deltaTime, cam);
|
||||
});
|
||||
}
|
||||
},
|
||||
// Structure parallel update
|
||||
() =>
|
||||
|
||||
Reference in New Issue
Block a user