From 7e361a0a5e1e2924886d629108daaf07f224dbb1 Mon Sep 17 00:00:00 2001 From: KaenoDev <193943350+KaenoDev@users.noreply.github.com> Date: Sun, 26 Jan 2025 18:43:33 +0000 Subject: [PATCH] Clone data instead of directly editing it --- Libraries/Core/Generators/LootGenerator.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Libraries/Core/Generators/LootGenerator.cs b/Libraries/Core/Generators/LootGenerator.cs index 3e29b8da..411a4b58 100644 --- a/Libraries/Core/Generators/LootGenerator.cs +++ b/Libraries/Core/Generators/LootGenerator.cs @@ -10,6 +10,7 @@ using Core.Models.Spt.Services; using Core.Models.Utils; using Core.Services; using Core.Utils; +using Core.Utils.Cloners; namespace Core.Generators; @@ -24,7 +25,8 @@ public class LootGenerator( ItemFilterService _itemFilterService, LocalisationService _localisationService, WeightedRandomHelper _weightedRandomHelper, - RagfairLinkedItemService _ragfairLinkedItemService + RagfairLinkedItemService _ragfairLinkedItemService, + ICloner _cloner ) { @@ -389,7 +391,7 @@ public class LootGenerator( return false; } - var presetAndMods = _itemHelper.ReplaceIDs(chosenPreset.Items); + var presetAndMods = _itemHelper.ReplaceIDs(_cloner.Clone(chosenPreset.Items)); _itemHelper.RemapRootItemId(presetAndMods); // Add chosen preset tpl to result array foreach (var item in presetAndMods) { @@ -443,7 +445,7 @@ public class LootGenerator( } // Clean up Ids to ensure they're all unique and prevent collisions - var presetAndMods = _itemHelper.ReplaceIDs(chosenWeaponPreset.Items); + var presetAndMods = _itemHelper.ReplaceIDs(_cloner.Clone(chosenWeaponPreset.Items)); _itemHelper.RemapRootItemId(presetAndMods); // Add preset to return object