/// <summary> /// Initializes a new instance of the EcsFeaturesConfigurationPageViewModel type. /// </summary> public EcsFeaturesConfigurationPageViewModel() { var selectableOptions = new EcsFeatures[] { EcsFeatures.Incompatible, EcsFeatures.Tolerates, EcsFeatures.Enhances, EcsFeatures.Requires }; EcsOptions = new ObservableCollection <ProgramFeatureImageViewModel>(selectableOptions.ToFeatureViewModels(EcsFeatureSet.Data)); selectableOptions = new EcsFeatures[] { EcsFeatures.SerialPortEnhanced, EcsFeatures.SerialPortRequired }; SerialPortOptions = new ObservableCollection <ProgramFeatureImageViewModel>(selectableOptions.ToFeatureViewModels(EcsFeatureSet.Data)); }
private void UpdateCompatibility(EcsFeatures compatibility) { EnableFeatureEditing = compatibility.HasFlag(EcsFeatures.Enhances); EnableSerialPortOptionSelection = EnableFeatureEditing && UsesSerialPort; if (!EnableFeatureEditing) { UsesCassette = false; UsesSynthesizer = false; UsesPrinter = false; UsesSerialPort = false; SerialPort = null; } else { if (compatibility == EcsFeatures.Enhances) { if ((SerialPort != null) && (SerialPort.Flags == (uint)EcsFeatures.SerialPortRequired)) { SerialPort = SerialPortOptions.First(p => p.Flags == (uint)EcsFeatures.SerialPortEnhanced); } } } }
/// <inheritdoc /> public IProgramFeaturesBuilder WithEcsFeatures(EcsFeatures ecsFeatures) { _programFeatures.Ecs = ecsFeatures; return(this); }
/// <summary> /// Converts EcsFeatures to LuigiFeatureFlags. /// </summary> /// <param name="features">The ECS features to convert.</param> /// <returns>The ECS feature flags represented as LuigiFeatureFlags.</returns> public static LuigiFeatureFlags ToLuigiFeatureFlags(this EcsFeatures features) { return(((FeatureCompatibility)features & FeatureCompatibilityHelpers.ValidFeaturesMask).ToLuigiFeatureFlags(FeatureCategory.Ecs)); }
/// <summary> /// Creates a new instance if the UnmergedProgram structure. /// </summary> /// <param name="code">INTV Funhouse code for the ROM.</param> /// <param name="title">The title of the program (typically title screen title).</param> /// <param name="vendor">Vendor who wrote the program.</param> /// <param name="year">The year the program was copyrighted (or released).</param> /// <param name="crcData">The CRC values of known versions of the program.</param> /// <param name="crcDescriptions">The descriptions of the known versions of the program for each CRC.</param> /// <param name="generalFeatures">Generic program features.</param> /// <param name="ecs">ECS feature requirements.</param> internal UnmergedProgram(string code, string title, string vendor, string year, uint[] crcData, string[] crcDescriptions, GeneralFeatures generalFeatures, EcsFeatures ecs) { Code = code; CrcData = crcData; CrcDescriptions = crcDescriptions; CrcCfgs = Enumerable.Repeat(-1, crcData.Count()).ToArray(); Year = year; Title = title; Vendor = vendor; Features = new ProgramFeatures(); Features.GeneralFeatures = generalFeatures; Features.Ecs = ecs; }