diff --git a/CHANGELIST.md b/CHANGELIST.md index 6888d4b6..93d16f8e 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -57,6 +57,7 @@ - Make site code formatting helper method - Better helper method organization - Start supporting ordered tags and non-tags +- Add more non-tag support; rearrange info window ### 2.2 (2021-12-30) - Fix Saturn header finding diff --git a/MPF.Core/Data/Constants.cs b/MPF.Core/Data/Constants.cs index 92052361..a5a60116 100644 --- a/MPF.Core/Data/Constants.cs +++ b/MPF.Core/Data/Constants.cs @@ -100,13 +100,7 @@ namespace MPF.Core.Data public const string PlayStationEDCField = "EDC"; public const string PlayStationAntiModchipField = "Anti-modchip"; public const string PlayStationLibCryptField = "LibCrypt"; - public const string XBOXDMIHash = "DMI"; - public const string XBOXPFIHash = "PFI"; - public const string XBOXSSHash = "SS"; public const string XBOXSSRanges = "Security Sector Ranges"; - public const string XBOXSSVersion = "Security Sector Version"; - public const string XBOXXMID = "XMID"; - public const string XBOX360XeMID = "XeMID"; // Default values diff --git a/MPF.Library/InfoTool.cs b/MPF.Library/InfoTool.cs index cc45a25c..5754e664 100644 --- a/MPF.Library/InfoTool.cs +++ b/MPF.Library/InfoTool.cs @@ -889,8 +889,7 @@ namespace MPF.Library // Add all special fields before any comments info.CommonDiscInfo.Comments = string.Join( - "\n", info.CommonDiscInfo.CommentsSpecialFields - .OrderBy(kvp => kvp.Key) + "\n", OrderCommentTags(info.CommonDiscInfo.CommentsSpecialFields) .Where(kvp => !string.IsNullOrWhiteSpace(kvp.Value)) .Select(FormatSiteTag) .Where(s => !string.IsNullOrEmpty(s)) @@ -1692,6 +1691,15 @@ namespace MPF.Library text = text.Replace(siteCode.LongName(), siteCode.ShortName()); } + // For some outdated tags, we need to use alternate names + text = text.Replace("DMI:", ((SiteCode?)SiteCode.DMIHash).ShortName()); + text = text.Replace("LucasArts ID:", ((SiteCode?)SiteCode.LucasArtsID).ShortName()); + text = text.Replace("PFI:", ((SiteCode?)SiteCode.PFIHash).ShortName()); + text = text.Replace("SS:", ((SiteCode?)SiteCode.SSHash).ShortName()); + text = text.Replace("SS version:", ((SiteCode?)SiteCode.SSVersion).ShortName()); + text = text.Replace("XeMID:", ((SiteCode?)SiteCode.XeMID).ShortName()); + text = text.Replace("XMID:", ((SiteCode?)SiteCode.XMID).ShortName()); + return text; } @@ -1886,6 +1894,99 @@ namespace MPF.Library if (tags == null || tags.Count == 0) return sorted; + // Identifying Info + if (tags.ContainsKey(SiteCode.AlternativeTitle)) + sorted.Add(new KeyValuePair(SiteCode.AlternativeTitle, tags[SiteCode.AlternativeTitle])); + if (tags.ContainsKey(SiteCode.AlternativeForeignTitle)) + sorted.Add(new KeyValuePair(SiteCode.AlternativeForeignTitle, tags[SiteCode.AlternativeForeignTitle])); + if (tags.ContainsKey(SiteCode.VolumeLabel)) + sorted.Add(new KeyValuePair(SiteCode.VolumeLabel, tags[SiteCode.VolumeLabel])); + if (tags.ContainsKey(SiteCode.InternalSerialName)) + sorted.Add(new KeyValuePair(SiteCode.InternalSerialName, tags[SiteCode.InternalSerialName])); + + if (tags.ContainsKey(SiteCode.XMID)) + sorted.Add(new KeyValuePair(SiteCode.XMID, tags[SiteCode.XMID])); + if (tags.ContainsKey(SiteCode.XeMID)) + sorted.Add(new KeyValuePair(SiteCode.XeMID, tags[SiteCode.XeMID])); + if (tags.ContainsKey(SiteCode.DMIHash)) + sorted.Add(new KeyValuePair(SiteCode.DMIHash, tags[SiteCode.DMIHash])); + if (tags.ContainsKey(SiteCode.PFIHash)) + sorted.Add(new KeyValuePair(SiteCode.PFIHash, tags[SiteCode.PFIHash])); + if (tags.ContainsKey(SiteCode.SSHash)) + sorted.Add(new KeyValuePair(SiteCode.SSHash, tags[SiteCode.SSHash])); + if (tags.ContainsKey(SiteCode.SSVersion)) + sorted.Add(new KeyValuePair(SiteCode.SSVersion, tags[SiteCode.SSVersion])); + + if (tags.ContainsKey(SiteCode.BBFCRegistrationNumber)) + sorted.Add(new KeyValuePair(SiteCode.BBFCRegistrationNumber, tags[SiteCode.BBFCRegistrationNumber])); + if (tags.ContainsKey(SiteCode.DiscHologramID)) + sorted.Add(new KeyValuePair(SiteCode.DiscHologramID, tags[SiteCode.DiscHologramID])); + if (tags.ContainsKey(SiteCode.DNASDiscID)) + sorted.Add(new KeyValuePair(SiteCode.DNASDiscID, tags[SiteCode.DNASDiscID])); + if (tags.ContainsKey(SiteCode.ISBN)) + sorted.Add(new KeyValuePair(SiteCode.ISBN, tags[SiteCode.ISBN])); + if (tags.ContainsKey(SiteCode.ISSN)) + sorted.Add(new KeyValuePair(SiteCode.ISSN, tags[SiteCode.ISSN])); + if (tags.ContainsKey(SiteCode.PPN)) + sorted.Add(new KeyValuePair(SiteCode.PPN, tags[SiteCode.PPN])); + if (tags.ContainsKey(SiteCode.VFCCode)) + sorted.Add(new KeyValuePair(SiteCode.VFCCode, tags[SiteCode.VFCCode])); + + if (tags.ContainsKey(SiteCode.Genre)) + sorted.Add(new KeyValuePair(SiteCode.Genre, tags[SiteCode.Genre])); + if (tags.ContainsKey(SiteCode.Series)) + sorted.Add(new KeyValuePair(SiteCode.Series, tags[SiteCode.Series])); + if (tags.ContainsKey(SiteCode.PostgapType)) + sorted.Add(new KeyValuePair(SiteCode.PostgapType, tags[SiteCode.PostgapType])); + if (tags.ContainsKey(SiteCode.VCD)) + sorted.Add(new KeyValuePair(SiteCode.VCD, tags[SiteCode.VCD])); + + // Publisher / Company IDs + if (tags.ContainsKey(SiteCode.AcclaimID)) + sorted.Add(new KeyValuePair(SiteCode.AcclaimID, tags[SiteCode.AcclaimID])); + if (tags.ContainsKey(SiteCode.ActivisionID)) + sorted.Add(new KeyValuePair(SiteCode.ActivisionID, tags[SiteCode.ActivisionID])); + if (tags.ContainsKey(SiteCode.BandaiID)) + sorted.Add(new KeyValuePair(SiteCode.BandaiID, tags[SiteCode.BandaiID])); + if (tags.ContainsKey(SiteCode.ElectronicArtsID)) + sorted.Add(new KeyValuePair(SiteCode.ElectronicArtsID, tags[SiteCode.ElectronicArtsID])); + if (tags.ContainsKey(SiteCode.FoxInteractiveID)) + sorted.Add(new KeyValuePair(SiteCode.FoxInteractiveID, tags[SiteCode.FoxInteractiveID])); + if (tags.ContainsKey(SiteCode.GTInteractiveID)) + sorted.Add(new KeyValuePair(SiteCode.GTInteractiveID, tags[SiteCode.GTInteractiveID])); + if (tags.ContainsKey(SiteCode.JASRACID)) + sorted.Add(new KeyValuePair(SiteCode.JASRACID, tags[SiteCode.JASRACID])); + if (tags.ContainsKey(SiteCode.KingRecordsID)) + sorted.Add(new KeyValuePair(SiteCode.KingRecordsID, tags[SiteCode.KingRecordsID])); + if (tags.ContainsKey(SiteCode.KoeiID)) + sorted.Add(new KeyValuePair(SiteCode.KoeiID, tags[SiteCode.KoeiID])); + if (tags.ContainsKey(SiteCode.KonamiID)) + sorted.Add(new KeyValuePair(SiteCode.KonamiID, tags[SiteCode.KonamiID])); + if (tags.ContainsKey(SiteCode.LucasArtsID)) + sorted.Add(new KeyValuePair(SiteCode.LucasArtsID, tags[SiteCode.LucasArtsID])); + if (tags.ContainsKey(SiteCode.MicrosoftID)) + sorted.Add(new KeyValuePair(SiteCode.MicrosoftID, tags[SiteCode.MicrosoftID])); + if (tags.ContainsKey(SiteCode.NaganoID)) + sorted.Add(new KeyValuePair(SiteCode.NaganoID, tags[SiteCode.NaganoID])); + if (tags.ContainsKey(SiteCode.NamcoID)) + sorted.Add(new KeyValuePair(SiteCode.NamcoID, tags[SiteCode.NamcoID])); + if (tags.ContainsKey(SiteCode.NipponIchiSoftwareID)) + sorted.Add(new KeyValuePair(SiteCode.NipponIchiSoftwareID, tags[SiteCode.NipponIchiSoftwareID])); + if (tags.ContainsKey(SiteCode.OriginID)) + sorted.Add(new KeyValuePair(SiteCode.OriginID, tags[SiteCode.OriginID])); + if (tags.ContainsKey(SiteCode.PonyCanyonID)) + sorted.Add(new KeyValuePair(SiteCode.PonyCanyonID, tags[SiteCode.PonyCanyonID])); + if (tags.ContainsKey(SiteCode.SegaID)) + sorted.Add(new KeyValuePair(SiteCode.SegaID, tags[SiteCode.SegaID])); + if (tags.ContainsKey(SiteCode.SelenID)) + sorted.Add(new KeyValuePair(SiteCode.SelenID, tags[SiteCode.SelenID])); + if (tags.ContainsKey(SiteCode.TaitoID)) + sorted.Add(new KeyValuePair(SiteCode.TaitoID, tags[SiteCode.TaitoID])); + if (tags.ContainsKey(SiteCode.UbisoftID)) + sorted.Add(new KeyValuePair(SiteCode.UbisoftID, tags[SiteCode.UbisoftID])); + if (tags.ContainsKey(SiteCode.ValveID)) + sorted.Add(new KeyValuePair(SiteCode.ValveID, tags[SiteCode.ValveID])); + return sorted; } diff --git a/MPF.Modules/Aaru/Parameters.cs b/MPF.Modules/Aaru/Parameters.cs index 9d285928..86022b78 100644 --- a/MPF.Modules/Aaru/Parameters.cs +++ b/MPF.Modules/Aaru/Parameters.cs @@ -284,12 +284,12 @@ namespace MPF.Modules.Aaru break; case RedumpSystem.MicrosoftXbox: - if (GetXgdAuxInfo(sidecar, out string dmihash, out string pfihash, out string sshash, out string ss, out string ssver)) + if (GetXgdAuxInfo(sidecar, out string xgd1DMIHash, out string xgd1PFIHash, out string xgd1SSHash, out string ss, out string xgd1SSVer)) { - info.CommonDiscInfo.Comments += $"{Template.XBOXDMIHash}: {dmihash ?? ""}\n" + - $"{Template.XBOXPFIHash}: {pfihash ?? ""}\n" + - $"{Template.XBOXSSHash}: {sshash ?? ""}\n" + - $"{Template.XBOXSSVersion}: {ssver ?? ""}\n"; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.DMIHash] = xgd1DMIHash; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.PFIHash] = xgd1PFIHash; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSHash] = xgd1SSHash; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSVersion] = xgd1SSVer; info.Extras.SecuritySectorRanges = ss ?? ""; } @@ -303,12 +303,12 @@ namespace MPF.Modules.Aaru break; case RedumpSystem.MicrosoftXbox360: - if (GetXgdAuxInfo(sidecar, out string dmi360hash, out string pfi360hash, out string ss360hash, out string ss360, out string ssver360)) + if (GetXgdAuxInfo(sidecar, out string xgd23DMIHash, out string xgd23PFIHash, out string xgd23SSHash, out string ss360, out string xgd23SSVer)) { - info.CommonDiscInfo.Comments += $"{Template.XBOXDMIHash}: {dmi360hash ?? ""}\n" + - $"{Template.XBOXPFIHash}: {pfi360hash ?? ""}\n" + - $"{Template.XBOXSSHash}: {ss360hash ?? ""}\n" + - $"{Template.XBOXSSVersion}: {ssver360 ?? ""}\n"; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.DMIHash] = xgd23DMIHash; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.PFIHash] = xgd23PFIHash; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSHash] = xgd23SSHash; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSVersion] = xgd23SSVer; info.Extras.SecuritySectorRanges = ss360 ?? ""; } diff --git a/MPF.Modules/DiscImageCreator/Parameters.cs b/MPF.Modules/DiscImageCreator/Parameters.cs index f834980a..b5270038 100644 --- a/MPF.Modules/DiscImageCreator/Parameters.cs +++ b/MPF.Modules/DiscImageCreator/Parameters.cs @@ -477,7 +477,7 @@ namespace MPF.Modules.DiscImageCreator XgdInfo xgd1Info = new XgdInfo(xgd1XMID); if (xgd1Info?.Initialized == true) { - info.CommonDiscInfo.Comments += $"{Template.XBOXXMID}: {xgd1Info.XMID ?? ""}\n"; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.XMID] = xgd1Info.XMID; info.CommonDiscInfo.Serial = xgd1Info.GetSerial() ?? ""; info.VersionAndEditions.Version = xgd1Info.GetVersion() ?? ""; info.CommonDiscInfo.Region = xgd1Info.InternalRegion; @@ -485,10 +485,10 @@ namespace MPF.Modules.DiscImageCreator if (GetXGDAuxInfo(basePath + "_disc.txt", out string xgd1DMIHash, out string xgd1PFIHash, out string xgd1SSHash, out string xgd1SS, out string xgd1SSVer)) { - info.CommonDiscInfo.Comments += $"{Template.XBOXDMIHash}: {xgd1DMIHash ?? ""}\n" + - $"{Template.XBOXPFIHash}: {xgd1PFIHash ?? ""}\n" + - $"{Template.XBOXSSHash}: {xgd1SSHash ?? ""}\n" + - $"{Template.XBOXSSVersion}: {xgd1SSVer ?? ""}\n"; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.DMIHash] = xgd1DMIHash; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.PFIHash] = xgd1PFIHash; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSHash] = xgd1SSHash; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSVersion] = xgd1SSVer; info.Extras.SecuritySectorRanges = xgd1SS ?? ""; } @@ -499,7 +499,7 @@ namespace MPF.Modules.DiscImageCreator XgdInfo xgd23Info = new XgdInfo(xgd23XeMID); if (xgd23Info?.Initialized == true) { - info.CommonDiscInfo.Comments += $"{Template.XBOX360XeMID}: {xgd23Info.XMID ?? ""}\n"; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.XeMID] = xgd23Info.XMID; info.CommonDiscInfo.Serial = xgd23Info.GetSerial() ?? ""; info.VersionAndEditions.Version = xgd23Info.GetVersion() ?? ""; info.CommonDiscInfo.Region = xgd23Info.InternalRegion; @@ -507,10 +507,10 @@ namespace MPF.Modules.DiscImageCreator if (GetXGDAuxInfo(basePath + "_disc.txt", out string xgd23DMIHash, out string xgd23PFIHash, out string xgd23SSHash, out string xgd23SS, out string xgd23SSVer)) { - info.CommonDiscInfo.Comments += $"{Template.XBOXDMIHash}: {xgd23DMIHash ?? ""}\n" + - $"{Template.XBOXPFIHash}: {xgd23PFIHash ?? ""}\n" + - $"{Template.XBOXSSHash}: {xgd23SSHash ?? ""}\n" + - $"{Template.XBOXSSVersion}: {xgd23SSVer ?? ""}\n"; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.DMIHash] = xgd23DMIHash; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.PFIHash] = xgd23PFIHash; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSHash] = xgd23SSHash; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSVersion] = xgd23SSVer; info.Extras.SecuritySectorRanges = xgd23SS ?? ""; } diff --git a/MPF/ViewModels/DiscInformationViewModel.cs b/MPF/ViewModels/DiscInformationViewModel.cs index 3cb06a69..54e6710c 100644 --- a/MPF/ViewModels/DiscInformationViewModel.cs +++ b/MPF/ViewModels/DiscInformationViewModel.cs @@ -122,6 +122,8 @@ namespace MPF.GUI.ViewModels Parent.AntiModchip.Visibility = Visibility.Collapsed; else Parent.AntiModchip.Text = SubmissionInfo.CopyProtection.AntiModchip.LongName(); + if (SubmissionInfo?.CommonDiscInfo?.CommentsSpecialFields.Keys.Contains(SiteCode.DMIHash) != true) + Parent.DMIHash.Visibility = Visibility.Collapsed; if (string.IsNullOrWhiteSpace(SubmissionInfo?.CommonDiscInfo?.ErrorsCount)) Parent.ErrorsCount.Visibility = Visibility.Collapsed; if (string.IsNullOrWhiteSpace(SubmissionInfo?.CommonDiscInfo?.EXEDateBuildDate)) @@ -140,6 +142,8 @@ namespace MPF.GUI.ViewModels Parent.LibCrypt.Text = SubmissionInfo.CopyProtection.LibCrypt.LongName(); if (string.IsNullOrWhiteSpace(SubmissionInfo?.CopyProtection?.LibCryptData)) Parent.LibCryptData.Visibility = Visibility.Collapsed; + if (SubmissionInfo?.CommonDiscInfo?.CommentsSpecialFields.Keys.Contains(SiteCode.PFIHash) != true) + Parent.PFIHash.Visibility = Visibility.Collapsed; if (string.IsNullOrWhiteSpace(SubmissionInfo?.Extras?.PIC)) Parent.PIC.Visibility = Visibility.Collapsed; if (string.IsNullOrWhiteSpace(SubmissionInfo?.CopyProtection?.Protection)) @@ -148,10 +152,18 @@ namespace MPF.GUI.ViewModels Parent.PVD.Visibility = Visibility.Collapsed; if (string.IsNullOrWhiteSpace(SubmissionInfo?.CopyProtection?.SecuROMData)) Parent.SecuROMData.Visibility = Visibility.Collapsed; + if (SubmissionInfo?.CommonDiscInfo?.CommentsSpecialFields.Keys.Contains(SiteCode.SSHash) != true) + Parent.SSHash.Visibility = Visibility.Collapsed; if (string.IsNullOrWhiteSpace(SubmissionInfo?.Extras?.SecuritySectorRanges)) Parent.SecuritySectorRanges.Visibility = Visibility.Collapsed; + if (SubmissionInfo?.CommonDiscInfo?.CommentsSpecialFields.Keys.Contains(SiteCode.SSVersion) != true) + Parent.SSVersion.Visibility = Visibility.Collapsed; if (SubmissionInfo?.CommonDiscInfo?.CommentsSpecialFields.Keys.Contains(SiteCode.VolumeLabel) != true) Parent.VolumeLabel.Visibility = Visibility.Collapsed; + if (SubmissionInfo?.CommonDiscInfo?.CommentsSpecialFields.Keys.Contains(SiteCode.XeMID) != true) + Parent.XeMID.Visibility = Visibility.Collapsed; + if (SubmissionInfo?.CommonDiscInfo?.CommentsSpecialFields.Keys.Contains(SiteCode.XMID) != true) + Parent.XMID.Visibility = Visibility.Collapsed; } /// @@ -197,32 +209,36 @@ namespace MPF.GUI.ViewModels Parent.AlternativeForeignTitleTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.AlternativeForeignTitle]; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.Genre)) Parent.GenreTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.Genre]; - if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.InternalSerialName)) - Parent.InternalSerialName.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.InternalSerialName]; - if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.ISBN)) - Parent.ISBNTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ISBN]; - if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.ISSN)) - Parent.ISSNTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ISSN]; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.PostgapType)) Parent.PostgapTypeCheckBox.IsChecked = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.PostgapType] != null; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.Series)) Parent.SeriesTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.Series]; - if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.VolumeLabel)) - Parent.VolumeLabel.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.VolumeLabel]; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.VCD)) Parent.VCDCheckBox.IsChecked = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.VCD] != null; - // Media Identifiers + // Physical Identifiers + if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.BBFCRegistrationNumber)) + Parent.BBFCRegistrationNumberTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.BBFCRegistrationNumber]; + if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.DiscHologramID)) + Parent.DiscHologramIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.DiscHologramID]; + if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.DNASDiscID)) + Parent.DNASDiscIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.DNASDiscID]; + if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.ISBN)) + Parent.ISBNTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ISBN]; + if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.ISSN)) + Parent.ISSNTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ISSN]; + if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.PPN)) + Parent.PPNTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.PPN]; + if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.VFCCode)) + Parent.VFCCodeTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.VFCCode]; + + // Publisher Identifiers if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.AcclaimID)) Parent.AcclaimIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.AcclaimID]; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.ActivisionID)) Parent.ActivisionIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ActivisionID]; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.BandaiID)) Parent.BandaiIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.BandaiID]; - if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.BBFCRegistrationNumber)) - Parent.BBFCRegistrationNumberTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.BBFCRegistrationNumber]; - if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.DNASDiscID)) - Parent.DNASDiscIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.DNASDiscID]; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.ElectronicArtsID)) Parent.ElectronicArtsIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ElectronicArtsID]; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.FoxInteractiveID)) @@ -239,6 +255,8 @@ namespace MPF.GUI.ViewModels Parent.KonamiIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.KonamiID]; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.LucasArtsID)) Parent.LucasArtsIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.LucasArtsID]; + if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.MicrosoftID)) + Parent.MicrosoftIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.MicrosoftID]; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.NaganoID)) Parent.NaganoIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.NaganoID]; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.NamcoID)) @@ -249,8 +267,6 @@ namespace MPF.GUI.ViewModels Parent.OriginIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.OriginID]; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.PonyCanyonID)) Parent.PonyCanyonIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.PonyCanyonID]; - if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.PPN)) - Parent.PPNTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.PPN]; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.SegaID)) Parent.SegaIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.SegaID]; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.SelenID)) @@ -261,8 +277,16 @@ namespace MPF.GUI.ViewModels Parent.UbisoftIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.UbisoftID]; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.ValveID)) Parent.ValveIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ValveID]; - if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.VFCCode)) - Parent.VFCCodeTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.VFCCode]; + + // Read-Only Information + if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.InternalSerialName)) + Parent.InternalSerialName.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.InternalSerialName]; + if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.VolumeLabel)) + Parent.VolumeLabel.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.VolumeLabel]; + if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.XeMID)) + Parent.XeMID.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.XeMID]; + if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.XMID)) + Parent.XMID.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.XMID]; } // Content Fields @@ -318,24 +342,29 @@ namespace MPF.GUI.ViewModels if (SubmissionInfo.CommonDiscInfo.ContentsSpecialFields == null) SubmissionInfo.CommonDiscInfo.ContentsSpecialFields = new Dictionary(); + #region Comment Fields + // Additional Information SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.AlternativeTitle] = Parent.AlternativeTitleTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.AlternativeForeignTitle] = Parent.AlternativeForeignTitleTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.Genre] = Parent.GenreTextBox.Text; - SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.InternalSerialName] = Parent.InternalSerialName.Text; - SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ISBN] = Parent.ISBNTextBox.Text; - SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ISSN] = Parent.ISSNTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.PostgapType] = Parent.PostgapTypeCheckBox.IsChecked?.ToString(); SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.Series] = Parent.SeriesTextBox.Text; - SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.VolumeLabel] = Parent.VolumeLabel.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.VCD] = Parent.VCDCheckBox.IsChecked?.ToString(); - // Media Identifiers + // Physical Identifiers + SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.BBFCRegistrationNumber] = Parent.BBFCRegistrationNumberTextBox.Text; + SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.DiscHologramID] = Parent.DiscHologramIDTextBox.Text; + SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.DNASDiscID] = Parent.DNASDiscIDTextBox.Text; + SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ISBN] = Parent.ISBNTextBox.Text; + SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ISSN] = Parent.ISSNTextBox.Text; + SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.PPN] = Parent.PPNTextBox.Text; + SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.VFCCode] = Parent.VFCCodeTextBox.Text; + + // Publisher Identifiers SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.AcclaimID] = Parent.AcclaimIDTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ActivisionID] = Parent.ActivisionIDTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.BandaiID] = Parent.BandaiIDTextBox.Text; - SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.BBFCRegistrationNumber] = Parent.BBFCRegistrationNumberTextBox.Text; - SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.DNASDiscID] = Parent.DNASDiscIDTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ElectronicArtsID] = Parent.ElectronicArtsIDTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.FoxInteractiveID] = Parent.FoxInteractiveIDTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.GTInteractiveID] = Parent.GTInteractiveIDTextBox.Text; @@ -344,29 +373,47 @@ namespace MPF.GUI.ViewModels SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.KoeiID] = Parent.KoeiIDTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.KonamiID] = Parent.KonamiIDTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.LucasArtsID] = Parent.LucasArtsIDTextBox.Text; + SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.MicrosoftID] = Parent.MicrosoftIDTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.NaganoID] = Parent.NaganoIDTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.NamcoID] = Parent.NamcoIDTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.NipponIchiSoftwareID] = Parent.NipponIchiSoftwareIDTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.OriginID] = Parent.OriginIDTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.PonyCanyonID] = Parent.PonyCanyonIDTextBox.Text; - SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.PPN] = Parent.PPNTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.SegaID] = Parent.SegaIDTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.SelenID] = Parent.SelenIDTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.TaitoID] = Parent.TaitoIDTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.UbisoftID] = Parent.UbisoftIDTextBox.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ValveID] = Parent.ValveIDTextBox.Text; - SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.VFCCode] = Parent.VFCCodeTextBox.Text; - // Content Fields - SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Extras] = Parent.ExtrasTextBox.Text; - SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.GameFootage] = Parent.GameFootageTextBox.Text; + // Read-Only Information + SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.InternalSerialName] = Parent.InternalSerialName.Text; + SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.VolumeLabel] = Parent.VolumeLabel.Text; + SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.XeMID] = Parent.XeMID.Text; + SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.XMID] = Parent.XMID.Text; + + #endregion + + #region Content Fields + + // Games + SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Games] = Parent.GamesTextBox.Text; SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.NetYarozeGames] = Parent.NetYarozeGamesTextBox.Text; - SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Patches] = Parent.PatchesTextBox.Text; + + // Demos SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.PlayableDemos] = Parent.PlayableDemosTextBox.Text; SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.RollingDemos] = Parent.RollingDemosTextBox.Text; - SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Savegames] = Parent.SavegamesTextBox.Text; SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.TechDemos] = Parent.TechDemosTextBox.Text; + + // Video + SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.GameFootage] = Parent.GameFootageTextBox.Text; SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Videos] = Parent.VideosTextBox.Text; + + // Miscellaneous + SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Patches] = Parent.PatchesTextBox.Text; + SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Savegames] = Parent.SavegamesTextBox.Text; + SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Extras] = Parent.ExtrasTextBox.Text; + + #endregion } /// diff --git a/MPF/Windows/DiscInformationWindow.xaml b/MPF/Windows/DiscInformationWindow.xaml index 60f79ca0..5d59f3e9 100644 --- a/MPF/Windows/DiscInformationWindow.xaml +++ b/MPF/Windows/DiscInformationWindow.xaml @@ -165,8 +165,6 @@ Text="{Binding SubmissionInfo.CommonDiscInfo.Comments, Mode=TwoWay}" TextHeight="50" Enter="True" TextWrapping="Wrap" VerticalContentAlignmentValue="Top" /> - - @@ -189,14 +187,25 @@ - + + + + + + + + + + + + - - @@ -205,18 +214,17 @@ + - - @@ -328,6 +336,7 @@ + @@ -341,6 +350,7 @@ + @@ -353,10 +363,14 @@ + + + + diff --git a/RedumpLib/Data/Enumerations.cs b/RedumpLib/Data/Enumerations.cs index 5f24fe89..c204e2c0 100644 --- a/RedumpLib/Data/Enumerations.cs +++ b/RedumpLib/Data/Enumerations.cs @@ -3450,6 +3450,14 @@ namespace RedumpLib.Data [HumanReadable(ShortName = "[T:BBFC]", LongName = "BBFC Reg. No.:")] BBFCRegistrationNumber, + // TODO: This doesn't have a site tag yet + [HumanReadable(ShortName = "Disc Hologram ID/b>:", LongName = "Disc Hologram ID:")] + DiscHologramID, + + // TODO: This doesn't have a site tag yet + [HumanReadable(ShortName = "DMI/b>:", LongName = "DMI:")] + DMIHash, + [HumanReadable(ShortName = "[T:DNAS]", LongName = "DNAS Disc ID:")] DNASDiscID, @@ -3499,6 +3507,10 @@ namespace RedumpLib.Data [HumanReadable(ShortName = "[T:LAID]", LongName = "Lucas Arts ID:")] LucasArtsID, + // TODO: This doesn't have a site tag yet + [HumanReadable(ShortName = "Microsoft ID:", LongName = "Microsoft ID:")] + MicrosoftID, + [HumanReadable(ShortName = "[T:NGID]", LongName = "Nagano ID:")] NaganoID, @@ -3517,6 +3529,10 @@ namespace RedumpLib.Data [HumanReadable(ShortName = "[T:P]", LongName = "Patches:")] Patches, + // TODO: This doesn't have a site tag yet + [HumanReadable(ShortName = "PFI/b>:", LongName = "PFI:")] + PFIHash, + [HumanReadable(ShortName = "[T:PD]", LongName = "Playable Demos:")] PlayableDemos, @@ -3544,6 +3560,14 @@ namespace RedumpLib.Data [HumanReadable(ShortName = "[T:S]", LongName = "Series:")] Series, + // TODO: This doesn't have a site tag yet + [HumanReadable(ShortName = "SS/b>:", LongName = "SS:")] + SSHash, + + // TODO: This doesn't have a site tag yet + [HumanReadable(ShortName = "SS version/b>:", LongName = "SS version:")] + SSVersion, + [HumanReadable(ShortName = "[T:TID]", LongName = "Taito ID:")] TaitoID, @@ -3567,6 +3591,14 @@ namespace RedumpLib.Data [HumanReadable(ShortName = "[T:VCD]", LongName = "V-CD")] VCD, + + // TODO: This doesn't have a site tag yet + [HumanReadable(ShortName = "XeMID:", LongName = "XeMID:")] + XeMID, + + // TODO: This doesn't have a site tag yet + [HumanReadable(ShortName = "XMID:", LongName = "XMID:")] + XMID, } ///