mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Reduce lookups in AddItemsFromChildren
This commit is contained in:
@@ -313,20 +313,22 @@ namespace SabreTools.DatFiles
|
|||||||
// Special rom handling
|
// Special rom handling
|
||||||
else if (item is Rom rom)
|
else if (item is Rom rom)
|
||||||
{
|
{
|
||||||
|
string? mergeTag = rom.GetStringFieldValue(Models.Metadata.Disk.MergeKey);
|
||||||
|
|
||||||
// If the merge tag exists and the parent already contains it, skip
|
// If the merge tag exists and the parent already contains it, skip
|
||||||
if (rom.GetStringFieldValue(Models.Metadata.Rom.MergeKey) != null && GetItemsForBucket(cloneOf)
|
if (mergeTag != null && GetItemsForBucket(cloneOf)
|
||||||
.FindAll(i => i is Rom)
|
.FindAll(i => i is Rom)
|
||||||
.ConvertAll(i => (i as Rom)!.GetName())
|
.ConvertAll(i => (i as Rom)!.GetName())
|
||||||
.Contains(rom.GetStringFieldValue(Models.Metadata.Rom.MergeKey)))
|
.Contains(mergeTag))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the merge tag exists but the parent doesn't contain it, add to subfolder of parent
|
// If the merge tag exists but the parent doesn't contain it, add to subfolder of parent
|
||||||
else if (rom.GetStringFieldValue(Models.Metadata.Rom.MergeKey) != null && !GetItemsForBucket(cloneOf)
|
else if (mergeTag != null && !GetItemsForBucket(cloneOf)
|
||||||
.FindAll(i => i is Rom)
|
.FindAll(i => i is Rom)
|
||||||
.ConvertAll(i => (i as Rom)!.GetName())
|
.ConvertAll(i => (i as Rom)!.GetName())
|
||||||
.Contains(rom.GetStringFieldValue(Models.Metadata.Rom.MergeKey)))
|
.Contains(mergeTag))
|
||||||
{
|
{
|
||||||
if (subfolder)
|
if (subfolder)
|
||||||
rom.SetName($"{rom.GetMachine()!.GetName()}\\{rom.GetName()}");
|
rom.SetName($"{rom.GetMachine()!.GetName()}\\{rom.GetName()}");
|
||||||
@@ -444,20 +446,22 @@ namespace SabreTools.DatFiles
|
|||||||
// Special rom handling
|
// Special rom handling
|
||||||
else if (item.Value is Rom rom)
|
else if (item.Value is Rom rom)
|
||||||
{
|
{
|
||||||
|
string? mergeTag = rom.GetStringFieldValue(Models.Metadata.Rom.MergeKey);
|
||||||
|
|
||||||
// If the merge tag exists and the parent already contains it, skip
|
// If the merge tag exists and the parent already contains it, skip
|
||||||
if (rom.GetStringFieldValue(Models.Metadata.Rom.MergeKey) != null && GetItemsForBucketDB(cloneOf).Values
|
if (mergeTag != null && GetItemsForBucketDB(cloneOf).Values
|
||||||
.Where(i => i is Rom)
|
.Where(i => i is Rom)
|
||||||
.Select(i => (i as Rom)!.GetName())
|
.Select(i => (i as Rom)!.GetName())
|
||||||
.Contains(rom.GetStringFieldValue(Models.Metadata.Rom.MergeKey)))
|
.Contains(mergeTag))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the merge tag exists but the parent doesn't contain it, add to subfolder of parent
|
// If the merge tag exists but the parent doesn't contain it, add to subfolder of parent
|
||||||
else if (rom.GetStringFieldValue(Models.Metadata.Rom.MergeKey) != null && !GetItemsForBucketDB(cloneOf).Values
|
else if (mergeTag != null && !GetItemsForBucketDB(cloneOf).Values
|
||||||
.Where(i => i is Rom)
|
.Where(i => i is Rom)
|
||||||
.Select(i => (i as Rom)!.GetName())
|
.Select(i => (i as Rom)!.GetName())
|
||||||
.Contains(rom.GetStringFieldValue(Models.Metadata.Rom.MergeKey)))
|
.Contains(mergeTag))
|
||||||
{
|
{
|
||||||
if (subfolder)
|
if (subfolder)
|
||||||
rom.SetName($"{machineName}\\{rom.GetName()}");
|
rom.SetName($"{machineName}\\{rom.GetName()}");
|
||||||
|
|||||||
Reference in New Issue
Block a user