mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Fix return/continue issues
This commit is contained in:
@@ -9,6 +9,7 @@ using SabreTools.Core.Tools;
|
|||||||
using SabreTools.DatFiles.Formats;
|
using SabreTools.DatFiles.Formats;
|
||||||
using SabreTools.DatItems;
|
using SabreTools.DatItems;
|
||||||
using SabreTools.DatItems.Formats;
|
using SabreTools.DatItems.Formats;
|
||||||
|
using SabreTools.Filter;
|
||||||
using SabreTools.Hashing;
|
using SabreTools.Hashing;
|
||||||
using SabreTools.Logging;
|
using SabreTools.Logging;
|
||||||
|
|
||||||
@@ -146,6 +147,41 @@ namespace SabreTools.DatFiles
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Filtering
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Execute all filters in a filter runner on the items in the dictionary
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="filterRunner">Preconfigured filter runner to use</param>
|
||||||
|
public void ExecuteFilters(FilterRunner filterRunner)
|
||||||
|
{
|
||||||
|
List<string> keys = [.. Items.Keys];
|
||||||
|
#if NET452_OR_GREATER || NETCOREAPP
|
||||||
|
Parallel.ForEach(keys, Globals.ParallelOptions, key =>
|
||||||
|
#elif NET40_OR_GREATER
|
||||||
|
Parallel.ForEach(keys, key =>
|
||||||
|
#else
|
||||||
|
foreach (var key in keys)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
ConcurrentList<DatItem>? items = Items[key];
|
||||||
|
if (items == null)
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
|
return;
|
||||||
|
#else
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// TODO: Implement filtering
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
|
});
|
||||||
|
#else
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region Parsing
|
#region Parsing
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -818,7 +818,11 @@ namespace SabreTools.DatFiles
|
|||||||
// Get the possibly unsorted list
|
// Get the possibly unsorted list
|
||||||
ConcurrentList<DatItem>? sortedlist = this[key]?.ToConcurrentList();
|
ConcurrentList<DatItem>? sortedlist = this[key]?.ToConcurrentList();
|
||||||
if (sortedlist == null)
|
if (sortedlist == null)
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
return;
|
return;
|
||||||
|
#else
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Sort the list of items to be consistent
|
// Sort the list of items to be consistent
|
||||||
DatItem.Sort(ref sortedlist, false);
|
DatItem.Sort(ref sortedlist, false);
|
||||||
|
|||||||
@@ -946,7 +946,11 @@ CREATE TABLE IF NOT EXISTS groups (
|
|||||||
{
|
{
|
||||||
string key = oldkeys[k];
|
string key = oldkeys[k];
|
||||||
if (this[key] == null)
|
if (this[key] == null)
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
return;
|
return;
|
||||||
|
#else
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Now add each of the roms to their respective keys
|
// Now add each of the roms to their respective keys
|
||||||
for (int i = 0; i < this[key]!.Count; i++)
|
for (int i = 0; i < this[key]!.Count; i++)
|
||||||
|
|||||||
@@ -43,7 +43,11 @@ namespace SabreTools.DatTools
|
|||||||
{
|
{
|
||||||
ConcurrentList<DatItem>? items = datFile.Items[key];
|
ConcurrentList<DatItem>? items = datFile.Items[key];
|
||||||
if (items == null)
|
if (items == null)
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
return;
|
return;
|
||||||
|
#else
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
ConcurrentList<DatItem> newItems = [];
|
ConcurrentList<DatItem> newItems = [];
|
||||||
foreach (DatItem item in items)
|
foreach (DatItem item in items)
|
||||||
@@ -119,7 +123,11 @@ namespace SabreTools.DatTools
|
|||||||
{
|
{
|
||||||
ConcurrentList<DatItem>? datItems = intDat.Items[key];
|
ConcurrentList<DatItem>? datItems = intDat.Items[key];
|
||||||
if (datItems == null)
|
if (datItems == null)
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
return;
|
return;
|
||||||
|
#else
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
ConcurrentList<DatItem> newDatItems = [];
|
ConcurrentList<DatItem> newDatItems = [];
|
||||||
foreach (DatItem datItem in datItems)
|
foreach (DatItem datItem in datItems)
|
||||||
@@ -163,7 +171,11 @@ namespace SabreTools.DatTools
|
|||||||
{
|
{
|
||||||
ConcurrentList<DatItem>? datItems = intDat.Items[key];
|
ConcurrentList<DatItem>? datItems = intDat.Items[key];
|
||||||
if (datItems == null)
|
if (datItems == null)
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
return;
|
return;
|
||||||
|
#else
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
ConcurrentList<DatItem> newDatItems = [];
|
ConcurrentList<DatItem> newDatItems = [];
|
||||||
foreach (DatItem datItem in datItems)
|
foreach (DatItem datItem in datItems)
|
||||||
@@ -230,15 +242,27 @@ namespace SabreTools.DatTools
|
|||||||
{
|
{
|
||||||
// If the key is null, keep it
|
// If the key is null, keep it
|
||||||
if (!intDat.Items.TryGetValue(key, out var intList) || intList == null)
|
if (!intDat.Items.TryGetValue(key, out var intList) || intList == null)
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
return;
|
return;
|
||||||
|
#else
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
// If the base DAT doesn't contain the key, keep it
|
// If the base DAT doesn't contain the key, keep it
|
||||||
if (!datFile.Items.TryGetValue(key, out var list) || list == null)
|
if (!datFile.Items.TryGetValue(key, out var list) || list == null)
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
return;
|
return;
|
||||||
|
#else
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
// If the number of items is different, then keep it
|
// If the number of items is different, then keep it
|
||||||
if (list.Count != intList.Count)
|
if (list.Count != intList.Count)
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
return;
|
return;
|
||||||
|
#else
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Otherwise, compare by name and hash the remaining files
|
// Otherwise, compare by name and hash the remaining files
|
||||||
bool exactMatch = true;
|
bool exactMatch = true;
|
||||||
@@ -262,7 +286,11 @@ namespace SabreTools.DatTools
|
|||||||
{
|
{
|
||||||
ConcurrentList<DatItem>? datItems = intDat.Items[key];
|
ConcurrentList<DatItem>? datItems = intDat.Items[key];
|
||||||
if (datItems == null)
|
if (datItems == null)
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
return;
|
return;
|
||||||
|
#else
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
ConcurrentList<DatItem> keepDatItems = [];
|
ConcurrentList<DatItem> keepDatItems = [];
|
||||||
foreach (DatItem datItem in datItems)
|
foreach (DatItem datItem in datItems)
|
||||||
|
|||||||
@@ -255,7 +255,11 @@ namespace SabreTools.DatTools
|
|||||||
{
|
{
|
||||||
DatItem? datItem = DatItem.Create(baseFile);
|
DatItem? datItem = DatItem.Create(baseFile);
|
||||||
if (datItem == null)
|
if (datItem == null)
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
return;
|
return;
|
||||||
|
#else
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
ProcessFileHelper(datFile, item, datItem, basePath, parent);
|
ProcessFileHelper(datFile, item, datItem, basePath, parent);
|
||||||
#if NET40_OR_GREATER || NETCOREAPP
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
|
|||||||
@@ -597,7 +597,11 @@ namespace SabreTools.DatTools
|
|||||||
|
|
||||||
// If the rom list is empty or null, just skip it
|
// If the rom list is empty or null, just skip it
|
||||||
if (items == null || items.Count == 0)
|
if (items == null || items.Count == 0)
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
return;
|
return;
|
||||||
|
#else
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
foreach (DatItem item in items)
|
foreach (DatItem item in items)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -249,7 +249,11 @@ namespace SabreTools.Filtering
|
|||||||
{
|
{
|
||||||
var items = datFile.Items[key];
|
var items = datFile.Items[key];
|
||||||
if (items == null)
|
if (items == null)
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
return;
|
return;
|
||||||
|
#else
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
foreach (DatItem item in items)
|
foreach (DatItem item in items)
|
||||||
{
|
{
|
||||||
@@ -277,7 +281,11 @@ namespace SabreTools.Filtering
|
|||||||
{
|
{
|
||||||
var items = datFile.Items[key];
|
var items = datFile.Items[key];
|
||||||
if (items == null)
|
if (items == null)
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
return;
|
return;
|
||||||
|
#else
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
ConcurrentList<DatItem> newItems = [];
|
ConcurrentList<DatItem> newItems = [];
|
||||||
foreach (DatItem item in items)
|
foreach (DatItem item in items)
|
||||||
@@ -420,7 +428,11 @@ namespace SabreTools.Filtering
|
|||||||
{
|
{
|
||||||
var items = datFile.Items[key];
|
var items = datFile.Items[key];
|
||||||
if (items == null)
|
if (items == null)
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
return;
|
return;
|
||||||
|
#else
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
for (int i = 0; i < items.Count; i++)
|
for (int i = 0; i < items.Count; i++)
|
||||||
{
|
{
|
||||||
@@ -474,7 +486,11 @@ namespace SabreTools.Filtering
|
|||||||
{
|
{
|
||||||
var items = datFile.Items[key];
|
var items = datFile.Items[key];
|
||||||
if (items == null)
|
if (items == null)
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
return;
|
return;
|
||||||
|
#else
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
for (int j = 0; j < items.Count; j++)
|
for (int j = 0; j < items.Count; j++)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -121,7 +121,11 @@ namespace SabreTools.Filtering
|
|||||||
{
|
{
|
||||||
ConcurrentList<DatItem>? items = datFile.Items[key];
|
ConcurrentList<DatItem>? items = datFile.Items[key];
|
||||||
if (items == null)
|
if (items == null)
|
||||||
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
return;
|
return;
|
||||||
|
#else
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
for (int j = 0; j < items.Count; j++)
|
for (int j = 0; j < items.Count; j++)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1786,6 +1786,11 @@ Some special strings that can be used:
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
protected Filtering.Filter Filter { get; set; }
|
protected Filtering.Filter Filter { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Preonfigured FilterRunner
|
||||||
|
/// </summary>
|
||||||
|
protected Filter.FilterRunner FilterRunner { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Pre-configured DatHeader
|
/// Pre-configured DatHeader
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -1894,6 +1899,7 @@ Some special strings that can be used:
|
|||||||
Cleaner = GetCleaner(features);
|
Cleaner = GetCleaner(features);
|
||||||
Extras = GetExtras(features);
|
Extras = GetExtras(features);
|
||||||
Filter = GetFilter(features);
|
Filter = GetFilter(features);
|
||||||
|
FilterRunner = GetFilterRunner(features);
|
||||||
Header = GetDatHeader(features);
|
Header = GetDatHeader(features);
|
||||||
LogLevel = GetString(features, LogLevelStringValue).AsLogLevel();
|
LogLevel = GetString(features, LogLevelStringValue).AsLogLevel();
|
||||||
OutputDir = GetString(features, OutputDirStringValue)?.Trim('"');
|
OutputDir = GetString(features, OutputDirStringValue)?.Trim('"');
|
||||||
@@ -2243,6 +2249,22 @@ Some special strings that can be used:
|
|||||||
return filter;
|
return filter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get FilterRunner from feature list
|
||||||
|
/// </summary>
|
||||||
|
private static Filter.FilterRunner GetFilterRunner(Dictionary<string, Feature> features)
|
||||||
|
{
|
||||||
|
// Populate filters
|
||||||
|
List<string> filterPairs = GetList(features, FilterListValue);
|
||||||
|
var filterRunner = new Filter.FilterRunner(filterPairs.ToArray());
|
||||||
|
|
||||||
|
// TODO: Support this use case somehow
|
||||||
|
// Include 'of" in game filters
|
||||||
|
//filter.MachineFilter.IncludeOfInGame = GetBoolean(features, MatchOfTagsValue);
|
||||||
|
|
||||||
|
return filterRunner;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get Remover from feature list
|
/// Get Remover from feature list
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ namespace SabreTools.Features
|
|||||||
Extras.ApplyExtras(datdata);
|
Extras.ApplyExtras(datdata);
|
||||||
Splitter.ApplySplitting(datdata, useTags: false);
|
Splitter.ApplySplitting(datdata, useTags: false);
|
||||||
Filter.ApplyFilters(datdata);
|
Filter.ApplyFilters(datdata);
|
||||||
|
//FilterRunner.Run(datdata); // TODO: Create helper method to run over entire DAT
|
||||||
Cleaner.ApplyCleaning(datdata);
|
Cleaner.ApplyCleaning(datdata);
|
||||||
Remover.ApplyRemovals(datdata);
|
Remover.ApplyRemovals(datdata);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user