]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Check for divide by near zero (#22876)
authorKevin Zheng <kevinz5000@gmail.com>
Sat, 23 Dec 2023 01:10:33 +0000 (17:10 -0800)
committerGitHub <noreply@github.com>
Sat, 23 Dec 2023 01:10:33 +0000 (17:10 -0800)
Content.Server/Atmos/EntitySystems/AtmosphereSystem.Gases.cs
Content.Server/Atmos/EntitySystems/GenericGasReactionSystem.cs

index 909ec5ec9cf9b1949bc326ae282c86a600233f23..8506b4cd32c943d97bc4f531119b6b0480e1cdf3 100644 (file)
@@ -123,7 +123,7 @@ namespace Content.Server.Atmos.EntitySystems
                 var receiverHeatCapacity = GetHeatCapacity(receiver);
                 var giverHeatCapacity = GetHeatCapacity(giver);
                 var combinedHeatCapacity = receiverHeatCapacity + giverHeatCapacity;
-                if (combinedHeatCapacity > 0f)
+                if (combinedHeatCapacity > Atmospherics.MinimumHeatCapacity)
                 {
                     receiver.Temperature = (GetThermalEnergy(giver, giverHeatCapacity) + GetThermalEnergy(receiver, receiverHeatCapacity)) / combinedHeatCapacity;
                 }
@@ -167,7 +167,7 @@ namespace Content.Server.Atmos.EntitySystems
                         sourceHeatCapacity ??= GetHeatCapacity(source);
                         var receiverHeatCapacity = GetHeatCapacity(receiver);
                         var combinedHeatCapacity = receiverHeatCapacity + sourceHeatCapacity.Value * fraction;
-                        if (combinedHeatCapacity > 0f)
+                        if (combinedHeatCapacity > Atmospherics.MinimumHeatCapacity)
                             receiver.Temperature = (GetThermalEnergy(source, sourceHeatCapacity.Value * fraction) + GetThermalEnergy(receiver, receiverHeatCapacity)) / combinedHeatCapacity;
                     }
                 }
index a21f85ae954270d8491c60d70c330f8614e099d3..15c4a33aaea228d3019aa1933af7c4a3fd04fafc 100644 (file)
@@ -113,7 +113,10 @@ public sealed class GenericGasReactionSystem : EntitySystem
         }
 
         float newHeatCapacity = _atmosphere.GetHeatCapacity(mix, true);
-        mix.Temperature = (initialE + reactionE)/newHeatCapacity;
+        if (newHeatCapacity > Atmospherics.MinimumHeatCapacity)
+        {
+            mix.Temperature = (initialE + reactionE)/newHeatCapacity;
+        }
         if (reactionE > 0)
         {
             var location = holder as TileAtmosphere;