diff --git a/Barotrauma/BarotraumaClient/Source/Characters/Character.cs b/Barotrauma/BarotraumaClient/Source/Characters/Character.cs index 2afdc5fba..6c4c85bb8 100644 --- a/Barotrauma/BarotraumaClient/Source/Characters/Character.cs +++ b/Barotrauma/BarotraumaClient/Source/Characters/Character.cs @@ -284,25 +284,22 @@ namespace Barotrauma Lights.LightManager.ViewTarget = this; CharacterHUD.Update(deltaTime, this, cam); - - bool removeProgressBars = false; - - foreach (HUDProgressBar progressBar in hudProgressBars.Values) + + if (hudProgressBars.Any()) { - if (progressBar.FadeTimer <= 0.0f) + foreach (var progressBar in hudProgressBars) { - removeProgressBars = true; - continue; + if (progressBar.Value.FadeTimer <= 0.0f) + { + progressBarRemovals.Add(progressBar); + continue; + } + progressBar.Value.Update(deltaTime); } - progressBar.Update(deltaTime); - } - - if (removeProgressBars) - { - // TODO: this generates garbage, can we fix anything here? - foreach (var pb in hudProgressBars.Where(pb => pb.Value.FadeTimer <= 0.0f).ToList()) + if (progressBarRemovals.Any()) { - hudProgressBars.Remove(pb.Key); + progressBarRemovals.ForEach(pb => hudProgressBars.Remove(pb.Key)); + progressBarRemovals.Clear(); } } } diff --git a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveIdle.cs b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveIdle.cs index 5be2b5d54..bad0fcffd 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveIdle.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveIdle.cs @@ -198,7 +198,6 @@ namespace Barotrauma private void FindTargetHulls() { - var idCard = character.Inventory.FindItemByIdentifier("idcard"); bool isCurrentHullOK = !HumanAIController.UnsafeHulls.Contains(character.CurrentHull) && !IsForbidden(character.CurrentHull); targetHulls.Clear();