From dbae1fb93249e7689625ba702dfa118a642df31d Mon Sep 17 00:00:00 2001 From: Kurt Date: Mon, 10 Apr 2017 16:28:44 -0700 Subject: [PATCH] Tweak gameselect parameters Combo items are now localized automatically by specifying the game IDs and using the gameinfo values. (odd style is to support eventual message localization). program title now indicates XD/C/Batrev instead of just SAV(generation) --- PKHeX.WinForms/MainWindow/Main.cs | 28 ++++++++----------- .../Subforms/Save Editors/SAV_GameSelect.cs | 3 +- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/PKHeX.WinForms/MainWindow/Main.cs b/PKHeX.WinForms/MainWindow/Main.cs index 3380ffb13..a0341007c 100644 --- a/PKHeX.WinForms/MainWindow/Main.cs +++ b/PKHeX.WinForms/MainWindow/Main.cs @@ -987,14 +987,8 @@ private void openSAV(SaveFile sav, string path) if (sav.Generation == 3 && (sav.IndeterminateGame || ModifierKeys == Keys.Control)) { WinFormsUtil.Alert("Gen3 Game Detected.", "Select version."); - ComboItem[] games = - { - new ComboItem {Text = "Ruby", Value = (int) GameVersion.R}, - new ComboItem {Text = "Sapphire", Value = (int) GameVersion.S}, - new ComboItem {Text = "Emerald", Value = (int) GameVersion.E}, - new ComboItem {Text = "FireRed", Value = (int) GameVersion.FR}, - new ComboItem {Text = "LeafGreen", Value = (int) GameVersion.LG} - }; + var g = new[] {GameVersion.R, GameVersion.S, GameVersion.E, GameVersion.FR, GameVersion.LG}; + var games = g.Select(z => GameInfo.VersionDataSource.First(v => v.Value == (int)z)); var dialog = new SAV_GameSelect(games); dialog.ShowDialog(); @@ -1012,15 +1006,15 @@ private void openSAV(SaveFile sav, string path) } else if (sav.IndeterminateSubVersion && sav.Version == GameVersion.FRLG) { - WinFormsUtil.Alert("FireRed/LeafGreen detected. Select version."); - ComboItem[] games = - { - new ComboItem {Text = "FireRed", Value = (int) GameVersion.FR}, - new ComboItem {Text = "LeafGreen", Value = (int) GameVersion.LG} - }; - - var dialog = new SAV_GameSelect(games.ToArray()); + string fr = GameInfo.VersionDataSource.First(r => r.Value == (int)GameVersion.FR).Text; + string lg = GameInfo.VersionDataSource.First(l => l.Value == (int)GameVersion.LG).Text; + const string dual = "{0}/{1} Game Detected."; + WinFormsUtil.Alert(string.Format(dual, fr, lg), "Select version."); + var g = new[] {GameVersion.FR, GameVersion.LG}; + var games = g.Select(z => GameInfo.VersionDataSource.First(v => v.Value == (int)z)); + var dialog = new SAV_GameSelect(games); dialog.ShowDialog(); + sav.Personal = dialog.Result == GameVersion.FR ? PersonalTable.FR : PersonalTable.LG; } @@ -1046,7 +1040,7 @@ private void openSAV(SaveFile sav, string path) populateFields(SAV.BlankPKM); SAV = sav; - string title = $"PKH{(HaX ? "a" : "e")}X ({Resources.ProgramVersion}) - " + $"SAV{SAV.Generation}: "; + string title = $"PKH{(HaX ? "a" : "e")}X ({Resources.ProgramVersion}) - " + $"{SAV.GetType().Name}: "; if (path != null) // Actual save file { SAV.FilePath = Path.GetDirectoryName(path); diff --git a/PKHeX.WinForms/Subforms/Save Editors/SAV_GameSelect.cs b/PKHeX.WinForms/Subforms/Save Editors/SAV_GameSelect.cs index f401ac5a6..98142bc57 100644 --- a/PKHeX.WinForms/Subforms/Save Editors/SAV_GameSelect.cs +++ b/PKHeX.WinForms/Subforms/Save Editors/SAV_GameSelect.cs @@ -1,4 +1,5 @@ using System; +using System.Collections; using System.Windows.Forms; using PKHeX.Core; @@ -7,7 +8,7 @@ namespace PKHeX.WinForms public partial class SAV_GameSelect : Form { public GameVersion Result = GameVersion.Invalid; - public SAV_GameSelect(ComboItem[] items) + public SAV_GameSelect(IEnumerable items) { InitializeComponent(); CB_Game.DisplayMember = nameof(ComboItem.Text);