From: Kevin Zheng Date: Sat, 23 Dec 2023 01:10:33 +0000 (-0800) Subject: Check for divide by near zero (#22876) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=99d6aff7be50084d45c6fac766cddf97b2fb526b;p=space-station-14.git Check for divide by near zero (#22876) --- diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Gases.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Gases.cs index 909ec5ec9c..8506b4cd32 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Gases.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Gases.cs @@ -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; } } diff --git a/Content.Server/Atmos/EntitySystems/GenericGasReactionSystem.cs b/Content.Server/Atmos/EntitySystems/GenericGasReactionSystem.cs index a21f85ae95..15c4a33aae 100644 --- a/Content.Server/Atmos/EntitySystems/GenericGasReactionSystem.cs +++ b/Content.Server/Atmos/EntitySystems/GenericGasReactionSystem.cs @@ -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;