(241123ab2) Some checks to prevent crashing if a limb has an invalid health index
This commit is contained in:
@@ -1427,6 +1427,8 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
foreach (Limb limb in Character.AnimController.Limbs)
|
foreach (Limb limb in Character.AnimController.Limbs)
|
||||||
{
|
{
|
||||||
|
if (limb.HealthIndex < 0 || limb.HealthIndex >= limbHealths.Count) { continue; }
|
||||||
|
|
||||||
limb.BurnOverlayStrength = 0.0f;
|
limb.BurnOverlayStrength = 0.0f;
|
||||||
limb.DamageOverlayStrength = 0.0f;
|
limb.DamageOverlayStrength = 0.0f;
|
||||||
if (limbHealths[limb.HealthIndex].Afflictions.Count == 0) continue;
|
if (limbHealths[limb.HealthIndex].Afflictions.Count == 0) continue;
|
||||||
|
|||||||
@@ -266,6 +266,12 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public Affliction GetAffliction(string afflictionType, Limb limb)
|
public Affliction GetAffliction(string afflictionType, Limb limb)
|
||||||
{
|
{
|
||||||
|
if (limb.HealthIndex < 0 || limb.HealthIndex >= limbHealths.Count)
|
||||||
|
{
|
||||||
|
DebugConsole.ThrowError("Limb health index out of bounds. Character\"" + Character.Name +
|
||||||
|
"\" only has health configured for" + limbHealths.Count + " limbs but the limb " + limb.type + " is targeting index " + limb.HealthIndex);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
foreach (Affliction affliction in limbHealths[limb.HealthIndex].Afflictions)
|
foreach (Affliction affliction in limbHealths[limb.HealthIndex].Afflictions)
|
||||||
{
|
{
|
||||||
if (affliction.Prefab.AfflictionType == afflictionType) return affliction;
|
if (affliction.Prefab.AfflictionType == afflictionType) return affliction;
|
||||||
@@ -467,7 +473,13 @@ namespace Barotrauma
|
|||||||
|
|
||||||
private void AddLimbAffliction(Limb limb, Affliction newAffliction)
|
private void AddLimbAffliction(Limb limb, Affliction newAffliction)
|
||||||
{
|
{
|
||||||
if (!newAffliction.Prefab.LimbSpecific) return;
|
if (!newAffliction.Prefab.LimbSpecific || limb == null) return;
|
||||||
|
if (limb.HealthIndex < 0 || limb.HealthIndex >= limbHealths.Count)
|
||||||
|
{
|
||||||
|
DebugConsole.ThrowError("Limb health index out of bounds. Character\"" + Character.Name +
|
||||||
|
"\" only has health configured for" + limbHealths.Count + " limbs but the limb " + limb.type + " is targeting index " + limb.HealthIndex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
AddLimbAffliction(limbHealths[limb.HealthIndex], newAffliction);
|
AddLimbAffliction(limbHealths[limb.HealthIndex], newAffliction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user