[Filter] Add logic hooked up to _includeOfInGame

Basically the logic that has been added will allow an external flag to enable the game name and not game name lists to match the cloneof and romof tags as well. This will allow more advanced set-building.
This commit is contained in:
Matt Nadareski
2017-02-08 14:02:43 -08:00
parent 1ad4937ccd
commit 77be3b3d84

View File

@@ -736,28 +736,44 @@ namespace SabreTools.Helper.Dats
{ {
if (name.StartsWith("*") && name.EndsWith("*")) if (name.StartsWith("*") && name.EndsWith("*"))
{ {
if (!item.Machine.Name.ToLowerInvariant().Contains(name.ToLowerInvariant().Replace("*", ""))) if (_includeOfInGame
? (!item.Machine.Name.ToLowerInvariant().Contains(name.ToLowerInvariant().Trim('*')))
&& (!item.Machine.CloneOf.ToLowerInvariant().Contains(name.ToLowerInvariant().Trim('*')))
&& (!item.Machine.RomOf.ToLowerInvariant().Contains(name.ToLowerInvariant().Trim('*')))
: (!item.Machine.Name.ToLowerInvariant().Contains(name.ToLowerInvariant().Trim('*'))))
{ {
found = false; found = false;
} }
} }
else if (name.StartsWith("*")) else if (name.StartsWith("*"))
{ {
if (!item.Machine.Name.EndsWith(name.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase)) if (_includeOfInGame
? (!item.Machine.Name.EndsWith(name.Trim('*'), StringComparison.InvariantCultureIgnoreCase))
&& (!item.Machine.CloneOf.EndsWith(name.Trim('*'), StringComparison.InvariantCultureIgnoreCase))
&& (!item.Machine.RomOf.EndsWith(name.Trim('*'), StringComparison.InvariantCultureIgnoreCase))
: (!item.Machine.Name.EndsWith(name.Trim('*'), StringComparison.InvariantCultureIgnoreCase)))
{ {
found = false; found = false;
} }
} }
else if (name.EndsWith("*")) else if (name.EndsWith("*"))
{ {
if (!item.Machine.Name.StartsWith(name.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase)) if (_includeOfInGame
? (!item.Machine.Name.StartsWith(name.Trim('*'), StringComparison.InvariantCultureIgnoreCase))
&& (!item.Machine.CloneOf.StartsWith(name.Trim('*'), StringComparison.InvariantCultureIgnoreCase))
&& (!item.Machine.RomOf.StartsWith(name.Trim('*'), StringComparison.InvariantCultureIgnoreCase))
: (!item.Machine.Name.StartsWith(name.Trim('*'), StringComparison.InvariantCultureIgnoreCase)))
{ {
found = false; found = false;
} }
} }
else else
{ {
if (!String.Equals(item.Machine.Name, name, StringComparison.InvariantCultureIgnoreCase)) if (_includeOfInGame
? (!String.Equals(item.Machine.Name, name, StringComparison.InvariantCultureIgnoreCase))
&& (!String.Equals(item.Machine.CloneOf, name, StringComparison.InvariantCultureIgnoreCase))
&& (!String.Equals(item.Machine.RomOf, name, StringComparison.InvariantCultureIgnoreCase))
: (!String.Equals(item.Machine.Name, name, StringComparison.InvariantCultureIgnoreCase)))
{ {
found = false; found = false;
} }
@@ -777,28 +793,44 @@ namespace SabreTools.Helper.Dats
{ {
if (name.StartsWith("*") && name.EndsWith("*")) if (name.StartsWith("*") && name.EndsWith("*"))
{ {
if (item.Machine.Name.ToLowerInvariant().Contains(name.ToLowerInvariant().Replace("*", ""))) if (_includeOfInGame
? (item.Machine.Name.ToLowerInvariant().Contains(name.ToLowerInvariant().Trim('*')))
|| (item.Machine.CloneOf.ToLowerInvariant().Contains(name.ToLowerInvariant().Trim('*')))
|| (item.Machine.RomOf.ToLowerInvariant().Contains(name.ToLowerInvariant().Trim('*')))
: (item.Machine.Name.ToLowerInvariant().Contains(name.ToLowerInvariant().Trim('*'))))
{ {
found = false; found = false;
} }
} }
else if (name.StartsWith("*")) else if (name.StartsWith("*"))
{ {
if (item.Machine.Name.EndsWith(name.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase)) if (_includeOfInGame
? (item.Machine.Name.EndsWith(name.Trim('*'), StringComparison.InvariantCultureIgnoreCase))
|| (item.Machine.CloneOf.EndsWith(name.Trim('*'), StringComparison.InvariantCultureIgnoreCase))
|| (item.Machine.RomOf.EndsWith(name.Trim('*'), StringComparison.InvariantCultureIgnoreCase))
: (item.Machine.Name.EndsWith(name.Trim('*'), StringComparison.InvariantCultureIgnoreCase)))
{ {
found = false; found = false;
} }
} }
else if (name.EndsWith("*")) else if (name.EndsWith("*"))
{ {
if (item.Machine.Name.StartsWith(name.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase)) if (_includeOfInGame
? (item.Machine.Name.StartsWith(name.Trim('*'), StringComparison.InvariantCultureIgnoreCase))
|| (item.Machine.CloneOf.StartsWith(name.Trim('*'), StringComparison.InvariantCultureIgnoreCase))
|| (item.Machine.RomOf.StartsWith(name.Trim('*'), StringComparison.InvariantCultureIgnoreCase))
: (item.Machine.Name.StartsWith(name.Trim('*'), StringComparison.InvariantCultureIgnoreCase)))
{ {
found = false; found = false;
} }
} }
else else
{ {
if (String.Equals(item.Machine.Name, name, StringComparison.InvariantCultureIgnoreCase)) if (_includeOfInGame
? (String.Equals(item.Machine.Name, name, StringComparison.InvariantCultureIgnoreCase))
|| (String.Equals(item.Machine.CloneOf, name, StringComparison.InvariantCultureIgnoreCase))
|| (String.Equals(item.Machine.RomOf, name, StringComparison.InvariantCultureIgnoreCase))
: (String.Equals(item.Machine.Name, name, StringComparison.InvariantCultureIgnoreCase)))
{ {
found = false; found = false;
} }