Promote Display

This commit is contained in:
Matt Nadareski
2020-09-02 21:36:14 -07:00
parent 08303b81de
commit 3700e5f7a7
12 changed files with 733 additions and 638 deletions

View File

@@ -152,12 +152,6 @@ namespace SabreTools.Library.DatItems
[JsonProperty("runnable", DefaultValueHandling = DefaultValueHandling.Ignore)]
public Runnable Runnable { get; set; } = Runnable.NULL;
/// <summary>
/// List of associated displays
/// </summary>
[JsonProperty("displays", DefaultValueHandling = DefaultValueHandling.Ignore)]
public List<Display> Displays { get; set; } = null;
/// <summary>
/// List of associated inputs
/// </summary>
@@ -366,23 +360,6 @@ namespace SabreTools.Library.DatItems
if (mappings.Keys.Contains(Field.Machine_Runnable))
Runnable = mappings[Field.Machine_Runnable].AsRunnable();
// TODO: Add Machine_DeviceReference*
// TODO: Add Machine_Chip*
// TODO: Add Machine_Display*
// TODO: Add Machine_Sound*
// TODO: Add Machine_Condition*
// TODO: Add Machine_Input*
// TODO: Add Machine_DipSwitch*
// TODO: Add Machine_Configuration*
// TODO: Add Machine_Port*
// TODO: Add Machine_Adjuster*
// TODO: Add Machine_Driver*
// TODO: Add Machine_Feature*
// TODO: Add Machine_Device*
// TODO: Add Machine_Slot*
// TODO: Add Machine_SoftwareList*
// TODO: Add Machine_RamOption*
#endregion
#region Logiqx
@@ -516,7 +493,6 @@ namespace SabreTools.Library.DatItems
SourceFile = this.SourceFile,
Runnable = this.Runnable,
Displays = this.Displays,
Inputs = this.Inputs,
#endregion
@@ -714,289 +690,6 @@ namespace SabreTools.Library.DatItems
if (filter.Machine_Runnable.MatchesNegative(Runnable.NULL, Runnable) == true)
return false;
#region Displays
// Machine_Displays
if (filter.Machine_Displays.MatchesNeutral(null, Displays?.Any() ?? null) == false)
return false;
// Machine_Display_Tag
if (Displays?.Any() == true)
{
bool anyPositive = false;
bool anyNegative = false;
foreach (var display in Displays)
{
if (filter.Machine_Display_Tag.MatchesPositiveSet(display?.Tag) != false)
anyPositive = true;
if (filter.Machine_Display_Tag.MatchesNegativeSet(display?.Tag) == true)
anyNegative = true;
}
if (!anyPositive)
return false;
if (anyNegative)
return false;
}
// Machine_Display_Type
if (Displays?.Any() == true)
{
bool anyPositive = false;
bool anyNegative = false;
foreach (var display in Displays)
{
if (filter.Machine_Display_Type.MatchesPositiveSet(display?.Type) != false)
anyPositive = true;
if (filter.Machine_Display_Type.MatchesNegativeSet(display?.Type) == true)
anyNegative = true;
}
if (!anyPositive)
return false;
if (anyNegative)
return false;
}
// Machine_Display_Rotate
if (Displays?.Any() == true)
{
bool anyPositive = false;
bool anyNegative = false;
foreach (var display in Displays)
{
if (filter.Machine_Display_Rotate.MatchesPositiveSet(display?.Rotate) != false)
anyPositive = true;
if (filter.Machine_Display_Rotate.MatchesNegativeSet(display?.Rotate) == true)
anyNegative = true;
}
if (!anyPositive)
return false;
if (anyNegative)
return false;
}
// Machine_Display_FlipX
if (Displays?.Any() == true)
{
bool anyNeutral = false;
foreach (var display in Displays)
{
if (filter.Machine_Display_FlipX.MatchesNeutral(null, display?.FlipX) != false)
anyNeutral = true;
}
if (!anyNeutral)
return false;
}
// Machine_Display_Width
if (Displays?.Any() == true)
{
bool anyPositive = false;
bool anyNegative = false;
foreach (var display in Displays)
{
if (filter.Machine_Display_Width.MatchesPositiveSet(display?.Width) != false)
anyPositive = true;
if (filter.Machine_Display_Width.MatchesNegativeSet(display?.Width) == true)
anyNegative = true;
}
if (!anyPositive)
return false;
if (anyNegative)
return false;
}
// Machine_Display_Height
if (Displays?.Any() == true)
{
bool anyPositive = false;
bool anyNegative = false;
foreach (var display in Displays)
{
if (filter.Machine_Display_Height.MatchesPositiveSet(display?.Height) != false)
anyPositive = true;
if (filter.Machine_Display_Height.MatchesNegativeSet(display?.Height) == true)
anyNegative = true;
}
if (!anyPositive)
return false;
if (anyNegative)
return false;
}
// Machine_Display_Refresh
if (Displays?.Any() == true)
{
bool anyPositive = false;
bool anyNegative = false;
foreach (var display in Displays)
{
if (filter.Machine_Display_Refresh.MatchesPositiveSet(display?.Refresh) != false)
anyPositive = true;
if (filter.Machine_Display_Refresh.MatchesNegativeSet(display?.Refresh) == true)
anyNegative = true;
}
if (!anyPositive)
return false;
if (anyNegative)
return false;
}
// Machine_Display_PixClock
if (Displays?.Any() == true)
{
bool anyPositive = false;
bool anyNegative = false;
foreach (var display in Displays)
{
if (filter.Machine_Display_PixClock.MatchesPositiveSet(display?.PixClock) != false)
anyPositive = true;
if (filter.Machine_Display_PixClock.MatchesNegativeSet(display?.PixClock) == true)
anyNegative = true;
}
if (!anyPositive)
return false;
if (anyNegative)
return false;
}
// Machine_Display_HTotal
if (Displays?.Any() == true)
{
bool anyPositive = false;
bool anyNegative = false;
foreach (var display in Displays)
{
if (filter.Machine_Display_HTotal.MatchesPositiveSet(display?.HTotal) != false)
anyPositive = true;
if (filter.Machine_Display_HTotal.MatchesNegativeSet(display?.HTotal) == true)
anyNegative = true;
}
if (!anyPositive)
return false;
if (anyNegative)
return false;
}
// Machine_Display_HBEnd
if (Displays?.Any() == true)
{
bool anyPositive = false;
bool anyNegative = false;
foreach (var display in Displays)
{
if (filter.Machine_Display_HBEnd.MatchesPositiveSet(display?.HBEnd) != false)
anyPositive = true;
if (filter.Machine_Display_HBEnd.MatchesNegativeSet(display?.HBEnd) == true)
anyNegative = true;
}
if (!anyPositive)
return false;
if (anyNegative)
return false;
}
// Machine_Display_HBStart
if (Displays?.Any() == true)
{
bool anyPositive = false;
bool anyNegative = false;
foreach (var display in Displays)
{
if (filter.Machine_Display_HBStart.MatchesPositiveSet(display?.HBStart) != false)
anyPositive = true;
if (filter.Machine_Display_HBStart.MatchesNegativeSet(display?.HBStart) == true)
anyNegative = true;
}
if (!anyPositive)
return false;
if (anyNegative)
return false;
}
// Machine_Display_VTotal
if (Displays?.Any() == true)
{
bool anyPositive = false;
bool anyNegative = false;
foreach (var display in Displays)
{
if (filter.Machine_Display_VTotal.MatchesPositiveSet(display?.VTotal) != false)
anyPositive = true;
if (filter.Machine_Display_VTotal.MatchesNegativeSet(display?.VTotal) == true)
anyNegative = true;
}
if (!anyPositive)
return false;
if (anyNegative)
return false;
}
// Machine_Display_VBEnd
if (Displays?.Any() == true)
{
bool anyPositive = false;
bool anyNegative = false;
foreach (var display in Displays)
{
if (filter.Machine_Display_VBEnd.MatchesPositiveSet(display?.VBEnd) != false)
anyPositive = true;
if (filter.Machine_Display_VBEnd.MatchesNegativeSet(display?.VBEnd) == true)
anyNegative = true;
}
if (!anyPositive)
return false;
if (anyNegative)
return false;
}
// Machine_Display_VBStart
if (Displays?.Any() == true)
{
bool anyPositive = false;
bool anyNegative = false;
foreach (var display in Displays)
{
if (filter.Machine_Display_VBStart.MatchesPositiveSet(display?.VBStart) != false)
anyPositive = true;
if (filter.Machine_Display_VBStart.MatchesNegativeSet(display?.VBStart) == true)
anyNegative = true;
}
if (!anyPositive)
return false;
if (anyNegative)
return false;
}
#endregion
// TODO: Inputs
// TODO: Inputs.Controls