This commit is contained in:
NotAlwaysTrue
2025-12-28 13:02:31 +08:00
parent 21a2863a1a
commit 3d96e4adb6
2 changed files with 5 additions and 8 deletions

View File

@@ -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);

View File

@@ -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
() =>