Fix diffing

This commit is contained in:
Matt Nadareski
2016-05-17 11:49:09 -07:00
parent fc78412162
commit a03b3735f6
2 changed files with 21 additions and 23 deletions

View File

@@ -122,7 +122,7 @@ namespace SabreTools
// Modify the Dictionary if necessary and output the results // Modify the Dictionary if necessary and output the results
if (_diff) if (_diff)
{ {
string post = ""; string post = " (No Duplicates)";
// Get all entries that don't have External dupes // Get all entries that don't have External dupes
DatData outerDiffData = new DatData DatData outerDiffData = new DatData
@@ -161,8 +161,6 @@ namespace SabreTools
} }
} }
post = " (No Duplicates)";
// Output the difflist (a-b)+(b-a) diff // Output the difflist (a-b)+(b-a) diff
Output.WriteDatfile(outerDiffData, "", _logger); Output.WriteDatfile(outerDiffData, "", _logger);
@@ -170,6 +168,7 @@ namespace SabreTools
// Loop through _inputs first and filter from all diffed roms to find the ones that have the same "System" // Loop through _inputs first and filter from all diffed roms to find the ones that have the same "System"
for (int j = 0; j < _inputs.Count; j++) for (int j = 0; j < _inputs.Count; j++)
{ {
post = " (" + Path.GetFileNameWithoutExtension(_inputs[j]) + " Only)";
DatData diffData = new DatData DatData diffData = new DatData
{ {
Name = _name + post, Name = _name + post,
@@ -204,11 +203,11 @@ namespace SabreTools
} }
} }
post = " (" + Path.GetFileNameWithoutExtension(_inputs[j]) + " Only)";
Output.WriteDatfile(diffData, "", _logger); Output.WriteDatfile(diffData, "", _logger);
} }
// Get all entries that have External dupes // Get all entries that have External dupes
post = " (Duplicates)";
DatData dupeData = new DatData DatData dupeData = new DatData
{ {
Name = _name + post, Name = _name + post,
@@ -222,7 +221,6 @@ namespace SabreTools
MergeRoms = _dedup, MergeRoms = _dedup,
Roms = new Dictionary<string, List<RomData>>(), Roms = new Dictionary<string, List<RomData>>(),
}; };
post = " (Duplicates)";
foreach (string key in userData.Roms.Keys) foreach (string key in userData.Roms.Keys)
{ {
List<RomData> temp = userData.Roms[key]; List<RomData> temp = userData.Roms[key];

View File

@@ -462,24 +462,6 @@ namespace SabreTools.Helper
last.MD5 = (last.MD5 == "" && rom.MD5 != "" ? rom.MD5 : last.MD5); last.MD5 = (last.MD5 == "" && rom.MD5 != "" ? rom.MD5 : last.MD5);
last.SHA1 = (last.SHA1 == "" && rom.SHA1 != "" ? rom.SHA1 : last.SHA1); last.SHA1 = (last.SHA1 == "" && rom.SHA1 != "" ? rom.SHA1 : last.SHA1);
// If the current system has a lower ID than the previous, set the system accordingly
if (rom.SystemID < last.SystemID)
{
last.SystemID = rom.SystemID;
last.System = rom.System;
last.Game = rom.Game;
last.Name = rom.Name;
}
// If the current source has a lower ID than the previous, set the source accordingly
if (rom.SourceID < last.SourceID)
{
last.SourceID = rom.SourceID;
last.Source = rom.Source;
last.Game = rom.Game;
last.Name = rom.Name;
}
// If the duplicate is external already or should be, set it // If the duplicate is external already or should be, set it
if (last.Dupe >= DupeType.ExternalHash || last.SystemID != rom.SystemID || last.SourceID != rom.SourceID) if (last.Dupe >= DupeType.ExternalHash || last.SystemID != rom.SystemID || last.SourceID != rom.SourceID)
{ {
@@ -506,6 +488,24 @@ namespace SabreTools.Helper
} }
} }
// If the current system has a lower ID than the previous, set the system accordingly
if (rom.SystemID < last.SystemID)
{
last.SystemID = rom.SystemID;
last.System = rom.System;
last.Game = rom.Game;
last.Name = rom.Name;
}
// If the current source has a lower ID than the previous, set the source accordingly
if (rom.SourceID < last.SourceID)
{
last.SourceID = rom.SourceID;
last.Source = rom.Source;
last.Game = rom.Game;
last.Name = rom.Name;
}
outroms.RemoveAt(outroms.Count - 1); outroms.RemoveAt(outroms.Count - 1);
outroms.Insert(outroms.Count, last); outroms.Insert(outroms.Count, last);