diff --git a/SabreTools.DatFiles/ItemDictionary.cs b/SabreTools.DatFiles/ItemDictionary.cs index 6a9afda4..671fb3a0 100644 --- a/SabreTools.DatFiles/ItemDictionary.cs +++ b/SabreTools.DatFiles/ItemDictionary.cs @@ -724,9 +724,13 @@ namespace SabreTools.DatFiles { var nc = new NaturalComparer(); + // Get the machines + Machine? xMachine = x.GetFieldValue(DatItem.MachineKey); + Machine? yMachine = y.GetFieldValue(DatItem.MachineKey); + // If machine names don't match - string? xMachineName = x.GetFieldValue(DatItem.MachineKey)?.GetStringFieldValue(Models.Metadata.Machine.NameKey); - string? yMachineName = y.GetFieldValue(DatItem.MachineKey)?.GetStringFieldValue(Models.Metadata.Machine.NameKey); + string? xMachineName = xMachine?.GetStringFieldValue(Models.Metadata.Machine.NameKey); + string? yMachineName = yMachine?.GetStringFieldValue(Models.Metadata.Machine.NameKey); if (xMachineName != yMachineName) return nc.Compare(xMachineName, yMachineName); diff --git a/SabreTools.DatFiles/ItemDictionaryDB.cs b/SabreTools.DatFiles/ItemDictionaryDB.cs index 8fa338f2..53ecad1e 100644 --- a/SabreTools.DatFiles/ItemDictionaryDB.cs +++ b/SabreTools.DatFiles/ItemDictionaryDB.cs @@ -1155,9 +1155,13 @@ namespace SabreTools.DatFiles { var nc = new NaturalComparer(); + // Get the machines + Machine? xMachine = _machines[_itemToMachineMapping[x.Key]]; + Machine? yMachine = _machines[_itemToMachineMapping[y.Key]]; + // If machine names don't match - string? xMachineName = _machines[_itemToMachineMapping[x.Key]].GetStringFieldValue(Models.Metadata.Machine.NameKey); - string? yMachineName = _machines[_itemToMachineMapping[y.Key]].GetStringFieldValue(Models.Metadata.Machine.NameKey); + string? xMachineName = xMachine?.GetStringFieldValue(Models.Metadata.Machine.NameKey); + string? yMachineName = yMachine?.GetStringFieldValue(Models.Metadata.Machine.NameKey); if (xMachineName != yMachineName) return nc.Compare(xMachineName, yMachineName);