diff --git a/PKHeX.WinForms/MainWindow/Main.cs b/PKHeX.WinForms/MainWindow/Main.cs
index 1028ad73a..553cc3275 100644
--- a/PKHeX.WinForms/MainWindow/Main.cs
+++ b/PKHeX.WinForms/MainWindow/Main.cs
@@ -3973,16 +3973,29 @@ private void B_OpenOPowers_Click(object sender, EventArgs e)
}
private void B_OpenPokedex_Click(object sender, EventArgs e)
{
- if (SAV.ORAS)
- new SAV_PokedexORAS().ShowDialog();
- else if (SAV.XY)
- new SAV_PokedexXY().ShowDialog();
- else if (SAV.RBY || SAV.GSC)
- new SAV_SimplePokedex().ShowDialog();
- else if (SAV.RS || SAV.E || SAV.FRLG)
- new SAV_SimplePokedex().ShowDialog();
- else if (SAV.SM)
- new SAV_PokedexSM().ShowDialog();
+ switch (SAV.Generation)
+ {
+ case 1:
+ case 2:
+ new SAV_SimplePokedex().ShowDialog(); break;
+ case 3:
+ if (SAV.GameCube)
+ return;
+ new SAV_SimplePokedex().ShowDialog(); break;
+ case 5:
+ new SAV_Pokedex5().ShowDialog();
+ break;
+ case 6:
+ if (SAV.ORAS)
+ new SAV_PokedexORAS().ShowDialog();
+ else if (SAV.XY)
+ new SAV_PokedexXY().ShowDialog();
+ break;
+ case 7:
+ if (SAV.SM)
+ new SAV_PokedexSM().ShowDialog();
+ break;
+ }
}
private void B_OUTPasserby_Click(object sender, EventArgs e)
{
diff --git a/PKHeX.WinForms/PKHeX.WinForms.csproj b/PKHeX.WinForms/PKHeX.WinForms.csproj
index 6547d7faa..4ac12d13a 100644
--- a/PKHeX.WinForms/PKHeX.WinForms.csproj
+++ b/PKHeX.WinForms/PKHeX.WinForms.csproj
@@ -259,6 +259,12 @@
SAV_CGearSkin.cs
+
+ Form
+
+
+ SAV_Pokedex5.cs
+
Form
@@ -474,6 +480,9 @@
SAV_CGearSkin.cs
+
+ SAV_Pokedex5.cs
+
SAV_BerryFieldXY.cs
diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen5/SAV_Pokedex5.Designer.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen5/SAV_Pokedex5.Designer.cs
new file mode 100644
index 000000000..73d62973c
--- /dev/null
+++ b/PKHeX.WinForms/Subforms/Save Editors/Gen5/SAV_Pokedex5.Designer.cs
@@ -0,0 +1,594 @@
+namespace PKHeX.WinForms
+{
+ partial class SAV_Pokedex5
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SAV_Pokedex5));
+ this.B_Cancel = new System.Windows.Forms.Button();
+ this.LB_Species = new System.Windows.Forms.ListBox();
+ this.CHK_P1 = new System.Windows.Forms.CheckBox();
+ this.CHK_P2 = new System.Windows.Forms.CheckBox();
+ this.CHK_P3 = new System.Windows.Forms.CheckBox();
+ this.CHK_P4 = new System.Windows.Forms.CheckBox();
+ this.CHK_P5 = new System.Windows.Forms.CheckBox();
+ this.CHK_P6 = new System.Windows.Forms.CheckBox();
+ this.CHK_P7 = new System.Windows.Forms.CheckBox();
+ this.CHK_P8 = new System.Windows.Forms.CheckBox();
+ this.CHK_P9 = new System.Windows.Forms.CheckBox();
+ this.CHK_L7 = new System.Windows.Forms.CheckBox();
+ this.CHK_L6 = new System.Windows.Forms.CheckBox();
+ this.CHK_L5 = new System.Windows.Forms.CheckBox();
+ this.CHK_L4 = new System.Windows.Forms.CheckBox();
+ this.CHK_L3 = new System.Windows.Forms.CheckBox();
+ this.CHK_L2 = new System.Windows.Forms.CheckBox();
+ this.CHK_L1 = new System.Windows.Forms.CheckBox();
+ this.L_goto = new System.Windows.Forms.Label();
+ this.CB_Species = new System.Windows.Forms.ComboBox();
+ this.B_GiveAll = new System.Windows.Forms.Button();
+ this.B_Save = new System.Windows.Forms.Button();
+ this.B_Modify = new System.Windows.Forms.Button();
+ this.GB_Language = new System.Windows.Forms.GroupBox();
+ this.GB_Encountered = new System.Windows.Forms.GroupBox();
+ this.GB_Owned = new System.Windows.Forms.GroupBox();
+ this.GB_Displayed = new System.Windows.Forms.GroupBox();
+ this.modifyMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.mnuSeenNone = new System.Windows.Forms.ToolStripMenuItem();
+ this.mnuSeenAll = new System.Windows.Forms.ToolStripMenuItem();
+ this.mnuCaughtNone = new System.Windows.Forms.ToolStripMenuItem();
+ this.mnuCaughtAll = new System.Windows.Forms.ToolStripMenuItem();
+ this.mnuComplete = new System.Windows.Forms.ToolStripMenuItem();
+ this.B_ModifyForms = new System.Windows.Forms.Button();
+ this.L_FormDisplayed = new System.Windows.Forms.Label();
+ this.CLB_FormDisplayed = new System.Windows.Forms.CheckedListBox();
+ this.L_FormsSeen = new System.Windows.Forms.Label();
+ this.CLB_FormsSeen = new System.Windows.Forms.CheckedListBox();
+ this.modifyMenuForms = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.mnuFormNone = new System.Windows.Forms.ToolStripMenuItem();
+ this.mnuForm1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.mnuFormAll = new System.Windows.Forms.ToolStripMenuItem();
+ this.GB_Language.SuspendLayout();
+ this.GB_Encountered.SuspendLayout();
+ this.GB_Owned.SuspendLayout();
+ this.GB_Displayed.SuspendLayout();
+ this.modifyMenu.SuspendLayout();
+ this.modifyMenuForms.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // B_Cancel
+ //
+ this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.B_Cancel.Location = new System.Drawing.Point(461, 217);
+ this.B_Cancel.Name = "B_Cancel";
+ this.B_Cancel.Size = new System.Drawing.Size(80, 23);
+ this.B_Cancel.TabIndex = 0;
+ this.B_Cancel.Text = "Cancel";
+ this.B_Cancel.UseVisualStyleBackColor = true;
+ this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click);
+ //
+ // LB_Species
+ //
+ this.LB_Species.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)));
+ this.LB_Species.FormattingEnabled = true;
+ this.LB_Species.Location = new System.Drawing.Point(12, 40);
+ this.LB_Species.Name = "LB_Species";
+ this.LB_Species.Size = new System.Drawing.Size(130, 199);
+ this.LB_Species.TabIndex = 2;
+ this.LB_Species.SelectedIndexChanged += new System.EventHandler(this.changeLBSpecies);
+ //
+ // CHK_P1
+ //
+ this.CHK_P1.AutoSize = true;
+ this.CHK_P1.Location = new System.Drawing.Point(6, 14);
+ this.CHK_P1.Name = "CHK_P1";
+ this.CHK_P1.Size = new System.Drawing.Size(60, 17);
+ this.CHK_P1.TabIndex = 3;
+ this.CHK_P1.Text = "Owned";
+ this.CHK_P1.UseVisualStyleBackColor = true;
+ //
+ // CHK_P2
+ //
+ this.CHK_P2.AutoSize = true;
+ this.CHK_P2.Location = new System.Drawing.Point(6, 15);
+ this.CHK_P2.Name = "CHK_P2";
+ this.CHK_P2.Size = new System.Drawing.Size(49, 17);
+ this.CHK_P2.TabIndex = 4;
+ this.CHK_P2.Text = "Male";
+ this.CHK_P2.UseVisualStyleBackColor = true;
+ this.CHK_P2.Click += new System.EventHandler(this.changeEncountered);
+ //
+ // CHK_P3
+ //
+ this.CHK_P3.AutoSize = true;
+ this.CHK_P3.Location = new System.Drawing.Point(6, 29);
+ this.CHK_P3.Name = "CHK_P3";
+ this.CHK_P3.Size = new System.Drawing.Size(60, 17);
+ this.CHK_P3.TabIndex = 5;
+ this.CHK_P3.Text = "Female";
+ this.CHK_P3.UseVisualStyleBackColor = true;
+ this.CHK_P3.Click += new System.EventHandler(this.changeEncountered);
+ //
+ // CHK_P4
+ //
+ this.CHK_P4.AutoSize = true;
+ this.CHK_P4.Location = new System.Drawing.Point(6, 43);
+ this.CHK_P4.Name = "CHK_P4";
+ this.CHK_P4.Size = new System.Drawing.Size(78, 17);
+ this.CHK_P4.TabIndex = 6;
+ this.CHK_P4.Text = "Shiny Male";
+ this.CHK_P4.UseVisualStyleBackColor = true;
+ this.CHK_P4.Click += new System.EventHandler(this.changeEncountered);
+ //
+ // CHK_P5
+ //
+ this.CHK_P5.AutoSize = true;
+ this.CHK_P5.Location = new System.Drawing.Point(6, 57);
+ this.CHK_P5.Name = "CHK_P5";
+ this.CHK_P5.Size = new System.Drawing.Size(89, 17);
+ this.CHK_P5.TabIndex = 7;
+ this.CHK_P5.Text = "Shiny Female";
+ this.CHK_P5.UseVisualStyleBackColor = true;
+ this.CHK_P5.Click += new System.EventHandler(this.changeEncountered);
+ //
+ // CHK_P6
+ //
+ this.CHK_P6.AutoSize = true;
+ this.CHK_P6.Location = new System.Drawing.Point(5, 14);
+ this.CHK_P6.Name = "CHK_P6";
+ this.CHK_P6.Size = new System.Drawing.Size(49, 17);
+ this.CHK_P6.TabIndex = 8;
+ this.CHK_P6.Text = "Male";
+ this.CHK_P6.UseVisualStyleBackColor = true;
+ this.CHK_P6.Click += new System.EventHandler(this.changeDisplayed);
+ //
+ // CHK_P7
+ //
+ this.CHK_P7.AutoSize = true;
+ this.CHK_P7.Location = new System.Drawing.Point(5, 28);
+ this.CHK_P7.Name = "CHK_P7";
+ this.CHK_P7.Size = new System.Drawing.Size(60, 17);
+ this.CHK_P7.TabIndex = 9;
+ this.CHK_P7.Text = "Female";
+ this.CHK_P7.UseVisualStyleBackColor = true;
+ this.CHK_P7.Click += new System.EventHandler(this.changeDisplayed);
+ //
+ // CHK_P8
+ //
+ this.CHK_P8.AutoSize = true;
+ this.CHK_P8.Location = new System.Drawing.Point(5, 42);
+ this.CHK_P8.Name = "CHK_P8";
+ this.CHK_P8.Size = new System.Drawing.Size(78, 17);
+ this.CHK_P8.TabIndex = 10;
+ this.CHK_P8.Text = "Shiny Male";
+ this.CHK_P8.UseVisualStyleBackColor = true;
+ this.CHK_P8.Click += new System.EventHandler(this.changeDisplayed);
+ //
+ // CHK_P9
+ //
+ this.CHK_P9.AutoSize = true;
+ this.CHK_P9.Location = new System.Drawing.Point(5, 56);
+ this.CHK_P9.Name = "CHK_P9";
+ this.CHK_P9.Size = new System.Drawing.Size(89, 17);
+ this.CHK_P9.TabIndex = 11;
+ this.CHK_P9.Text = "Shiny Female";
+ this.CHK_P9.UseVisualStyleBackColor = true;
+ this.CHK_P9.Click += new System.EventHandler(this.changeDisplayed);
+ //
+ // CHK_L7
+ //
+ this.CHK_L7.AutoSize = true;
+ this.CHK_L7.Location = new System.Drawing.Point(18, 125);
+ this.CHK_L7.Name = "CHK_L7";
+ this.CHK_L7.Size = new System.Drawing.Size(60, 17);
+ this.CHK_L7.TabIndex = 19;
+ this.CHK_L7.Text = "Korean";
+ this.CHK_L7.UseVisualStyleBackColor = true;
+ //
+ // CHK_L6
+ //
+ this.CHK_L6.AutoSize = true;
+ this.CHK_L6.Location = new System.Drawing.Point(18, 108);
+ this.CHK_L6.Name = "CHK_L6";
+ this.CHK_L6.Size = new System.Drawing.Size(64, 17);
+ this.CHK_L6.TabIndex = 18;
+ this.CHK_L6.Text = "Spanish";
+ this.CHK_L6.UseVisualStyleBackColor = true;
+ //
+ // CHK_L5
+ //
+ this.CHK_L5.AutoSize = true;
+ this.CHK_L5.Location = new System.Drawing.Point(18, 91);
+ this.CHK_L5.Name = "CHK_L5";
+ this.CHK_L5.Size = new System.Drawing.Size(63, 17);
+ this.CHK_L5.TabIndex = 17;
+ this.CHK_L5.Text = "German";
+ this.CHK_L5.UseVisualStyleBackColor = true;
+ //
+ // CHK_L4
+ //
+ this.CHK_L4.AutoSize = true;
+ this.CHK_L4.Location = new System.Drawing.Point(18, 74);
+ this.CHK_L4.Name = "CHK_L4";
+ this.CHK_L4.Size = new System.Drawing.Size(54, 17);
+ this.CHK_L4.TabIndex = 16;
+ this.CHK_L4.Text = "Italian";
+ this.CHK_L4.UseVisualStyleBackColor = true;
+ //
+ // CHK_L3
+ //
+ this.CHK_L3.AutoSize = true;
+ this.CHK_L3.Location = new System.Drawing.Point(18, 57);
+ this.CHK_L3.Name = "CHK_L3";
+ this.CHK_L3.Size = new System.Drawing.Size(59, 17);
+ this.CHK_L3.TabIndex = 15;
+ this.CHK_L3.Text = "French";
+ this.CHK_L3.UseVisualStyleBackColor = true;
+ //
+ // CHK_L2
+ //
+ this.CHK_L2.AutoSize = true;
+ this.CHK_L2.Location = new System.Drawing.Point(18, 40);
+ this.CHK_L2.Name = "CHK_L2";
+ this.CHK_L2.Size = new System.Drawing.Size(60, 17);
+ this.CHK_L2.TabIndex = 14;
+ this.CHK_L2.Text = "English";
+ this.CHK_L2.UseVisualStyleBackColor = true;
+ //
+ // CHK_L1
+ //
+ this.CHK_L1.AutoSize = true;
+ this.CHK_L1.Location = new System.Drawing.Point(18, 23);
+ this.CHK_L1.Name = "CHK_L1";
+ this.CHK_L1.Size = new System.Drawing.Size(72, 17);
+ this.CHK_L1.TabIndex = 13;
+ this.CHK_L1.Text = "Japanese";
+ this.CHK_L1.UseVisualStyleBackColor = true;
+ //
+ // L_goto
+ //
+ this.L_goto.AutoSize = true;
+ this.L_goto.Location = new System.Drawing.Point(12, 16);
+ this.L_goto.Name = "L_goto";
+ this.L_goto.Size = new System.Drawing.Size(31, 13);
+ this.L_goto.TabIndex = 20;
+ this.L_goto.Text = "goto:";
+ //
+ // CB_Species
+ //
+ this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
+ this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
+ this.CB_Species.DropDownWidth = 95;
+ this.CB_Species.FormattingEnabled = true;
+ this.CB_Species.Items.AddRange(new object[] {
+ "0"});
+ this.CB_Species.Location = new System.Drawing.Point(50, 13);
+ this.CB_Species.Name = "CB_Species";
+ this.CB_Species.Size = new System.Drawing.Size(92, 21);
+ this.CB_Species.TabIndex = 21;
+ this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.changeCBSpecies);
+ this.CB_Species.SelectedValueChanged += new System.EventHandler(this.changeCBSpecies);
+ this.CB_Species.KeyDown += new System.Windows.Forms.KeyEventHandler(this.removedropCB);
+ //
+ // B_GiveAll
+ //
+ this.B_GiveAll.Location = new System.Drawing.Point(149, 11);
+ this.B_GiveAll.Name = "B_GiveAll";
+ this.B_GiveAll.Size = new System.Drawing.Size(60, 23);
+ this.B_GiveAll.TabIndex = 23;
+ this.B_GiveAll.Text = "Check All";
+ this.B_GiveAll.UseVisualStyleBackColor = true;
+ this.B_GiveAll.Click += new System.EventHandler(this.B_GiveAll_Click);
+ //
+ // B_Save
+ //
+ this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.B_Save.Location = new System.Drawing.Point(547, 217);
+ this.B_Save.Name = "B_Save";
+ this.B_Save.Size = new System.Drawing.Size(80, 23);
+ this.B_Save.TabIndex = 24;
+ this.B_Save.Text = "Save";
+ this.B_Save.UseVisualStyleBackColor = true;
+ this.B_Save.Click += new System.EventHandler(this.B_Save_Click);
+ //
+ // B_Modify
+ //
+ this.B_Modify.Location = new System.Drawing.Point(317, 11);
+ this.B_Modify.Name = "B_Modify";
+ this.B_Modify.Size = new System.Drawing.Size(60, 23);
+ this.B_Modify.TabIndex = 25;
+ this.B_Modify.Text = "Modify...";
+ this.B_Modify.UseVisualStyleBackColor = true;
+ this.B_Modify.Click += new System.EventHandler(this.B_Modify_Click);
+ //
+ // GB_Language
+ //
+ this.GB_Language.Controls.Add(this.CHK_L7);
+ this.GB_Language.Controls.Add(this.CHK_L6);
+ this.GB_Language.Controls.Add(this.CHK_L5);
+ this.GB_Language.Controls.Add(this.CHK_L4);
+ this.GB_Language.Controls.Add(this.CHK_L3);
+ this.GB_Language.Controls.Add(this.CHK_L2);
+ this.GB_Language.Controls.Add(this.CHK_L1);
+ this.GB_Language.Location = new System.Drawing.Point(269, 40);
+ this.GB_Language.Name = "GB_Language";
+ this.GB_Language.Size = new System.Drawing.Size(108, 153);
+ this.GB_Language.TabIndex = 26;
+ this.GB_Language.TabStop = false;
+ this.GB_Language.Text = "Languages";
+ //
+ // GB_Encountered
+ //
+ this.GB_Encountered.Controls.Add(this.CHK_P5);
+ this.GB_Encountered.Controls.Add(this.CHK_P4);
+ this.GB_Encountered.Controls.Add(this.CHK_P3);
+ this.GB_Encountered.Controls.Add(this.CHK_P2);
+ this.GB_Encountered.Location = new System.Drawing.Point(148, 40);
+ this.GB_Encountered.Name = "GB_Encountered";
+ this.GB_Encountered.Size = new System.Drawing.Size(115, 78);
+ this.GB_Encountered.TabIndex = 27;
+ this.GB_Encountered.TabStop = false;
+ this.GB_Encountered.Text = "Seen";
+ //
+ // GB_Owned
+ //
+ this.GB_Owned.Controls.Add(this.CHK_P1);
+ this.GB_Owned.Location = new System.Drawing.Point(148, 118);
+ this.GB_Owned.Name = "GB_Owned";
+ this.GB_Owned.Size = new System.Drawing.Size(115, 35);
+ this.GB_Owned.TabIndex = 28;
+ this.GB_Owned.TabStop = false;
+ this.GB_Owned.Text = "Owned";
+ //
+ // GB_Displayed
+ //
+ this.GB_Displayed.Controls.Add(this.CHK_P9);
+ this.GB_Displayed.Controls.Add(this.CHK_P8);
+ this.GB_Displayed.Controls.Add(this.CHK_P7);
+ this.GB_Displayed.Controls.Add(this.CHK_P6);
+ this.GB_Displayed.Location = new System.Drawing.Point(149, 159);
+ this.GB_Displayed.Name = "GB_Displayed";
+ this.GB_Displayed.Size = new System.Drawing.Size(115, 77);
+ this.GB_Displayed.TabIndex = 31;
+ this.GB_Displayed.TabStop = false;
+ this.GB_Displayed.Text = "Displayed";
+ //
+ // modifyMenu
+ //
+ this.modifyMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.mnuSeenNone,
+ this.mnuSeenAll,
+ this.mnuCaughtNone,
+ this.mnuCaughtAll,
+ this.mnuComplete});
+ this.modifyMenu.Name = "modifyMenu";
+ this.modifyMenu.Size = new System.Drawing.Size(149, 114);
+ //
+ // mnuSeenNone
+ //
+ this.mnuSeenNone.Name = "mnuSeenNone";
+ this.mnuSeenNone.Size = new System.Drawing.Size(148, 22);
+ this.mnuSeenNone.Text = "Seen none";
+ this.mnuSeenNone.Click += new System.EventHandler(this.modifyAll);
+ //
+ // mnuSeenAll
+ //
+ this.mnuSeenAll.Name = "mnuSeenAll";
+ this.mnuSeenAll.Size = new System.Drawing.Size(148, 22);
+ this.mnuSeenAll.Text = "Seen all";
+ this.mnuSeenAll.Click += new System.EventHandler(this.modifyAll);
+ //
+ // mnuCaughtNone
+ //
+ this.mnuCaughtNone.Name = "mnuCaughtNone";
+ this.mnuCaughtNone.Size = new System.Drawing.Size(148, 22);
+ this.mnuCaughtNone.Text = "Caught none";
+ this.mnuCaughtNone.Click += new System.EventHandler(this.modifyAll);
+ //
+ // mnuCaughtAll
+ //
+ this.mnuCaughtAll.Name = "mnuCaughtAll";
+ this.mnuCaughtAll.Size = new System.Drawing.Size(148, 22);
+ this.mnuCaughtAll.Text = "Caught all";
+ this.mnuCaughtAll.Click += new System.EventHandler(this.modifyAll);
+ //
+ // mnuComplete
+ //
+ this.mnuComplete.Name = "mnuComplete";
+ this.mnuComplete.Size = new System.Drawing.Size(148, 22);
+ this.mnuComplete.Text = "Complete Dex";
+ this.mnuComplete.Click += new System.EventHandler(this.modifyAll);
+ //
+ // B_ModifyForms
+ //
+ this.B_ModifyForms.Location = new System.Drawing.Point(567, 11);
+ this.B_ModifyForms.Name = "B_ModifyForms";
+ this.B_ModifyForms.Size = new System.Drawing.Size(60, 23);
+ this.B_ModifyForms.TabIndex = 43;
+ this.B_ModifyForms.Text = "Modify...";
+ this.B_ModifyForms.UseVisualStyleBackColor = true;
+ this.B_ModifyForms.Click += new System.EventHandler(this.B_ModifyForms_Click);
+ //
+ // L_FormDisplayed
+ //
+ this.L_FormDisplayed.Location = new System.Drawing.Point(505, 40);
+ this.L_FormDisplayed.Name = "L_FormDisplayed";
+ this.L_FormDisplayed.Size = new System.Drawing.Size(104, 20);
+ this.L_FormDisplayed.TabIndex = 42;
+ this.L_FormDisplayed.Text = "Displayed Form:";
+ this.L_FormDisplayed.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // CLB_FormDisplayed
+ //
+ this.CLB_FormDisplayed.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)));
+ this.CLB_FormDisplayed.FormattingEnabled = true;
+ this.CLB_FormDisplayed.Location = new System.Drawing.Point(508, 61);
+ this.CLB_FormDisplayed.Name = "CLB_FormDisplayed";
+ this.CLB_FormDisplayed.Size = new System.Drawing.Size(119, 139);
+ this.CLB_FormDisplayed.TabIndex = 41;
+ this.CLB_FormDisplayed.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.updateDisplayedForm);
+ //
+ // L_FormsSeen
+ //
+ this.L_FormsSeen.Location = new System.Drawing.Point(380, 40);
+ this.L_FormsSeen.Name = "L_FormsSeen";
+ this.L_FormsSeen.Size = new System.Drawing.Size(104, 20);
+ this.L_FormsSeen.TabIndex = 40;
+ this.L_FormsSeen.Text = "Seen Forms:";
+ this.L_FormsSeen.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // CLB_FormsSeen
+ //
+ this.CLB_FormsSeen.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)));
+ this.CLB_FormsSeen.FormattingEnabled = true;
+ this.CLB_FormsSeen.Location = new System.Drawing.Point(383, 61);
+ this.CLB_FormsSeen.Name = "CLB_FormsSeen";
+ this.CLB_FormsSeen.Size = new System.Drawing.Size(119, 139);
+ this.CLB_FormsSeen.TabIndex = 39;
+ //
+ // modifyMenuForms
+ //
+ this.modifyMenuForms.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.mnuFormNone,
+ this.mnuForm1,
+ this.mnuFormAll});
+ this.modifyMenuForms.Name = "modifyMenu";
+ this.modifyMenuForms.Size = new System.Drawing.Size(130, 70);
+ //
+ // mnuFormNone
+ //
+ this.mnuFormNone.Name = "mnuFormNone";
+ this.mnuFormNone.Size = new System.Drawing.Size(129, 22);
+ this.mnuFormNone.Text = "Seen none";
+ this.mnuFormNone.Click += new System.EventHandler(this.modifyAllForms);
+ //
+ // mnuForm1
+ //
+ this.mnuForm1.Name = "mnuForm1";
+ this.mnuForm1.Size = new System.Drawing.Size(129, 22);
+ this.mnuForm1.Text = "Seen one";
+ this.mnuForm1.Click += new System.EventHandler(this.modifyAllForms);
+ //
+ // mnuFormAll
+ //
+ this.mnuFormAll.Name = "mnuFormAll";
+ this.mnuFormAll.Size = new System.Drawing.Size(129, 22);
+ this.mnuFormAll.Text = "Seen all";
+ this.mnuFormAll.Click += new System.EventHandler(this.modifyAllForms);
+ //
+ // SAV_Pokedex5
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(634, 247);
+ this.Controls.Add(this.B_ModifyForms);
+ this.Controls.Add(this.L_FormDisplayed);
+ this.Controls.Add(this.CLB_FormDisplayed);
+ this.Controls.Add(this.L_FormsSeen);
+ this.Controls.Add(this.CLB_FormsSeen);
+ this.Controls.Add(this.GB_Displayed);
+ this.Controls.Add(this.GB_Owned);
+ this.Controls.Add(this.GB_Encountered);
+ this.Controls.Add(this.GB_Language);
+ this.Controls.Add(this.B_Modify);
+ this.Controls.Add(this.B_Save);
+ this.Controls.Add(this.B_GiveAll);
+ this.Controls.Add(this.CB_Species);
+ this.Controls.Add(this.L_goto);
+ this.Controls.Add(this.LB_Species);
+ this.Controls.Add(this.B_Cancel);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "SAV_Pokedex5";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "Pokédex Editor";
+ this.GB_Language.ResumeLayout(false);
+ this.GB_Language.PerformLayout();
+ this.GB_Encountered.ResumeLayout(false);
+ this.GB_Encountered.PerformLayout();
+ this.GB_Owned.ResumeLayout(false);
+ this.GB_Owned.PerformLayout();
+ this.GB_Displayed.ResumeLayout(false);
+ this.GB_Displayed.PerformLayout();
+ this.modifyMenu.ResumeLayout(false);
+ this.modifyMenuForms.ResumeLayout(false);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button B_Cancel;
+ private System.Windows.Forms.ListBox LB_Species;
+ private System.Windows.Forms.CheckBox CHK_P1;
+ private System.Windows.Forms.CheckBox CHK_P2;
+ private System.Windows.Forms.CheckBox CHK_P3;
+ private System.Windows.Forms.CheckBox CHK_P4;
+ private System.Windows.Forms.CheckBox CHK_P5;
+ private System.Windows.Forms.CheckBox CHK_P6;
+ private System.Windows.Forms.CheckBox CHK_P7;
+ private System.Windows.Forms.CheckBox CHK_P8;
+ private System.Windows.Forms.CheckBox CHK_P9;
+ private System.Windows.Forms.CheckBox CHK_L7;
+ private System.Windows.Forms.CheckBox CHK_L6;
+ private System.Windows.Forms.CheckBox CHK_L5;
+ private System.Windows.Forms.CheckBox CHK_L4;
+ private System.Windows.Forms.CheckBox CHK_L3;
+ private System.Windows.Forms.CheckBox CHK_L2;
+ private System.Windows.Forms.CheckBox CHK_L1;
+ private System.Windows.Forms.Label L_goto;
+ private System.Windows.Forms.ComboBox CB_Species;
+ private System.Windows.Forms.Button B_GiveAll;
+ private System.Windows.Forms.Button B_Save;
+ private System.Windows.Forms.Button B_Modify;
+ private System.Windows.Forms.GroupBox GB_Language;
+ private System.Windows.Forms.GroupBox GB_Encountered;
+ private System.Windows.Forms.GroupBox GB_Owned;
+ private System.Windows.Forms.GroupBox GB_Displayed;
+ private System.Windows.Forms.ContextMenuStrip modifyMenu;
+ private System.Windows.Forms.ToolStripMenuItem mnuSeenNone;
+ private System.Windows.Forms.ToolStripMenuItem mnuSeenAll;
+ private System.Windows.Forms.ToolStripMenuItem mnuCaughtNone;
+ private System.Windows.Forms.ToolStripMenuItem mnuCaughtAll;
+ private System.Windows.Forms.ToolStripMenuItem mnuComplete;
+ private System.Windows.Forms.CheckedListBox CLB_FormsSeen;
+ private System.Windows.Forms.Label L_FormsSeen;
+ private System.Windows.Forms.CheckedListBox CLB_FormDisplayed;
+ private System.Windows.Forms.Label L_FormDisplayed;
+ private System.Windows.Forms.Button B_ModifyForms;
+ private System.Windows.Forms.ContextMenuStrip modifyMenuForms;
+ private System.Windows.Forms.ToolStripMenuItem mnuFormNone;
+ private System.Windows.Forms.ToolStripMenuItem mnuForm1;
+ private System.Windows.Forms.ToolStripMenuItem mnuFormAll;
+ }
+}
\ No newline at end of file
diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen5/SAV_Pokedex5.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen5/SAV_Pokedex5.cs
new file mode 100644
index 000000000..3aec9d7f9
--- /dev/null
+++ b/PKHeX.WinForms/Subforms/Save Editors/Gen5/SAV_Pokedex5.cs
@@ -0,0 +1,423 @@
+using System;
+using System.Collections;
+using System.Drawing;
+using System.Linq;
+using System.Windows.Forms;
+using PKHeX.Core;
+
+namespace PKHeX.WinForms
+{
+ public partial class SAV_Pokedex5 : Form
+ {
+ public SAV_Pokedex5()
+ {
+ InitializeComponent();
+ FormLen = SAV.B2W2 ? 0xB : 0x9;
+ CP = new[] { CHK_P1, CHK_P2, CHK_P3, CHK_P4, CHK_P5, CHK_P6, CHK_P7, CHK_P8, CHK_P9, };
+ CL = new[] { CHK_L1, CHK_L2, CHK_L3, CHK_L4, CHK_L5, CHK_L6, CHK_L7, };
+ WinFormsUtil.TranslateInterface(this, Main.curlanguage);
+
+ editing = true;
+ // Clear Listbox and ComboBox
+ LB_Species.Items.Clear();
+ CB_Species.Items.Clear();
+
+ // Fill List
+ CB_Species.DisplayMember = "Text";
+ CB_Species.ValueMember = "Value";
+ CB_Species.DataSource = new BindingSource(GameInfo.SpeciesDataSource.Skip(1).Where(id => id.Value <= SAV.MaxSpeciesID).ToList(), null);
+
+ for (int i = 1; i < SAV.MaxSpeciesID + 1; i++)
+ LB_Species.Items.Add(i.ToString("000") + " - " + GameInfo.Strings.specieslist[i]);
+
+ getData();
+ editing = false;
+ LB_Species.SelectedIndex = 0;
+ }
+
+ private readonly SAV5 SAV = new SAV5(Main.SAV.Data);
+ private readonly CheckBox[] CP;
+ private readonly CheckBox[] CL;
+ private readonly bool[,] specbools = new bool[9, brSize * 8];
+ private readonly bool[,] langbools = new bool[7, brSize * 8];
+ private BitArray formbools;
+ private bool editing;
+ private int species = -1;
+ private const int brSize = 0x54;
+ private readonly int FormLen;
+ private const int LangSize = 0x238; // 649*7/8 = 237.xxx
+
+ private void changeCBSpecies(object sender, EventArgs e)
+ {
+ if (editing) return;
+ setEntry();
+
+ editing = true;
+ species = (int)CB_Species.SelectedValue;
+ LB_Species.SelectedIndex = species - 1; // Since we don't allow index0 in combobox, everything is shifted by 1
+ LB_Species.TopIndex = LB_Species.SelectedIndex;
+ getEntry();
+ editing = false;
+ }
+ private void changeLBSpecies(object sender, EventArgs e)
+ {
+ if (editing) return;
+ setEntry();
+
+ editing = true;
+ species = LB_Species.SelectedIndex + 1;
+ CB_Species.SelectedValue = species;
+ getEntry();
+ editing = false;
+ }
+ private void removedropCB(object sender, KeyEventArgs e)
+ {
+ ((ComboBox)sender).DroppedDown = false;
+ }
+ private void changeDisplayed(object sender, EventArgs e)
+ {
+ if (!((CheckBox) sender).Checked)
+ return;
+
+ CHK_P6.Checked = sender == CHK_P6;
+ CHK_P7.Checked = sender == CHK_P7;
+ CHK_P8.Checked = sender == CHK_P8;
+ CHK_P9.Checked = sender == CHK_P9;
+
+ CHK_P2.Checked |= CHK_P6.Checked;
+ CHK_P3.Checked |= CHK_P7.Checked;
+ CHK_P4.Checked |= CHK_P8.Checked;
+ CHK_P5.Checked |= CHK_P9.Checked;
+ }
+ private void changeEncountered(object sender, EventArgs e)
+ {
+ if (!(CHK_P2.Checked || CHK_P3.Checked || CHK_P4.Checked || CHK_P5.Checked))
+ CHK_P6.Checked = CHK_P7.Checked = CHK_P8.Checked = CHK_P9.Checked = false;
+ else if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
+ {
+ if (sender == CHK_P2 && CHK_P2.Checked)
+ CHK_P6.Checked = true;
+ else if (sender == CHK_P3 && CHK_P3.Checked)
+ CHK_P7.Checked = true;
+ else if (sender == CHK_P4 && CHK_P4.Checked)
+ CHK_P8.Checked = true;
+ else if (sender == CHK_P5 && CHK_P5.Checked)
+ CHK_P9.Checked = true;
+ }
+ }
+
+ private void getEntry()
+ {
+ // Load Bools for the data
+ int pk = species;
+
+ // Load Partitions
+ for (int i = 0; i < 9; i++)
+ CP[i].Checked = specbools[i, pk - 1];
+ for (int i = 0; i < 7; i++)
+ CL[i].Checked = langbools[i, pk - 1];
+
+ int gt = SAV.Personal[pk].Gender;
+
+ CHK_P2.Enabled = CHK_P4.Enabled = CHK_P6.Enabled = CHK_P8.Enabled = gt != 254; // Not Female-Only
+ CHK_P3.Enabled = CHK_P5.Enabled = CHK_P7.Enabled = CHK_P9.Enabled = !(gt == 0 || (gt == 255)); // Not Male-Only and Not Genderless
+
+ CLB_FormsSeen.Items.Clear();
+ CLB_FormDisplayed.Items.Clear();
+
+ int fc = SAV.Personal[species].FormeCount;
+ int f = SAV.B2W2 ? SaveUtil.getDexFormIndexB2W2(species, fc) : SaveUtil.getDexFormIndexBW(species, fc);
+ if (f < 0)
+ return;
+ string[] forms = PKX.getFormList(species, GameInfo.Strings.types, GameInfo.Strings.forms, Main.gendersymbols);
+ if (forms.Length < 1)
+ return;
+
+ for (int i = 0; i < forms.Length; i++) // Seen
+ CLB_FormsSeen.Items.Add(forms[i], formbools[f + i + 0*FormLen*8]);
+ for (int i = 0; i < forms.Length; i++) // Seen Shiny
+ CLB_FormsSeen.Items.Add("* " + forms[i], formbools[f + i + 1*FormLen*8]);
+
+ for (int i = 0; i < forms.Length; i++) // Displayed
+ CLB_FormDisplayed.Items.Add(forms[i], formbools[f + i + 2*FormLen*8]);
+ for (int i = 0; i < forms.Length; i++) // Displayed Shiny
+ CLB_FormDisplayed.Items.Add("* " + forms[i], formbools[f + i + 3*FormLen*8]);
+ }
+ private void setEntry()
+ {
+ if (species < 0)
+ return;
+
+ specbools[0, species - 1] = CHK_P1.Checked;
+ specbools[1, species - 1] = CHK_P2.Checked;
+ specbools[2, species - 1] = CHK_P3.Checked;
+ specbools[3, species - 1] = CHK_P4.Checked;
+ specbools[4, species - 1] = CHK_P5.Checked;
+ specbools[5, species - 1] = CHK_P6.Checked;
+ specbools[6, species - 1] = CHK_P7.Checked;
+ specbools[7, species - 1] = CHK_P8.Checked;
+ specbools[8, species - 1] = CHK_P9.Checked;
+
+ langbools[0, species - 1] = CHK_L1.Checked;
+ langbools[1, species - 1] = CHK_L2.Checked;
+ langbools[2, species - 1] = CHK_L3.Checked;
+ langbools[3, species - 1] = CHK_L4.Checked;
+ langbools[4, species - 1] = CHK_L5.Checked;
+ langbools[5, species - 1] = CHK_L6.Checked;
+ langbools[6, species - 1] = CHK_L7.Checked;
+
+ int fc = SAV.Personal[species].FormeCount;
+ int f = SaveUtil.getDexFormIndexORAS(species, fc);
+ if (f < 0)
+ return;
+
+ for (int i = 0; i < CLB_FormsSeen.Items.Count/2; i++) // Seen
+ formbools[f + i + 0*FormLen*8] = CLB_FormsSeen.GetItemChecked(i);
+ for (int i = 0; i < CLB_FormsSeen.Items.Count/2; i++) // Seen Shiny
+ formbools[f + i + 1*FormLen*8] = CLB_FormsSeen.GetItemChecked(i + CLB_FormsSeen.Items.Count/2);
+
+ editing = true;
+ for (int i = 0; i < CLB_FormDisplayed.Items.Count/2; i++) // Displayed
+ formbools[f + i + 2*FormLen*8] = CLB_FormDisplayed.GetItemChecked(i);
+ for (int i = 0; i < CLB_FormDisplayed.Items.Count/2; i++) // Displayed Shiny
+ formbools[f + i + 3*FormLen*8] = CLB_FormDisplayed.GetItemChecked(i + CLB_FormDisplayed.Items.Count/2);
+ editing = false;
+ }
+
+ private void getData()
+ {
+ // Fill Bit arrays
+ int arrCount = specbools.GetLength(0);
+ for (int i = 0; i < arrCount; i++)
+ {
+ byte[] data = new byte[brSize];
+ Array.Copy(SAV.Data, SAV.PokeDex + 8 + brSize * i, data, 0, brSize);
+ BitArray BitRegion = new BitArray(data);
+ for (int b = 0; b < brSize * 8; b++)
+ specbools[i, b] = BitRegion[b];
+ }
+
+ // Fill Language arrays
+ byte[] langdata = new byte[LangSize];
+ Array.Copy(SAV.Data, SAV.PokeDexLanguageFlags, langdata, 0, LangSize);
+ BitArray LangRegion = new BitArray(langdata);
+ for (int b = 0; b < SAV.MaxSpeciesID; b++)
+ for (int i = 0; i < 7; i++) // 7 Languages
+ langbools[i, b] = LangRegion[7 * b + i];
+
+ byte[] formdata = new byte[FormLen*4];
+ int FormDex = SAV.PokeDex + 0x8 + brSize*9;
+ Array.Copy(SAV.Data, FormDex, formdata, 0, formdata.Length);
+ formbools = new BitArray(formdata);
+ }
+ private void setData()
+ {
+ // Save back the Species Bools
+ // Return to Byte Array
+ for (int p = 0; p < 9; p++)
+ {
+ byte[] sdata = new byte[brSize];
+
+ for (int i = 0; i < brSize * 8; i++)
+ if (specbools[p, i])
+ sdata[i>>3] |= (byte)(1 << (i&7));
+
+ sdata.CopyTo(SAV.Data, SAV.PokeDex + 8 + brSize * p);
+ }
+
+ // Build new bool array for the Languages
+ {
+ int langCount = langbools.GetLength(0);
+ int speciesCount = langbools.GetLength(1);
+ bool[] languagedata = new bool[speciesCount << 3];
+ for (int i = 0; i < speciesCount; i++)
+ for (int l = 0; l < langCount; l++)
+ languagedata[i * langCount + l] = langbools[l, i];
+
+ // Return to Byte Array
+ byte[] ldata = new byte[languagedata.Length>>3];
+
+ for (int i = 0; i < languagedata.Length; i++)
+ if (languagedata[i])
+ ldata[i>>3] |= (byte)(1 << (i&7));
+
+ ldata.CopyTo(SAV.Data, SAV.PokeDexLanguageFlags);
+ }
+ int FormDex = SAV.PokeDex + 0x8 + brSize * 9;
+ formbools.CopyTo(SAV.Data, FormDex);
+ }
+
+ private void B_Cancel_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+ private void B_Save_Click(object sender, EventArgs e)
+ {
+ setEntry();
+ setData();
+
+ // Return back to the parent savefile
+ Array.Copy(SAV.Data, Main.SAV.Data, SAV.Data.Length);
+ Main.SAV.Edited = true;
+ Close();
+ }
+
+ private void B_GiveAll_Click(object sender, EventArgs e)
+ {
+ if (CHK_L1.Enabled)
+ {
+ CHK_L1.Checked =
+ CHK_L2.Checked =
+ CHK_L3.Checked =
+ CHK_L4.Checked =
+ CHK_L5.Checked =
+ CHK_L6.Checked =
+ CHK_L7.Checked = ModifierKeys != Keys.Control;
+ }
+ if (CHK_P1.Enabled)
+ {
+ CHK_P1.Checked = ModifierKeys != Keys.Control;
+ }
+ int index = LB_Species.SelectedIndex+1;
+ int gt = SAV.Personal[index].Gender;
+
+ CHK_P2.Checked = CHK_P4.Checked = gt != 254 && ModifierKeys != Keys.Control;
+ CHK_P3.Checked = CHK_P5.Checked = gt != 0 && gt != 255 && ModifierKeys != Keys.Control;
+
+ if (ModifierKeys == Keys.Control)
+ foreach (var chk in new[] { CHK_P6, CHK_P7, CHK_P8, CHK_P9 })
+ chk.Checked = false;
+ else if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
+ (gt != 254 ? CHK_P6 : CHK_P7).Checked = true;
+ }
+ private void B_Modify_Click(object sender, EventArgs e)
+ {
+ Button btn = (Button)sender;
+ modifyMenu.Show(btn.PointToScreen(new Point(0, btn.Height)));
+ }
+ private void modifyAll(object sender, EventArgs e)
+ {
+ int lang = SAV.Language;
+ if (lang > 5) lang -= 1;
+ lang -= 1;
+
+ if (sender == mnuSeenNone || sender == mnuSeenAll || sender == mnuComplete)
+ for (int i = 0; i < LB_Species.Items.Count; i++)
+ {
+ int gt = SAV.Personal[i + 1].Gender;
+ LB_Species.SelectedIndex = i;
+ foreach (CheckBox t in new[] { CHK_P2, CHK_P3, CHK_P4, CHK_P5 })
+ t.Checked = mnuSeenNone != sender && t.Enabled;
+
+ if (mnuSeenNone != sender)
+ {
+ // if seen ensure at least one Displayed
+ if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
+ (gt != 254 ? CHK_P6 : CHK_P7).Checked = true;
+ }
+ else
+ {
+ foreach (CheckBox t in CP)
+ t.Checked = false;
+ }
+
+ if (!CHK_P1.Checked)
+ foreach (CheckBox t in CL)
+ t.Checked = false;
+ }
+
+ if (sender == mnuCaughtNone || sender == mnuCaughtAll || sender == mnuComplete)
+ for (int i = 0; i < CB_Species.Items.Count; i++)
+ {
+ int gt = SAV.Personal[i + 1].Gender;
+ LB_Species.SelectedIndex = i;
+ foreach (CheckBox t in new[] { CHK_P1 })
+ t.Checked = mnuCaughtNone != sender;
+ for (int j = 0; j < CL.Length; j++)
+ CL[j].Checked = sender == mnuComplete || (mnuCaughtNone != sender && j == lang);
+
+ if (mnuCaughtNone == sender)
+ {
+ if (!(CHK_P2.Checked || CHK_P3.Checked || CHK_P4.Checked || CHK_P5.Checked)) // if seen
+ if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked)) // not displayed
+ (gt != 254 ? CHK_P6 : CHK_P7).Checked = true; // check one
+ }
+ if (mnuCaughtNone != sender)
+ {
+ if (mnuComplete == sender)
+ {
+ CHK_P2.Checked = CHK_P4.Checked = gt != 254; // not female only
+ CHK_P3.Checked = CHK_P5.Checked = gt != 0 && gt != 255; // not male only or genderless
+ }
+ else
+ {
+ // ensure at least one SEEN
+ if (!(CHK_P2.Checked || CHK_P3.Checked || CHK_P4.Checked || CHK_P5.Checked))
+ (gt != 254 ? CHK_P2 : CHK_P3).Checked = true;
+ }
+
+ // ensure at least one Displayed
+ if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
+ (gt != 254 ? CHK_P6 : CHK_P7).Checked = true;
+ }
+ }
+
+ setEntry();
+ setData();
+
+ getData();
+ getEntry();
+ }
+
+ private void updateDisplayedForm(object sender, ItemCheckEventArgs e)
+ {
+ if (editing)
+ return;
+
+ // Only allow one form to be displayed if the user sets a new display value
+ if (e.NewValue != CheckState.Checked) return;
+ for (int i = 0; i < CLB_FormDisplayed.Items.Count; i++)
+ if (i != e.Index)
+ CLB_FormDisplayed.SetItemChecked(i, false);
+ else if (sender == CLB_FormDisplayed)
+ CLB_FormsSeen.SetItemChecked(e.Index, true); // ensure this form is seen
+ }
+ private void B_ModifyForms_Click(object sender, EventArgs e)
+ {
+ Button btn = (Button)sender;
+ modifyMenuForms.Show(btn.PointToScreen(new Point(0, btn.Height)));
+ }
+ private void modifyAllForms(object sender, EventArgs e)
+ {
+ if (sender == mnuFormNone)
+ {
+ formbools = new BitArray(new bool[formbools.Length]); // reset false
+ getEntry();
+ return;
+ }
+
+ for (int i = 0; i < CB_Species.Items.Count; i++)
+ {
+ LB_Species.SelectedIndex = i;
+ if (CLB_FormsSeen.Items.Count == 0)
+ continue;
+
+ if (sender == mnuForm1)
+ {
+ if (CLB_FormsSeen.CheckedItems.Count == 0)
+ CLB_FormsSeen.SetItemChecked(0, true);
+
+ if (CLB_FormDisplayed.CheckedItems.Count == 0)
+ CLB_FormDisplayed.SetItemChecked(0, true);
+ }
+ else if (sender == mnuFormAll)
+ {
+ for (int f = 0; f < CLB_FormsSeen.Items.Count; f++)
+ CLB_FormsSeen.SetItemChecked(f, true);
+ if (CLB_FormDisplayed.CheckedItems.Count == 0)
+ CLB_FormDisplayed.SetItemChecked(0, true);
+ }
+ }
+ }
+ }
+}
diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen5/SAV_Pokedex5.resx b/PKHeX.WinForms/Subforms/Save Editors/Gen5/SAV_Pokedex5.resx
new file mode 100644
index 000000000..40c9b0124
--- /dev/null
+++ b/PKHeX.WinForms/Subforms/Save Editors/Gen5/SAV_Pokedex5.resx
@@ -0,0 +1,222 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ 172, 17
+
+
+
+
+ AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAE
+ AAAAAAAAAAAAAAAAAAAAAAAAIyMjAQAAAAALCwsPJiYmJysrKycqKionKSkpJykpKScpKSknKioqJyoq
+ KicrKysnJycnJw0ODQ8AAAAAJiYmAQAAAABpaWlHq6ur17+/v+6+vr7svr6+7b6+vu2+vr7tvr6+7b6+
+ vu2+vr7tvr6+7L+/v+6rq6vXampqSAAAAAAoKSgXvr++3eLi4v/g4OD94eHh/+Hh4f/i4uL/4uLi/+Li
+ 4v/i4uL/4eHh/+Dh4P/g4OD94uLi/7+/v90sLCwXfn5+PNna2frg4OD/39/f/uHh4f7h4eH+39/f/uDg
+ 4P7g4OD+39/f/uHh4f7h4OH+39/f/t/g3//a2tr6g4ODPoOCgz7X19f64+Pj/+Li4v7k5OT/4+Tj//Ly
+ 8v/19fX/9PT0//T09P/k5OT/5OTk/+Pj4/7j4+P/19jX+4qLikCDhIM+2tra++Xl5f/k5eT+5OTk//Lz
+ 8v+urq7/RUVF/z4+Pv+Zmpn/8fHx/+Xm5f/k5eT+5eXl/9ra2vyLi4tAhYWFPuXm5vvx8vP/7+/w/v//
+ //+sra3/AgIC/15eXv9tbG3/BQUF/4yMjP//////7+/w/vHy8//l5ub8jY2NQC4uLD5LS0f7UFBL/09P
+ Sv5YWVP/FBUS/29wcP///////////5SUlP8PDw//U1NO/1BQS/5PT0r/S0tH/DIyMEAAAAs+AAAM+wAA
+ Dv8AAA/+AwMS/wAAAP+UlJX///////////+3t7n/AAAA/wAAD/8BAQ/+AAAO/wAADPwCAg5ABARSPgoK
+ k/sNDab/DQ2o/hAQvP8CAmj/IiIW/7Kzrv/Cw8D/NDQm/wAATf8QELz/DQ2q/gwMp/8LC5T8Dg5bQAUF
+ Xj4KCpz7DQ2u/w0NsP4NDbX/Dw+//wUFYf8CAhL/AwMP/wMDTf8ODrj/Dg64/w0NsP4MDK7/Cwud/A8P
+ aEEGBmU9DAyl+w4Otf8ODrf+Dw+6/xAQvv8TE8v/EhK+/xAQvP8TE8v/EBDA/w8Puf8PD7f+Dg61/w0N
+ pvsREW9ACAhtQA8PsfsTE77/ExO//xQUwP8UFML/FBTD/xUVyP8WFsn/FRXE/xQUw/8UFMH/ExO//xMT
+ vv8QELL7ERF3QxkZdCgXF771ExPH/xUVyPwVFcn9FhbL/RcXzP0XF8z9FxfM/RcXy/0XF8v9FhbJ/RUV
+ yPwTE8f/Fxe+9RkZdykAAAAAIyOtghsbx/8ZGcj+GRnJ/xoayf8aGsn/GhrK/xoayv8aGsn/GhrJ/xkZ
+ yf8ZGcj+GxvH/yMjrYQAAAAAAADHAQAAAAAzM51FLCyscCoqrGwqKqxtKSmsbSoqrG0qKqxtKSmsbSoq
+ rG0qKqxsLCyscDMznUUAAAAAAAAAAP//AADAAwAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIAB
+ AACAAQAAgAEAAIABAACAAQAAgAEAAP//AAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrCR0dHSMWFhY3GBgYORgYGDkYGBg5GBgYORgY
+ GDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5FxcXNx4e
+ HiQuLi4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhIARYWFis7OzuVkJCQ2ampqeqqqqrsqqqq7Kqq
+ quyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqq
+ quypqanqkZGR2j09PZcXFxcsUFBQAQAAAAAAAAAAAAAAAAAAAAASEhIuhISEytvb2/7W1tb/19fX/9jY
+ 2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Y2Nj/2NjY/9jY
+ 2P/Y2Nj/2NjY/9fX1//W1tb/29vb/oeHh8sTExMvAAAAAAAAAAAAAAAAPDw8DGtra6zZ2dn/2dnZ/9ra
+ 2v/b29v/29vb/9vb2//c3Nz/3Nzc/9zc3P/c3Nz/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3Nzc/9zc
+ 3P/c3Nz/3Nzc/9vb2//b29v/29vb/9ra2v/Z2dn/2dnZ/21tba5DQ0MNAAAAAAAAAAAiIiIx1NXU9tna
+ 2f/c3Nz/3d3d/93e3f/e3t7/3t7e/9/f3//f39//39/f/9/g3//g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg
+ 4P/g4OD/39/f/9/f3//f39//3t/e/97e3v/d3t3/3d3d/9zc3P/Z2tn/1dXV9icnJzMAAAAAAAAAAFhZ
+ WFzf4N//3Nzc/97e3v/f39//39/f/9/g3//g4OD/4ODg/+Hh4f/h4eH/4eHh/+Li4v/i4uL/4uLi/+Li
+ 4v/i4uL/4uLi/+Hi4f/h4eH/4eHh/+Dg4P/g4OD/3+Df/9/f3//f39//3t7e/9zc3P/f39//XV1dXQAA
+ AAAAAAAAZmZmZdvc2//e3t7/3+Df/+Dg4P/g4eD/4eHh/+Hi4f/i4uL/4uPi/+Pj4//j4+P/5OTk/+Tk
+ 5P/k5OT/5OTk/+Tk5P/k5OT/4+Pj/+Pj4//j4+P/4uLi/+Li4v/h4eH/4eHh/+Dg4P/f4N//3t7e/9vb
+ 2/9wcHBoAAAAAAAAAABoaGhl3d3d/9/f3//h4eH/4eLh/+Li4v/j4+P/4+Pj/+Tk5P/k5OT/5eXl/+Xl
+ 5f/l5uX/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5eX/5eXl/+Tk5P/k5OT/4+Pj/+Pj4//i4uL/4uLi/+Hh
+ 4f/f39//3N3c/3Nzc2kAAAAAAAAAAGhoaGXe3t7/4ODg/+Li4v/j4+P/4+Pj/+Tk5P/l5eX/5eXl/+bm
+ 5v/m5+b/5+fn/+fn5//n6Of/6Ojo/+jo6P/o6Oj/5+fn/+fn5//n5+f/5ubm/+Xl5f/l5eX/5OTk/+Pk
+ 4//j4+P/4uLi/+Dg4P/e3t7/c3NzaQAAAAAAAAAAaGhoZd/g3//i4uL/5OTk/+Tl5P/l5eX/5ebl/+bn
+ 5v/n5+f/5+jn/+jp6P/p6en/7Ozs/8LCwv+Tk5P/ioqK/66urv/o6ej/6enp/+jp6P/o6Oj/5+jn/+bn
+ 5v/m5ub/5ebl/+Tl5P/k5OT/4uLi/9/g3/9zdHNpAAAAAAAAAABoaWhl4eLh/+Pk4//m5ub/5ubm/+fn
+ 5//n6Of/6Ojo/+np6f/p6un/6urq/8bGxv8yMjL/AAAA/wAAAP8AAAD/AAAA/xMTE/+ZmZn/7Ozs/+rq
+ 6v/p6en/6Ojo/+jo6P/n5+f/5ubm/+bm5v/k5OT/4eHh/3R0dGkAAAAAAAAAAGhpaGXj4+P/5eXl/+fn
+ 5//n6Of/6Ojo/+np6f/q6ur/6urq/+vr6//Dw8P/DAwM/wAAAP8AAAD/Gxsb/ygoKP8BAQH/AAAA/wAA
+ AP+FhYX/7O3s/+rr6v/q6ur/6enp/+jo6P/o6Oj/5+fn/+Xl5f/i4+L/dHR0aQAAAAAAAAAAYWFhZeTl
+ 5P/m5+b/6Ono/+np6f/p6un/6uvq/+vr6//s7Oz/7e7t/ycnJ/8AAAD/Ghoa/7S0tP/m5ub/5OTk/9HR
+ 0f9GRkb/AAAA/wICAv/IyMj/7Ozs/+vs6//q6+r/6urq/+nq6f/o6ej/5+fn/+Tk5P9sbGxpAAAAAAAA
+ AAA9Pj1lj4+P/5OTk/+VlZX/lpaW/5eXl/+YmJj/mZmZ/5qamv92dnb/AAAA/wEBAf+/wL//3Nzc/+Tk
+ 5P/l5eX/3d3d/+Li4v8mJib/AAAA/0ZGRv+ampr/mZmZ/5iYmP+Xl5f/lpaW/5WVlf+Tk5P/j4+P/0ZG
+ RmoAAAAAAAAAAAwMDGUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Nzc3/+fn
+ 5//q6ur/7O3s/+zt7P/v7+//39/f/4WFhf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP8AAAD/EBAQagAAAAAAAAAAAwMHZQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP9NTU3/5ufm//Lz8v/z9PP/8/Tz//X19f/l5eX/nZ2d/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP8AAAD/AAAA/wAAAP8GBgpqAAAAAAAAAAAAABZlAQEk/wEBJ/8CAin/AgIq/wICKv8CAiv/AgIs/wIC
+ LP8BAR3/AAAA/xwcHP/w8PD/6+zr//r6+v/6+vr/9PT0/+vr6/9lZWX/AAAA/wAAD/8CAi3/AgIs/wIC
+ K/8CAir/AgIq/wICKf8BASf/AQEl/wUFG2oAAAAAAAAAAAICQGUGBpL/Bwec/wgIo/8JCaf/CQmq/wkJ
+ rf8JCa//Cgqz/wkJqP8AAAL/AAAA/4CAgP/y8/L/6+zr/+3t7f/u7u7/xMTE/wcHB/8AAAD/BgZz/woK
+ s/8JCbD/CQmt/wkJqv8JCaj/CAik/wcHnf8HB5P/Dg5MagAAAAAAAAAAAwNHZQgIk/8JCZ3/Cgqj/wsL
+ p/8LC6n/Cwus/wsLr/8MDLL/DAy2/wYGW/8AAAD/AAAA/1JSUv+sraz/tra2/3h4eP8KCgr/AAAA/wIC
+ Iv8MDLb/DAyy/wsLsP8LC63/Cwuq/wsLp/8KCqT/CQmd/wgIk/8PD1VrAAAAAAAAAAAEBE1lCQmY/woK
+ ov8LC6j/DAyr/wwMrf8MDLD/DAyy/w0Ntf8NDbf/Dg67/wUFSv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP8CAiH/DQ2q/w0NuP8NDbX/DQ2z/wwMsP8MDK7/DAyr/wsLqP8KCqL/CQmZ/xAQWmsAAAAAAAAAAAQE
+ UGUKCp7/Cwum/wwMrP8NDa//DQ2w/w0Ns/8ODrX/Dg63/w4Ouf8ODrv/Dw/A/wwMiv8FBTj/AAAG/wAA
+ AP8DAyb/CQls/w8Pu/8PD7z/Dg66/w4OuP8ODrX/DQ2z/w0Nsf8NDa//DAys/wsLp/8KCp7/ERFeawAA
+ AAAAAAAABQVTZQsLpP8MDKv/DQ2w/w4Os/8ODrT/Dg62/w8PuP8PD7r/Dw+8/w8Pvf8QEL//EBDA/xER
+ w/8SEsn/ERHJ/xERxf8QEMD/EBC//w8Pvv8PD7z/Dw+6/w8PuP8ODrf/Dg61/w4Os/8NDbH/DAyr/wsL
+ pP8SEmFrAAAAAAAAAAAGBlZlDAyq/w4OsP8PD7X/Dw+3/w8PuP8QELr/EBC7/xAQvf8REb7/ERHA/xER
+ wf8REcL/EhLC/xISw/8SEsP/EhLC/xERwv8REcH/ERHA/xERvv8QEL3/EBC7/xAQuv8QELj/Dw+3/w8P
+ tf8ODrD/DAyq/xMTZWsAAAAAAAAAAAcHWmUODrD/EBC2/xERuv8REbz/ERG9/xISvv8SEr//EhLA/xMT
+ wf8TE8P/ExPD/xMTxP8TE8X/FBTF/xQUxf8UFMX/ExPE/xMTxP8TE8P/ExPC/xISwf8SEr//EhK+/xER
+ vf8REbz/ERG6/xAQtv8ODrD/FBRpawAAAAAAAAAACAhcYxAQtf8SErv/ExO+/xQUwP8UFMD/FBTB/xUV
+ wv8VFcP/FRXE/xUVxf8WFsb/FhbG/xYWx/8WFsf/FhbH/xYWx/8WFsf/FhbG/xYWxf8VFcT/FRXD/xUV
+ wv8UFMH/FBTB/xQUwP8TE77/EhK7/xAQtf8TE2hoAAAAAAAAAAAQEFNUFRXC/xMTv/8UFMP/FRXE/xUV
+ xP8VFcX/FRXG/xYWx/8WFsf/FhbI/xYWyf8XF8n/FxfK/xcXyv8XF8r/FxfK/xcXyf8XF8n/FhbI/xYW
+ yP8WFsf/FhbG/xUVxf8VFcT/FRXE/xQUw/8TE7//FRXB/xAQV1UAAAAAAAAAAA0NPxkjI8byFBTD/xUV
+ x/8WFsj/FxfJ/xcXyf8XF8r/FxfK/xcXy/8YGMz/GBjM/xgYzP8YGM3/GBjN/xgYzf8YGM3/GBjM/xgY
+ zP8YGMz/GBjL/xcXy/8XF8r/FxfJ/xcXyf8WFsj/FRXH/xQUw/8jI8f0Dg5GGwAAAAAAAAAAFhZxAiUl
+ eIUZGcr/FBTI/xUVyv8WFsv/FhbM/xYWzP8WFsz/FhbN/xcXzf8XF83/FxfN/xcXzv8XF87/FxfO/xcX
+ zv8XF87/FxfN/xcXzf8WFs3/FhbM/xYWzP8WFsz/FhbL/xUVyv8UFMj/GBjJ/yYmeogWFnYCAAAAAAAA
+ AAAAAAAAGBh1BzMzk50kJNP+FxfK/xgYzP8YGMz/GBjN/xgYzf8YGM3/GBjN/xgYzf8ZGc7/GRnO/xkZ
+ zv8ZGc7/GRnO/xkZzv8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzP8YGMz/FxfK/yMj0v4zM5WfFBRkBwAA
+ AAAAAAAAAAAAAAAAAAAAAAAAHBx7Ay0tdkg3N5emMTGpxSwsp8gsLKfILCynyCwsp8gsLKfILCynyCws
+ p8gsLKfILCynyCwsp8gsLKfILCynyCwsp8gsLKfILCynyCwsp8gsLKfILCynyDExqcU2NpenLi54Shsb
+ ewMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////8AAAD+AAAAfAAAADwAAAA8AAAAPAAAADwAAAA8AA
+ AAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AA
+ AAPAAAADwAAAA8AAAAPAAAAD4AAAB/gAAB//////
+
+
+
\ No newline at end of file
diff --git a/PKHeX/Saves/SAV5.cs b/PKHeX/Saves/SAV5.cs
index 6d86ac581..78d52c41a 100644
--- a/PKHeX/Saves/SAV5.cs
+++ b/PKHeX/Saves/SAV5.cs
@@ -358,9 +358,9 @@ public override string ChecksumInfo
private const int wcSeed = 0x1D290;
public readonly int CGearInfoOffset, CGearDataOffset;
- private readonly int Trainer2, AdventureInfo, PokeDexLanguageFlags;
+ private readonly int Trainer2, AdventureInfo;
+ public readonly int PokeDexLanguageFlags;
public override bool HasBoxWallpapers => false;
- public override bool HasPokeDex => false;
// Daycare
public override int DaycareSeedSize => 16;
@@ -623,26 +623,28 @@ protected override void setDex(PKM pkm)
int lang = pkm.Language - 1; if (lang > 5) lang--; // 0-6 language vals
int gender = pkm.Gender % 2; // genderless -> male
int shiny = pkm.IsShiny ? 1 : 0;
+ int shift = shiny*2 + gender + 1;
int shiftoff = shiny * brSize * 2 + gender * brSize + brSize;
+ int ofs = PokeDex + 0x8 + (bit >> 3);
// Set the Species Owned Flag
- Data[PokeDex + 0x8 + bit / 8] |= (byte)(1 << (bit % 8));
+ Data[ofs + brSize*0] |= (byte)(1 << (bit % 8));
// Set the [Species/Gender/Shiny] Seen Flag
- Data[PokeDex + 0x8 + shiftoff + bit / 8] |= (byte)(1 << (bit % 8));
+ Data[PokeDex + 0x8 + shiftoff + bit / 8] |= (byte)(1 << (bit&7));
// Set the Display flag if none are set
bool Displayed = false;
- Displayed |= (Data[PokeDex + 0x8 + brSize*5 + bit/8] & (byte)(1 << (bit%8))) != 0;
- Displayed |= (Data[PokeDex + 0x8 + brSize*6 + bit/8] & (byte)(1 << (bit%8))) != 0;
- Displayed |= (Data[PokeDex + 0x8 + brSize*7 + bit/8] & (byte)(1 << (bit%8))) != 0;
- Displayed |= (Data[PokeDex + 0x8 + brSize*8 + bit/8] & (byte)(1 << (bit%8))) != 0;
+ Displayed |= (Data[ofs + brSize*5] & (byte)(1 << (bit&7))) != 0;
+ Displayed |= (Data[ofs + brSize*6] & (byte)(1 << (bit&7))) != 0;
+ Displayed |= (Data[ofs + brSize*7] & (byte)(1 << (bit&7))) != 0;
+ Displayed |= (Data[ofs + brSize*8] & (byte)(1 << (bit&7))) != 0;
if (!Displayed) // offset is already biased by brSize, reuse shiftoff but for the display flags.
- Data[PokeDex + 0x8 + shiftoff + brSize*4 + bit/8] |= (byte)(1 << (bit%8));
+ Data[ofs + brSize*(shift + 4)] |= (byte)(1 << (bit&7));
// Set the Language
if (lang < 0) lang = 1;
- Data[PokeDexLanguageFlags + (bit*7 + lang) / 8] |= (byte)(1 << ((bit*7 + lang) % 8));
+ Data[PokeDexLanguageFlags + ((bit*7 + lang)>>3)] |= (byte)(1 << ((bit*7 + lang) & 7));
// Formes
int fc = Personal[pkm.Species].FormeCount;
@@ -654,19 +656,19 @@ protected override void setDex(PKM pkm)
bit = f + pkm.AltForm;
// Set Form Seen Flag
- Data[FormDex + FormLen*shiny + bit/8] |= (byte)(1 << (bit%8));
+ Data[FormDex + FormLen*shiny + (bit>>3)] |= (byte)(1 << (bit&7));
// Set Displayed Flag if necessary, check all flags
for (int i = 0; i < fc; i++)
{
bit = f + i;
- if ((Data[FormDex + FormLen*2 + bit/8] & (byte)(1 << (bit%8))) != 0) // Nonshiny
+ if ((Data[FormDex + FormLen*2 + (bit>>3)] & (byte)(1 << (bit&7))) != 0) // Nonshiny
return; // already set
- if ((Data[FormDex + FormLen*3 + bit/8] & (byte)(1 << (bit%8))) != 0) // Shiny
+ if ((Data[FormDex + FormLen*3 + (bit>>3)] & (byte)(1 << (bit&7))) != 0) // Shiny
return; // already set
}
bit = f + pkm.AltForm;
- Data[FormDex + FormLen * (2 + shiny) + bit / 8] |= (byte)(1 << (bit % 8));
+ Data[FormDex + FormLen * (2 + shiny) + (bit>>3)] |= (byte)(1 << (bit&7));
}
}
}