mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
[MergeDiff] Make main method less monolithic
This commit is contained in:
@@ -114,12 +114,40 @@ namespace SabreTools
|
||||
_author = "SabreTools";
|
||||
}
|
||||
|
||||
// For inplace use only
|
||||
// Create a dictionary of all ROMs from the input DATs
|
||||
DatData userData;
|
||||
List<DatData> datHeaders = PopulateUserData(out userData);
|
||||
|
||||
// Modify the Dictionary if necessary and output the results
|
||||
if (_diff && !_cascade)
|
||||
{
|
||||
DiffNoCascade(userData, datHeaders);
|
||||
}
|
||||
// If we're in cascade and diff, output only cascaded diffs
|
||||
else if (_diff && _cascade)
|
||||
{
|
||||
DiffCascade(userData, datHeaders);
|
||||
}
|
||||
// Output all entries with user-defined merge
|
||||
else
|
||||
{
|
||||
MergeNoDiff(userData, datHeaders);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Populate the user DatData object from the input files
|
||||
/// </summary>
|
||||
/// <param name="userData">Output user DatData object to output</param>
|
||||
/// <returns>List of DatData objects representing headers</returns>
|
||||
private List<DatData> PopulateUserData(out DatData userData)
|
||||
{
|
||||
List<DatData> datHeaders = new List<DatData>();
|
||||
|
||||
// Create a dictionary of all ROMs from the input DATs
|
||||
int i = 0;
|
||||
DatData userData = new DatData
|
||||
userData = new DatData
|
||||
{
|
||||
Roms = new Dictionary<string, List<RomData>>(),
|
||||
MergeRoms = _dedup,
|
||||
@@ -173,11 +201,17 @@ namespace SabreTools
|
||||
userData.OutputFormat = (_old ? OutputFormat.ClrMamePro : OutputFormat.Xml);
|
||||
userData.Type = (_superdat ? "SuperDAT" : "");
|
||||
|
||||
// Modify the Dictionary if necessary and output the results
|
||||
string post = "";
|
||||
if (_diff && !_cascade)
|
||||
return datHeaders;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Output non-cascading diffs
|
||||
/// </summary>
|
||||
/// <param name="userData">Main DatData to draw information from</param>
|
||||
/// <param name="datHeaders">Dat headers used optionally</param>
|
||||
private void DiffNoCascade(DatData userData, List<DatData> datHeaders)
|
||||
{
|
||||
post = " (No Duplicates)";
|
||||
string post = " (No Duplicates)";
|
||||
|
||||
// Get all entries that don't have External dupes
|
||||
DatData outerDiffData = new DatData
|
||||
@@ -310,9 +344,16 @@ namespace SabreTools
|
||||
|
||||
Output.WriteDatfile(dupeData, _outdir, _logger);
|
||||
}
|
||||
// If we're in cascade and diff, output only cascaded diffs
|
||||
else if (_diff && _cascade)
|
||||
|
||||
/// <summary>
|
||||
/// Output cascading diffs
|
||||
/// </summary>
|
||||
/// <param name="userData">Main DatData to draw information from</param>
|
||||
/// <param name="datHeaders">Dat headers used optionally</param>
|
||||
private void DiffCascade(DatData userData, List<DatData> datHeaders)
|
||||
{
|
||||
string post = "";
|
||||
|
||||
// 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++)
|
||||
{
|
||||
@@ -390,8 +431,13 @@ namespace SabreTools
|
||||
}
|
||||
}
|
||||
}
|
||||
// Output all entries with user-defined merge
|
||||
else
|
||||
|
||||
/// <summary>
|
||||
/// Output user defined merge
|
||||
/// </summary>
|
||||
/// <param name="userData">Main DatData to draw information from</param>
|
||||
/// <param name="datHeaders">Dat headers used optionally</param>
|
||||
private void MergeNoDiff(DatData userData, List<DatData> datHeaders)
|
||||
{
|
||||
// If we're in SuperDAT mode, prefix all games with their respective DATs
|
||||
if (_superdat)
|
||||
@@ -418,8 +464,5 @@ namespace SabreTools
|
||||
|
||||
Output.WriteDatfile(userData, _outdir, _logger);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user