using System; using System.Windows.Forms; using PKHeX.Core; namespace PKHeX.WinForms; public partial class SAV_SimplePokedex : Form { private readonly SaveFile Origin; private readonly SaveFile SAV; public SAV_SimplePokedex(SaveFile sav) { InitializeComponent(); WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); SAV = (Origin = sav).Clone(); seen = new bool[SAV.MaxSpeciesID]; caught = new bool[SAV.MaxSpeciesID]; var speciesNames = GameInfo.Strings.specieslist; for (int i = 0; i < seen.Length; i++) { ushort species = (ushort)(i + 1); seen[i] = SAV.GetSeen(species); caught[i] = SAV.GetCaught(species); CLB_Seen.Items.Add(speciesNames[species]); CLB_Caught.Items.Add(speciesNames[species]); CLB_Seen.SetItemChecked(i, seen[i]); CLB_Caught.SetItemChecked(i, caught[i]); } initialized = true; } private readonly bool[] seen; private readonly bool[] caught; private readonly bool initialized; private void B_Save_Click(object sender, EventArgs e) { for (int i = 0; i < seen.Length; i++) { ushort species = (ushort)(i + 1); SAV.SetSeen(species, seen[i]); SAV.SetCaught(species, caught[i]); } Origin.CopyChangesFrom(SAV); Close(); } private void B_Cancel_Click(object sender, EventArgs e) { Close(); } private void B_SeenAll_Click(object sender, EventArgs e) { for (int i = 0; i < SAV.MaxSpeciesID; i++) CLB_Seen.SetItemChecked(i, true); } private void B_SeenNone_Click(object sender, EventArgs e) { for (int i = 0; i < SAV.MaxSpeciesID; i++) CLB_Seen.SetItemChecked(i, false); } private void B_CaughtAll_Click(object sender, EventArgs e) { for (int i = 0; i < SAV.MaxSpeciesID; i++) CLB_Caught.SetItemChecked(i, true); } private void B_CaughtNone_Click(object sender, EventArgs e) { for (int i = 0; i < SAV.MaxSpeciesID; i++) CLB_Caught.SetItemChecked(i, false); } private void CLB_Seen_ItemCheck(object sender, ItemCheckEventArgs e) { if (!initialized) return; seen[e.Index] = e.NewValue == CheckState.Checked; } private void CLB_Caught_ItemCheck(object sender, ItemCheckEventArgs e) { if (!initialized) return; caught[e.Index] = e.NewValue == CheckState.Checked; } }