/// <summary> /// Set remover from a value /// </summary> /// <param name="field">Key for the remover to be set</param> public bool SetRemover(string field) { // If the key is null or empty, return false if (string.IsNullOrWhiteSpace(field)) { return(false); } // If we have a Machine field MachineField machineField = field.AsMachineField(); if (machineField != MachineField.NULL) { MachineFields.Add(machineField); return(true); } // If we have a DatItem field DatItemField datItemField = field.AsDatItemField(); if (datItemField != DatItemField.NULL) { DatItemFields.Add(datItemField); return(true); } return(false); }
/// <summary> /// Remove fields with given values /// </summary> /// <param name="datItem">DatItem to remove fields from</param> public void RemoveFields(DatItem datItem) { if (datItem == null) { return; } #region Common if (MachineFields != null && MachineFields.Any() && datItem.Machine != null) { RemoveFields(datItem.Machine); } if (DatItemFields == null || !DatItemFields.Any()) { return; } if (DatItemFields.Contains(DatItemField.Name)) { datItem.SetName(null); } #endregion #region Item-Specific if (datItem is Adjuster) { RemoveFields(datItem as Adjuster); } else if (datItem is Analog) { RemoveFields(datItem as Analog); } else if (datItem is BiosSet) { RemoveFields(datItem as BiosSet); } else if (datItem is Chip) { RemoveFields(datItem as Chip); } else if (datItem is Condition) { RemoveFields(datItem as Condition); } else if (datItem is Configuration) { RemoveFields(datItem as Configuration); } else if (datItem is Control) { RemoveFields(datItem as Control); } else if (datItem is DataArea) { RemoveFields(datItem as DataArea); } else if (datItem is Device) { RemoveFields(datItem as Device); } else if (datItem is DipSwitch) { RemoveFields(datItem as DipSwitch); } else if (datItem is Disk) { RemoveFields(datItem as Disk); } else if (datItem is DiskArea) { RemoveFields(datItem as DiskArea); } else if (datItem is Display) { RemoveFields(datItem as Display); } else if (datItem is Driver) { RemoveFields(datItem as Driver); } else if (datItem is Extension) { RemoveFields(datItem as Extension); } else if (datItem is Feature) { RemoveFields(datItem as Feature); } else if (datItem is Info) { RemoveFields(datItem as Info); } else if (datItem is Input) { RemoveFields(datItem as Input); } else if (datItem is Instance) { RemoveFields(datItem as Instance); } else if (datItem is Location) { RemoveFields(datItem as Location); } else if (datItem is Media) { RemoveFields(datItem as Media); } else if (datItem is Part) { RemoveFields(datItem as Part); } else if (datItem is PartFeature) { RemoveFields(datItem as PartFeature); } else if (datItem is Port) { RemoveFields(datItem as Port); } else if (datItem is RamOption) { RemoveFields(datItem as RamOption); } else if (datItem is Release) { RemoveFields(datItem as Release); } else if (datItem is Rom) { RemoveFields(datItem as Rom); } else if (datItem is Setting) { RemoveFields(datItem as Setting); } else if (datItem is SharedFeature) { RemoveFields(datItem as SharedFeature); } else if (datItem is Slot) { RemoveFields(datItem as Slot); } else if (datItem is SlotOption) { RemoveFields(datItem as SlotOption); } else if (datItem is SoftwareList) { RemoveFields(datItem as SoftwareList); } else if (datItem is Sound) { RemoveFields(datItem as Sound); } #endregion }
/// <summary> /// Remove fields with given values /// </summary> /// <param name="machine">Machine to remove fields from</param> private void RemoveFields(Machine machine) { #region Common if (MachineFields.Contains(MachineField.Name)) { machine.Name = null; } if (MachineFields.Contains(MachineField.Comment)) { machine.Comment = null; } if (MachineFields.Contains(MachineField.Description)) { machine.Description = null; } if (MachineFields.Contains(MachineField.Year)) { machine.Year = null; } if (MachineFields.Contains(MachineField.Manufacturer)) { machine.Manufacturer = null; } if (MachineFields.Contains(MachineField.Publisher)) { machine.Publisher = null; } if (MachineFields.Contains(MachineField.Category)) { machine.Category = null; } if (MachineFields.Contains(MachineField.RomOf)) { machine.RomOf = null; } if (MachineFields.Contains(MachineField.CloneOf)) { machine.CloneOf = null; } if (MachineFields.Contains(MachineField.SampleOf)) { machine.SampleOf = null; } if (MachineFields.Contains(MachineField.Type)) { machine.MachineType = 0x0; } #endregion #region AttractMode if (MachineFields.Contains(MachineField.Players)) { machine.Players = null; } if (MachineFields.Contains(MachineField.Rotation)) { machine.Rotation = null; } if (MachineFields.Contains(MachineField.Control)) { machine.Control = null; } if (MachineFields.Contains(MachineField.Status)) { machine.Status = null; } if (MachineFields.Contains(MachineField.DisplayCount)) { machine.DisplayCount = null; } if (MachineFields.Contains(MachineField.DisplayType)) { machine.DisplayType = null; } if (MachineFields.Contains(MachineField.Buttons)) { machine.Buttons = null; } #endregion #region ListXML if (MachineFields.Contains(MachineField.History)) { machine.History = null; } if (MachineFields.Contains(MachineField.SourceFile)) { machine.SourceFile = null; } if (MachineFields.Contains(MachineField.Runnable)) { machine.Runnable = Runnable.NULL; } #endregion #region Logiqx if (MachineFields.Contains(MachineField.Board)) { machine.Board = null; } if (MachineFields.Contains(MachineField.RebuildTo)) { machine.RebuildTo = null; } #endregion #region Logiqx EmuArc if (MachineFields.Contains(MachineField.TitleID)) { machine.TitleID = null; } if (MachineFields.Contains(MachineField.Developer)) { machine.Developer = null; } if (MachineFields.Contains(MachineField.Genre)) { machine.Genre = null; } if (MachineFields.Contains(MachineField.Subgenre)) { machine.Subgenre = null; } if (MachineFields.Contains(MachineField.Ratings)) { machine.Ratings = null; } if (MachineFields.Contains(MachineField.Score)) { machine.Score = null; } if (MachineFields.Contains(MachineField.Enabled)) { machine.Enabled = null; } if (MachineFields.Contains(MachineField.CRC)) { machine.Crc = null; } if (MachineFields.Contains(MachineField.RelatedTo)) { machine.RelatedTo = null; } #endregion #region OpenMSX if (MachineFields.Contains(MachineField.GenMSXID)) { machine.GenMSXID = null; } if (MachineFields.Contains(MachineField.System)) { machine.System = null; } if (MachineFields.Contains(MachineField.Country)) { machine.Country = null; } #endregion #region SoftwareList if (MachineFields.Contains(MachineField.Supported)) { machine.Supported = Supported.NULL; } #endregion }