Core/DataStores: Sort ConditionalContentTuning container by OrderIndex

Port From (https://github.com/TrinityCore/TrinityCore/commit/b46bba86664a1e875d5dc0513e70726e52cb824b)
This commit is contained in:
Hondacrx
2024-08-25 00:26:21 -04:00
parent 2ef023e733
commit 993a5f7e8a
+15 -5
View File
@@ -236,7 +236,15 @@ namespace Game.DataStorage
_conditionalChrModelsByChrModelId[conditionalChrModel.ChrModelID] = conditionalChrModel; _conditionalChrModelsByChrModelId[conditionalChrModel.ChrModelID] = conditionalChrModel;
foreach (ConditionalContentTuningRecord conditionalContentTuning in ConditionalContentTuningStorage.Values) foreach (ConditionalContentTuningRecord conditionalContentTuning in ConditionalContentTuningStorage.Values)
_conditionalContentTuning.Add(conditionalContentTuning.ParentContentTuningID, conditionalContentTuning); {
if (!_conditionalContentTuning.ContainsKey(conditionalContentTuning.ParentContentTuningID))
_conditionalContentTuning[conditionalContentTuning.ParentContentTuningID] = new();
_conditionalContentTuning[conditionalContentTuning.ParentContentTuningID].Add(conditionalContentTuning);
}
foreach (var (parentContentTuningId, conditionalContentTunings) in _conditionalContentTuning)
conditionalContentTunings.OrderBy(p => p.OrderIndex);
foreach (ContentTuningXExpectedRecord contentTuningXExpectedStat in ContentTuningXExpectedStorage.Values) foreach (ContentTuningXExpectedRecord contentTuningXExpectedStat in ContentTuningXExpectedStorage.Values)
{ {
@@ -1068,9 +1076,11 @@ namespace Game.DataStorage
public uint GetRedirectedContentTuningId(uint contentTuningId, uint redirectFlag) public uint GetRedirectedContentTuningId(uint contentTuningId, uint redirectFlag)
{ {
foreach (var conditionalContentTuning in _conditionalContentTuning.LookupByKey(contentTuningId)) var conditionalContentTunings = _conditionalContentTuning.LookupByKey(contentTuningId);
if ((conditionalContentTuning.RedirectFlag & redirectFlag) != 0) if (conditionalContentTunings != null)
return (uint)conditionalContentTuning.RedirectContentTuningID; foreach (var conditionalContentTuning in conditionalContentTunings)
if ((conditionalContentTuning.RedirectFlag & redirectFlag) != 0)
return (uint)conditionalContentTuning.RedirectContentTuningID;
return contentTuningId; return contentTuningId;
} }
@@ -2289,7 +2299,7 @@ namespace Game.DataStorage
Dictionary<uint, MultiMap<uint, uint>> _chrCustomizationRequiredChoices = new(); Dictionary<uint, MultiMap<uint, uint>> _chrCustomizationRequiredChoices = new();
ChrSpecializationRecord[][] _chrSpecializationsByIndex = new ChrSpecializationRecord[(int)Class.Max + 1][]; ChrSpecializationRecord[][] _chrSpecializationsByIndex = new ChrSpecializationRecord[(int)Class.Max + 1][];
Dictionary<int, ConditionalChrModelRecord> _conditionalChrModelsByChrModelId = new(); Dictionary<int, ConditionalChrModelRecord> _conditionalChrModelsByChrModelId = new();
MultiMap<uint, ConditionalContentTuningRecord> _conditionalContentTuning = new(); Dictionary<uint, List<ConditionalContentTuningRecord>> _conditionalContentTuning = new();
List<(uint, int)> _contentTuningLabels = new(); List<(uint, int)> _contentTuningLabels = new();
MultiMap<uint, CurrencyContainerRecord> _currencyContainers = new(); MultiMap<uint, CurrencyContainerRecord> _currencyContainers = new();
MultiMap<uint, Vector2> _curvePoints = new(); MultiMap<uint, Vector2> _curvePoints = new();