internal void CheckValidSettings() { UpdateStatus("Checking Settings..."); var hasSourceNAND = (SourceNANDData != null && !string.IsNullOrEmpty(SourceNANDPath)); if (!hasSourceNAND) { if (SpareType == SpareType.Auto || HackType == ECCType.RGH2) { throw new InvalidOperationException("Your settings are incomplete or unsupported"); } } if (SourceNANDData == null) { NANDParser.Source = SourceNANDPath; } if (SpareType == SpareType.Auto) { UpdateStatus("Checking Spare Type..."); SpareType = SourceNANDData != null?NANDParser.GetSpareType(ref SourceNANDData) : NANDParser.GetSpareType(SourceNANDPath); } if (TargetSMCData == null || string.IsNullOrEmpty(TargetSMCPath) && !hasSourceNAND) { throw new InvalidOperationException("Your settings are incomplete or unsupported (You must etheir supply a source nand or SMCDATA/Path to SMC File"); } if (TargetSMCData == null) { UpdateStatus("Grabbing SMC Data..."); if (!string.IsNullOrEmpty(TargetSMCPath)) { TargetCBAData = File.ReadAllBytes(TargetSMCPath); } else if (SourceNANDData == null) { TargetSMCData = NANDParser.GrabData(NANDParser.NANDParts.SMC); } else { TargetSMCData = NANDParser.GrabData(ref SourceNANDData, NANDParser.NANDParts.SMC); } } #region CB_A and CB_B if (!hasSourceNAND && TargetCBAData == null && string.IsNullOrEmpty(TargetCBAPath) && HackType != ECCType.RGX) { if (HackType == ECCType.RGH1) { throw new InvalidOperationException("Your settings are incomplete or unsupported (You must etheir supply a source nand or CB DATA/Path to CB File"); } throw new InvalidOperationException("Your settings are incomplete or unsupported (You must etheir supply a source nand or CB_A DATA/Path to CB_A File"); } UpdateStatus(HackType == ECCType.RGH1 ? "Grabbing CB Data..." : "Grabbing CB_A Data..."); if (TargetCBAData == null && !string.IsNullOrEmpty(TargetCBAPath) && HackType != ECCType.RGX) { TargetCBAData = File.ReadAllBytes(TargetCBAPath); } else if (HackType == ECCType.RGX) { UpdateStatus("Using Built in MFG CB_A"); TargetCBAData = GetBuiltInData("CBMFG"); } else if (SourceNANDData == null) { TargetCBAData = NANDParser.GrabData(NANDParser.NANDParts.CBA); } else { TargetCBAData = NANDParser.GrabData(ref SourceNANDData, NANDParser.NANDParts.CBA); } if (HackType != ECCType.RGH1) { if (TargetCBBData == null && string.IsNullOrEmpty(TargetCBBPath)) { throw new InvalidOperationException("Your settings are incomplete or unsupported (You must etheir supply a source nand or CB_B DATA/Path to CB_B File"); } if (TargetCBBData == null) { UpdateStatus("Grabbing CB_B Data..."); if (TargetCBBData == null && !string.IsNullOrEmpty(TargetCBBPath)) { TargetCBBData = File.ReadAllBytes(TargetCBBPath); } else if (SourceNANDData == null) { TargetCBBData = NANDParser.GrabData(NANDParser.NANDParts.CBB); } else { TargetCBBData = NANDParser.GrabData(ref SourceNANDData, NANDParser.NANDParts.CBB); } } } #endregion CB_A and CB_B #region CD UpdateStatus("Grabbing CD Data..."); if (TargetCDData == null && !string.IsNullOrEmpty(TargetCDPath)) { TargetCDData = File.ReadAllBytes(TargetCDPath); } if (TargetCDData == null && string.IsNullOrEmpty(TargetCDPath)) { UpdateStatus("Using Built in CD"); TargetCDData = GetBuiltInData("CD"); } #endregion CD #region XeLL UpdateStatus("Grabbing XeLL Data..."); if (TargetXeLLData == null && !string.IsNullOrEmpty(TargetXeLLPath)) { TargetCDData = File.ReadAllBytes(TargetXeLLPath); } else if (TargetXeLLData == null && string.IsNullOrEmpty(TargetXeLLPath)) { UpdateStatus("Using Built in XeLL"); TargetXeLLData = GetBuiltInData("XELL"); } #endregion XeLL }
// ReSharper restore MemberCanBeInternal // ReSharper restore UnassignedField.Global public ECCArgs(ECCType hackType = ECCType.Auto, SpareType spareType = SpareType.Auto) : this() { SpareType = spareType; HackType = hackType; }