diff --git a/PKHeX.Core/Properties/Resources.Designer.cs b/PKHeX.Core/Properties/Resources.Designer.cs
index b6619eafb..aaadbe747 100644
--- a/PKHeX.Core/Properties/Resources.Designer.cs
+++ b/PKHeX.Core/Properties/Resources.Designer.cs
@@ -61,6 +61,16 @@ internal class Resources {
}
}
+ ///
+ /// Looks up a localized string similar to 0077 Entralink 6:Finished tutorial
+ ///0268 Rati@s 5:Battleable,6:Disappeared.
+ ///
+ internal static string const_b2w2 {
+ get {
+ return ResourceManager.GetString("const_b2w2", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to 0182 Ns Castle 0:Event,1:Event,2:Before Reshiram/Zekrom,3:Before N,4:Event,5:Before Ghetsis
///0145 Victini 0:Event,1:Event,2:Battleable,3:Defeated,4:Captured,5:All event finished
@@ -145,6 +155,31 @@ internal class Resources {
}
}
+ ///
+ /// Looks up a localized string similar to 0802 Cobalion disappeared
+ ///0302 Cobalion LV+20
+ ///0810 Terrakion disappeared
+ ///0329 Terrakion LV+20
+ ///0801 Virizion disappeared
+ ///0300 Virizion LV+20
+ ///0667 Reshiram/Zekrom disappeared
+ ///1004 Kyurem disappeared
+ ///0922 Regirock disappeared
+ ///0921 Regice disappeared
+ ///0923 Registeel disappeared
+ ///0918 Uxie disappeared
+ ///0919 Mesprit disappeared
+ ///0920 Azelf disappeared
+ ///0900 Heatran disappeared
+ ///0924 Regigigas disappeared
+ ///0897 Cresselia disappeared.
+ ///
+ internal static string flags_b2w2 {
+ get {
+ return ResourceManager.GetString("flags_b2w2", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to 0669 Plasma guide(LeaguePokemart) disappeared
///0661 Reshiram/Zekrom(NsCastle) disappeared
diff --git a/PKHeX.Core/Properties/Resources.resx b/PKHeX.Core/Properties/Resources.resx
index 632f9595d..264319c55 100644
--- a/PKHeX.Core/Properties/Resources.resx
+++ b/PKHeX.Core/Properties/Resources.resx
@@ -1451,4 +1451,10 @@
..\Resources\text\other\flags_bw.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;shift_jis
+
+ ..\Resources\text\other\const_b2w2.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;shift_jis
+
+
+ ..\Resources\text\other\flags_b2w2.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;shift_jis
+
\ No newline at end of file
diff --git a/PKHeX.Core/Resources/text/other/const_b2w2.txt b/PKHeX.Core/Resources/text/other/const_b2w2.txt
new file mode 100644
index 000000000..2b173be7e
--- /dev/null
+++ b/PKHeX.Core/Resources/text/other/const_b2w2.txt
@@ -0,0 +1,2 @@
+0077 Entralink 6:Finished tutorial
+0268 Rati@s 5:Battleable,6:Disappeared
\ No newline at end of file
diff --git a/PKHeX.Core/Resources/text/other/flags_b2w2.txt b/PKHeX.Core/Resources/text/other/flags_b2w2.txt
new file mode 100644
index 000000000..fc5d919ae
--- /dev/null
+++ b/PKHeX.Core/Resources/text/other/flags_b2w2.txt
@@ -0,0 +1,17 @@
+0802 Cobalion disappeared
+0302 Cobalion LV+20
+0810 Terrakion disappeared
+0329 Terrakion LV+20
+0801 Virizion disappeared
+0300 Virizion LV+20
+0667 Reshiram/Zekrom disappeared
+1004 Kyurem disappeared
+0922 Regirock disappeared
+0921 Regice disappeared
+0923 Registeel disappeared
+0918 Uxie disappeared
+0919 Mesprit disappeared
+0920 Azelf disappeared
+0900 Heatran disappeared
+0924 Regigigas disappeared
+0897 Cresselia disappeared
\ No newline at end of file
diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen5/SAV_Misc5.Designer.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen5/SAV_Misc5.Designer.cs
index 505cbcb87..5f1dd0f80 100644
--- a/PKHeX.WinForms/Subforms/Save Editors/Gen5/SAV_Misc5.Designer.cs
+++ b/PKHeX.WinForms/Subforms/Save Editors/Gen5/SAV_Misc5.Designer.cs
@@ -33,6 +33,9 @@ private void InitializeComponent()
this.B_Save = new System.Windows.Forms.Button();
this.TC_Misc = new System.Windows.Forms.TabControl();
this.TAB_Main = new System.Windows.Forms.TabPage();
+ this.GB_KeySystem = new System.Windows.Forms.GroupBox();
+ this.B_AllKeys = new System.Windows.Forms.Button();
+ this.CLB_KeySystem = new System.Windows.Forms.CheckedListBox();
this.CHK_LibertyPass = new System.Windows.Forms.CheckBox();
this.GB_Roamer = new System.Windows.Forms.GroupBox();
this.L_Roamer642 = new System.Windows.Forms.Label();
@@ -42,20 +45,65 @@ private void InitializeComponent()
this.GB_FlyDest = new System.Windows.Forms.GroupBox();
this.CLB_FlyDest = new System.Windows.Forms.CheckedListBox();
this.B_AllFlyDest = new System.Windows.Forms.Button();
- this.GB_KeySystem = new System.Windows.Forms.GroupBox();
- this.CLB_KeySystem = new System.Windows.Forms.CheckedListBox();
- this.B_AllKeys = new System.Windows.Forms.Button();
+ this.TAB_Entralink = new System.Windows.Forms.TabPage();
+ this.L_FMParticipants = new System.Windows.Forms.Label();
+ this.L_FMCompleted = new System.Windows.Forms.Label();
+ this.L_FMParticipated = new System.Windows.Forms.Label();
+ this.L_FMHosted = new System.Windows.Forms.Label();
+ this.L_FMTopScore = new System.Windows.Forms.Label();
+ this.GB_EntreeLevel = new System.Windows.Forms.GroupBox();
+ this.NUD_EntreeWhiteEXP = new System.Windows.Forms.NumericUpDown();
+ this.NUD_EntreeBlackEXP = new System.Windows.Forms.NumericUpDown();
+ this.NUD_EntreeBlackLV = new System.Windows.Forms.NumericUpDown();
+ this.NUD_EntreeWhiteLV = new System.Windows.Forms.NumericUpDown();
+ this.L_EntreeBlack = new System.Windows.Forms.Label();
+ this.L_EntreeWhite = new System.Windows.Forms.Label();
+ this.NUD_FMMostParticipants = new System.Windows.Forms.NumericUpDown();
+ this.NUD_FMTopScores = new System.Windows.Forms.NumericUpDown();
+ this.NUD_FMCompleted = new System.Windows.Forms.NumericUpDown();
+ this.NUD_FMParticipated = new System.Windows.Forms.NumericUpDown();
+ this.NUD_FMHosted = new System.Windows.Forms.NumericUpDown();
+ this.GB_FunfestMissions = new System.Windows.Forms.GroupBox();
+ this.CHK_FMNew = new System.Windows.Forms.CheckBox();
+ this.L_FMLocked = new System.Windows.Forms.Label();
+ this.L_FMBestScore = new System.Windows.Forms.Label();
+ this.L_FMBestTotal = new System.Windows.Forms.Label();
+ this.NUD_FMBestScore = new System.Windows.Forms.NumericUpDown();
+ this.NUD_FMBestTotal = new System.Windows.Forms.NumericUpDown();
+ this.CB_FMLevel = new System.Windows.Forms.ComboBox();
+ this.L_FMUnlocked = new System.Windows.Forms.Label();
+ this.B_FunfestMissions = new System.Windows.Forms.Button();
+ this.LB_FunfestMissions = new System.Windows.Forms.ListBox();
+ this.GB_PassPowers = new System.Windows.Forms.GroupBox();
+ this.CB_PassPower3 = new System.Windows.Forms.ComboBox();
+ this.CB_PassPower2 = new System.Windows.Forms.ComboBox();
+ this.CB_PassPower1 = new System.Windows.Forms.ComboBox();
this.TC_Misc.SuspendLayout();
this.TAB_Main.SuspendLayout();
+ this.GB_KeySystem.SuspendLayout();
this.GB_Roamer.SuspendLayout();
this.GB_FlyDest.SuspendLayout();
- this.GB_KeySystem.SuspendLayout();
+ this.TAB_Entralink.SuspendLayout();
+ this.GB_EntreeLevel.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_EntreeWhiteEXP)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_EntreeBlackEXP)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_EntreeBlackLV)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_EntreeWhiteLV)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_FMMostParticipants)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_FMTopScores)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_FMCompleted)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_FMParticipated)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_FMHosted)).BeginInit();
+ this.GB_FunfestMissions.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_FMBestScore)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_FMBestTotal)).BeginInit();
+ this.GB_PassPowers.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(52, 316);
+ this.B_Cancel.Location = new System.Drawing.Point(197, 311);
this.B_Cancel.Name = "B_Cancel";
this.B_Cancel.Size = new System.Drawing.Size(75, 23);
this.B_Cancel.TabIndex = 0;
@@ -66,7 +114,7 @@ private void InitializeComponent()
// 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(133, 316);
+ this.B_Save.Location = new System.Drawing.Point(278, 311);
this.B_Save.Name = "B_Save";
this.B_Save.Size = new System.Drawing.Size(75, 23);
this.B_Save.TabIndex = 1;
@@ -80,10 +128,11 @@ private void InitializeComponent()
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TC_Misc.Controls.Add(this.TAB_Main);
+ this.TC_Misc.Controls.Add(this.TAB_Entralink);
this.TC_Misc.Location = new System.Drawing.Point(12, 12);
this.TC_Misc.Name = "TC_Misc";
this.TC_Misc.SelectedIndex = 0;
- this.TC_Misc.Size = new System.Drawing.Size(196, 298);
+ this.TC_Misc.Size = new System.Drawing.Size(341, 293);
this.TC_Misc.TabIndex = 2;
//
// TAB_Main
@@ -95,11 +144,41 @@ private void InitializeComponent()
this.TAB_Main.Location = new System.Drawing.Point(4, 22);
this.TAB_Main.Name = "TAB_Main";
this.TAB_Main.Padding = new System.Windows.Forms.Padding(3);
- this.TAB_Main.Size = new System.Drawing.Size(188, 272);
+ this.TAB_Main.Size = new System.Drawing.Size(333, 267);
this.TAB_Main.TabIndex = 0;
this.TAB_Main.Text = "Main";
this.TAB_Main.UseVisualStyleBackColor = true;
//
+ // GB_KeySystem
+ //
+ this.GB_KeySystem.Controls.Add(this.B_AllKeys);
+ this.GB_KeySystem.Controls.Add(this.CLB_KeySystem);
+ this.GB_KeySystem.Location = new System.Drawing.Point(152, 6);
+ this.GB_KeySystem.Name = "GB_KeySystem";
+ this.GB_KeySystem.Size = new System.Drawing.Size(140, 127);
+ this.GB_KeySystem.TabIndex = 3;
+ this.GB_KeySystem.TabStop = false;
+ this.GB_KeySystem.Text = "Unlocked Keys";
+ //
+ // B_AllKeys
+ //
+ this.B_AllKeys.Location = new System.Drawing.Point(6, 18);
+ this.B_AllKeys.Name = "B_AllKeys";
+ this.B_AllKeys.Size = new System.Drawing.Size(75, 23);
+ this.B_AllKeys.TabIndex = 1;
+ this.B_AllKeys.Text = "Check All";
+ this.B_AllKeys.UseVisualStyleBackColor = true;
+ this.B_AllKeys.Click += new System.EventHandler(this.B_AllKeys_Click);
+ //
+ // CLB_KeySystem
+ //
+ this.CLB_KeySystem.CheckOnClick = true;
+ this.CLB_KeySystem.FormattingEnabled = true;
+ this.CLB_KeySystem.Location = new System.Drawing.Point(6, 47);
+ this.CLB_KeySystem.Name = "CLB_KeySystem";
+ this.CLB_KeySystem.Size = new System.Drawing.Size(128, 74);
+ this.CLB_KeySystem.TabIndex = 0;
+ //
// CHK_LibertyPass
//
this.CHK_LibertyPass.AutoSize = true;
@@ -187,41 +266,450 @@ private void InitializeComponent()
this.B_AllFlyDest.UseVisualStyleBackColor = true;
this.B_AllFlyDest.Click += new System.EventHandler(this.B_AllFlyDest_Click);
//
- // GB_KeySystem
+ // TAB_Entralink
//
- this.GB_KeySystem.Controls.Add(this.B_AllKeys);
- this.GB_KeySystem.Controls.Add(this.CLB_KeySystem);
- this.GB_KeySystem.Location = new System.Drawing.Point(6, 139);
- this.GB_KeySystem.Name = "GB_KeySystem";
- this.GB_KeySystem.Size = new System.Drawing.Size(140, 127);
- this.GB_KeySystem.TabIndex = 3;
- this.GB_KeySystem.TabStop = false;
- this.GB_KeySystem.Text = "Unlocked Keys";
+ this.TAB_Entralink.Controls.Add(this.L_FMParticipants);
+ this.TAB_Entralink.Controls.Add(this.L_FMCompleted);
+ this.TAB_Entralink.Controls.Add(this.L_FMParticipated);
+ this.TAB_Entralink.Controls.Add(this.L_FMHosted);
+ this.TAB_Entralink.Controls.Add(this.L_FMTopScore);
+ this.TAB_Entralink.Controls.Add(this.GB_EntreeLevel);
+ this.TAB_Entralink.Controls.Add(this.NUD_FMMostParticipants);
+ this.TAB_Entralink.Controls.Add(this.NUD_FMTopScores);
+ this.TAB_Entralink.Controls.Add(this.NUD_FMCompleted);
+ this.TAB_Entralink.Controls.Add(this.NUD_FMParticipated);
+ this.TAB_Entralink.Controls.Add(this.NUD_FMHosted);
+ this.TAB_Entralink.Controls.Add(this.GB_FunfestMissions);
+ this.TAB_Entralink.Controls.Add(this.GB_PassPowers);
+ this.TAB_Entralink.Location = new System.Drawing.Point(4, 22);
+ this.TAB_Entralink.Name = "TAB_Entralink";
+ this.TAB_Entralink.Size = new System.Drawing.Size(333, 267);
+ this.TAB_Entralink.TabIndex = 1;
+ this.TAB_Entralink.Text = "Entralink";
+ this.TAB_Entralink.UseVisualStyleBackColor = true;
//
- // CLB_KeySystem
+ // L_FMParticipants
//
- this.CLB_KeySystem.CheckOnClick = true;
- this.CLB_KeySystem.FormattingEnabled = true;
- this.CLB_KeySystem.Location = new System.Drawing.Point(6, 47);
- this.CLB_KeySystem.Name = "CLB_KeySystem";
- this.CLB_KeySystem.Size = new System.Drawing.Size(128, 74);
- this.CLB_KeySystem.TabIndex = 0;
+ this.L_FMParticipants.Location = new System.Drawing.Point(161, 239);
+ this.L_FMParticipants.Name = "L_FMParticipants";
+ this.L_FMParticipants.Size = new System.Drawing.Size(114, 23);
+ this.L_FMParticipants.TabIndex = 16;
+ this.L_FMParticipants.Text = "Most Participants";
+ this.L_FMParticipants.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
- // B_AllKeys
+ // L_FMCompleted
//
- this.B_AllKeys.Location = new System.Drawing.Point(6, 18);
- this.B_AllKeys.Name = "B_AllKeys";
- this.B_AllKeys.Size = new System.Drawing.Size(75, 23);
- this.B_AllKeys.TabIndex = 1;
- this.B_AllKeys.Text = "Check All";
- this.B_AllKeys.UseVisualStyleBackColor = true;
- this.B_AllKeys.Click += new System.EventHandler(this.B_AllKeys_Click);
+ this.L_FMCompleted.Location = new System.Drawing.Point(4, 239);
+ this.L_FMCompleted.Name = "L_FMCompleted";
+ this.L_FMCompleted.Size = new System.Drawing.Size(84, 23);
+ this.L_FMCompleted.TabIndex = 15;
+ this.L_FMCompleted.Text = "Completed";
+ this.L_FMCompleted.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // L_FMParticipated
+ //
+ this.L_FMParticipated.Location = new System.Drawing.Point(4, 214);
+ this.L_FMParticipated.Name = "L_FMParticipated";
+ this.L_FMParticipated.Size = new System.Drawing.Size(84, 23);
+ this.L_FMParticipated.TabIndex = 14;
+ this.L_FMParticipated.Text = "Participated";
+ this.L_FMParticipated.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // L_FMHosted
+ //
+ this.L_FMHosted.Location = new System.Drawing.Point(4, 189);
+ this.L_FMHosted.Name = "L_FMHosted";
+ this.L_FMHosted.Size = new System.Drawing.Size(84, 23);
+ this.L_FMHosted.TabIndex = 13;
+ this.L_FMHosted.Text = "Hosted";
+ this.L_FMHosted.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // L_FMTopScore
+ //
+ this.L_FMTopScore.Location = new System.Drawing.Point(158, 214);
+ this.L_FMTopScore.Name = "L_FMTopScore";
+ this.L_FMTopScore.Size = new System.Drawing.Size(111, 23);
+ this.L_FMTopScore.TabIndex = 12;
+ this.L_FMTopScore.Text = "Top Score";
+ this.L_FMTopScore.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // GB_EntreeLevel
+ //
+ this.GB_EntreeLevel.Controls.Add(this.NUD_EntreeWhiteEXP);
+ this.GB_EntreeLevel.Controls.Add(this.NUD_EntreeBlackEXP);
+ this.GB_EntreeLevel.Controls.Add(this.NUD_EntreeBlackLV);
+ this.GB_EntreeLevel.Controls.Add(this.NUD_EntreeWhiteLV);
+ this.GB_EntreeLevel.Controls.Add(this.L_EntreeBlack);
+ this.GB_EntreeLevel.Controls.Add(this.L_EntreeWhite);
+ this.GB_EntreeLevel.Location = new System.Drawing.Point(6, 6);
+ this.GB_EntreeLevel.Name = "GB_EntreeLevel";
+ this.GB_EntreeLevel.Size = new System.Drawing.Size(137, 68);
+ this.GB_EntreeLevel.TabIndex = 11;
+ this.GB_EntreeLevel.TabStop = false;
+ this.GB_EntreeLevel.Text = "Entree Level";
+ //
+ // NUD_EntreeWhiteEXP
+ //
+ this.NUD_EntreeWhiteEXP.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.NUD_EntreeWhiteEXP.Location = new System.Drawing.Point(94, 43);
+ this.NUD_EntreeWhiteEXP.Maximum = new decimal(new int[] {
+ 49,
+ 0,
+ 0,
+ 0});
+ this.NUD_EntreeWhiteEXP.Name = "NUD_EntreeWhiteEXP";
+ this.NUD_EntreeWhiteEXP.Size = new System.Drawing.Size(37, 19);
+ this.NUD_EntreeWhiteEXP.TabIndex = 6;
+ this.NUD_EntreeWhiteEXP.Value = new decimal(new int[] {
+ 49,
+ 0,
+ 0,
+ 0});
+ this.NUD_EntreeWhiteEXP.ValueChanged += new System.EventHandler(this.NUD_EntreeWhiteEXP_ValueChanged);
+ //
+ // NUD_EntreeBlackEXP
+ //
+ this.NUD_EntreeBlackEXP.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.NUD_EntreeBlackEXP.Location = new System.Drawing.Point(94, 18);
+ this.NUD_EntreeBlackEXP.Maximum = new decimal(new int[] {
+ 49,
+ 0,
+ 0,
+ 0});
+ this.NUD_EntreeBlackEXP.Name = "NUD_EntreeBlackEXP";
+ this.NUD_EntreeBlackEXP.Size = new System.Drawing.Size(37, 19);
+ this.NUD_EntreeBlackEXP.TabIndex = 5;
+ this.NUD_EntreeBlackEXP.Value = new decimal(new int[] {
+ 49,
+ 0,
+ 0,
+ 0});
+ this.NUD_EntreeBlackEXP.ValueChanged += new System.EventHandler(this.NUD_EntreeBlackEXP_ValueChanged);
+ //
+ // NUD_EntreeBlackLV
+ //
+ this.NUD_EntreeBlackLV.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.NUD_EntreeBlackLV.Location = new System.Drawing.Point(45, 18);
+ this.NUD_EntreeBlackLV.Maximum = new decimal(new int[] {
+ 999,
+ 0,
+ 0,
+ 0});
+ this.NUD_EntreeBlackLV.Name = "NUD_EntreeBlackLV";
+ this.NUD_EntreeBlackLV.Size = new System.Drawing.Size(43, 19);
+ this.NUD_EntreeBlackLV.TabIndex = 1;
+ this.NUD_EntreeBlackLV.Value = new decimal(new int[] {
+ 999,
+ 0,
+ 0,
+ 0});
+ this.NUD_EntreeBlackLV.ValueChanged += new System.EventHandler(this.NUD_EntreeBlackLV_ValueChanged);
+ //
+ // NUD_EntreeWhiteLV
+ //
+ this.NUD_EntreeWhiteLV.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.NUD_EntreeWhiteLV.Location = new System.Drawing.Point(45, 43);
+ this.NUD_EntreeWhiteLV.Maximum = new decimal(new int[] {
+ 999,
+ 0,
+ 0,
+ 0});
+ this.NUD_EntreeWhiteLV.Name = "NUD_EntreeWhiteLV";
+ this.NUD_EntreeWhiteLV.Size = new System.Drawing.Size(43, 19);
+ this.NUD_EntreeWhiteLV.TabIndex = 0;
+ this.NUD_EntreeWhiteLV.Value = new decimal(new int[] {
+ 999,
+ 0,
+ 0,
+ 0});
+ this.NUD_EntreeWhiteLV.ValueChanged += new System.EventHandler(this.NUD_EntreeWhiteLV_ValueChanged);
+ //
+ // L_EntreeBlack
+ //
+ this.L_EntreeBlack.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.L_EntreeBlack.Location = new System.Drawing.Point(6, 15);
+ this.L_EntreeBlack.Name = "L_EntreeBlack";
+ this.L_EntreeBlack.Size = new System.Drawing.Size(33, 23);
+ this.L_EntreeBlack.TabIndex = 3;
+ this.L_EntreeBlack.Text = "B";
+ this.L_EntreeBlack.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // L_EntreeWhite
+ //
+ this.L_EntreeWhite.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.L_EntreeWhite.Location = new System.Drawing.Point(5, 40);
+ this.L_EntreeWhite.Name = "L_EntreeWhite";
+ this.L_EntreeWhite.Size = new System.Drawing.Size(34, 23);
+ this.L_EntreeWhite.TabIndex = 4;
+ this.L_EntreeWhite.Text = "W";
+ this.L_EntreeWhite.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // NUD_FMMostParticipants
+ //
+ this.NUD_FMMostParticipants.Location = new System.Drawing.Point(281, 242);
+ this.NUD_FMMostParticipants.Maximum = new decimal(new int[] {
+ 255,
+ 0,
+ 0,
+ 0});
+ this.NUD_FMMostParticipants.Name = "NUD_FMMostParticipants";
+ this.NUD_FMMostParticipants.Size = new System.Drawing.Size(43, 19);
+ this.NUD_FMMostParticipants.TabIndex = 10;
+ this.NUD_FMMostParticipants.Value = new decimal(new int[] {
+ 255,
+ 0,
+ 0,
+ 0});
+ //
+ // NUD_FMTopScores
+ //
+ this.NUD_FMTopScores.Location = new System.Drawing.Point(275, 217);
+ this.NUD_FMTopScores.Maximum = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ this.NUD_FMTopScores.Name = "NUD_FMTopScores";
+ this.NUD_FMTopScores.Size = new System.Drawing.Size(49, 19);
+ this.NUD_FMTopScores.TabIndex = 9;
+ this.NUD_FMTopScores.Value = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ //
+ // NUD_FMCompleted
+ //
+ this.NUD_FMCompleted.Location = new System.Drawing.Point(94, 242);
+ this.NUD_FMCompleted.Maximum = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ this.NUD_FMCompleted.Name = "NUD_FMCompleted";
+ this.NUD_FMCompleted.Size = new System.Drawing.Size(49, 19);
+ this.NUD_FMCompleted.TabIndex = 8;
+ this.NUD_FMCompleted.Value = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ //
+ // NUD_FMParticipated
+ //
+ this.NUD_FMParticipated.Location = new System.Drawing.Point(94, 217);
+ this.NUD_FMParticipated.Maximum = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ this.NUD_FMParticipated.Name = "NUD_FMParticipated";
+ this.NUD_FMParticipated.Size = new System.Drawing.Size(49, 19);
+ this.NUD_FMParticipated.TabIndex = 7;
+ this.NUD_FMParticipated.Value = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ //
+ // NUD_FMHosted
+ //
+ this.NUD_FMHosted.Location = new System.Drawing.Point(94, 192);
+ this.NUD_FMHosted.Maximum = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ this.NUD_FMHosted.Name = "NUD_FMHosted";
+ this.NUD_FMHosted.Size = new System.Drawing.Size(49, 19);
+ this.NUD_FMHosted.TabIndex = 6;
+ this.NUD_FMHosted.Value = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ //
+ // GB_FunfestMissions
+ //
+ this.GB_FunfestMissions.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.GB_FunfestMissions.Controls.Add(this.CHK_FMNew);
+ this.GB_FunfestMissions.Controls.Add(this.L_FMLocked);
+ this.GB_FunfestMissions.Controls.Add(this.L_FMBestScore);
+ this.GB_FunfestMissions.Controls.Add(this.L_FMBestTotal);
+ this.GB_FunfestMissions.Controls.Add(this.NUD_FMBestScore);
+ this.GB_FunfestMissions.Controls.Add(this.NUD_FMBestTotal);
+ this.GB_FunfestMissions.Controls.Add(this.CB_FMLevel);
+ this.GB_FunfestMissions.Controls.Add(this.L_FMUnlocked);
+ this.GB_FunfestMissions.Controls.Add(this.B_FunfestMissions);
+ this.GB_FunfestMissions.Controls.Add(this.LB_FunfestMissions);
+ this.GB_FunfestMissions.Location = new System.Drawing.Point(149, 6);
+ this.GB_FunfestMissions.Name = "GB_FunfestMissions";
+ this.GB_FunfestMissions.Size = new System.Drawing.Size(178, 205);
+ this.GB_FunfestMissions.TabIndex = 5;
+ this.GB_FunfestMissions.TabStop = false;
+ this.GB_FunfestMissions.Text = "Funfest Missions";
+ //
+ // CHK_FMNew
+ //
+ this.CHK_FMNew.Location = new System.Drawing.Point(6, 177);
+ this.CHK_FMNew.Name = "CHK_FMNew";
+ this.CHK_FMNew.Size = new System.Drawing.Size(66, 24);
+ this.CHK_FMNew.TabIndex = 9;
+ this.CHK_FMNew.Text = "NEW";
+ this.CHK_FMNew.UseVisualStyleBackColor = true;
+ this.CHK_FMNew.CheckedChanged += new System.EventHandler(this.CHK_FMNew_CheckedChanged);
+ //
+ // L_FMLocked
+ //
+ this.L_FMLocked.Location = new System.Drawing.Point(6, 127);
+ this.L_FMLocked.Name = "L_FMLocked";
+ this.L_FMLocked.Size = new System.Drawing.Size(70, 23);
+ this.L_FMLocked.TabIndex = 8;
+ this.L_FMLocked.Text = "Locked";
+ this.L_FMLocked.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // L_FMBestScore
+ //
+ this.L_FMBestScore.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.L_FMBestScore.Location = new System.Drawing.Point(65, 177);
+ this.L_FMBestScore.Name = "L_FMBestScore";
+ this.L_FMBestScore.Size = new System.Drawing.Size(52, 23);
+ this.L_FMBestScore.TabIndex = 7;
+ this.L_FMBestScore.Text = "Score";
+ this.L_FMBestScore.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // L_FMBestTotal
+ //
+ this.L_FMBestTotal.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.L_FMBestTotal.Location = new System.Drawing.Point(4, 152);
+ this.L_FMBestTotal.Name = "L_FMBestTotal";
+ this.L_FMBestTotal.Size = new System.Drawing.Size(113, 23);
+ this.L_FMBestTotal.TabIndex = 6;
+ this.L_FMBestTotal.Text = "Best Records Total";
+ this.L_FMBestTotal.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // NUD_FMBestScore
+ //
+ this.NUD_FMBestScore.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.NUD_FMBestScore.Location = new System.Drawing.Point(123, 180);
+ this.NUD_FMBestScore.Maximum = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ this.NUD_FMBestScore.Name = "NUD_FMBestScore";
+ this.NUD_FMBestScore.Size = new System.Drawing.Size(49, 19);
+ this.NUD_FMBestScore.TabIndex = 5;
+ this.NUD_FMBestScore.ValueChanged += new System.EventHandler(this.NUD_FMBestScore_ValueChanged);
+ //
+ // NUD_FMBestTotal
+ //
+ this.NUD_FMBestTotal.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.NUD_FMBestTotal.Location = new System.Drawing.Point(123, 155);
+ this.NUD_FMBestTotal.Maximum = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ this.NUD_FMBestTotal.Name = "NUD_FMBestTotal";
+ this.NUD_FMBestTotal.Size = new System.Drawing.Size(49, 19);
+ this.NUD_FMBestTotal.TabIndex = 4;
+ this.NUD_FMBestTotal.ValueChanged += new System.EventHandler(this.NUD_FMBestTotal_ValueChanged);
+ //
+ // CB_FMLevel
+ //
+ this.CB_FMLevel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.CB_FMLevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.CB_FMLevel.FormattingEnabled = true;
+ this.CB_FMLevel.Location = new System.Drawing.Point(82, 129);
+ this.CB_FMLevel.Name = "CB_FMLevel";
+ this.CB_FMLevel.Size = new System.Drawing.Size(90, 20);
+ this.CB_FMLevel.TabIndex = 3;
+ this.CB_FMLevel.SelectedIndexChanged += new System.EventHandler(this.CB_FMLevel_SelectedIndexChanged);
+ //
+ // L_FMUnlocked
+ //
+ this.L_FMUnlocked.Location = new System.Drawing.Point(6, 127);
+ this.L_FMUnlocked.Name = "L_FMUnlocked";
+ this.L_FMUnlocked.Size = new System.Drawing.Size(70, 23);
+ this.L_FMUnlocked.TabIndex = 2;
+ this.L_FMUnlocked.Text = "Unlocked";
+ this.L_FMUnlocked.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // B_FunfestMissions
+ //
+ this.B_FunfestMissions.Location = new System.Drawing.Point(6, 18);
+ this.B_FunfestMissions.Name = "B_FunfestMissions";
+ this.B_FunfestMissions.Size = new System.Drawing.Size(144, 23);
+ this.B_FunfestMissions.TabIndex = 0;
+ this.B_FunfestMissions.Text = "Unlock All (w/o No.0)";
+ this.B_FunfestMissions.UseVisualStyleBackColor = true;
+ this.B_FunfestMissions.Click += new System.EventHandler(this.B_FunfestMissions_Click);
+ //
+ // LB_FunfestMissions
+ //
+ this.LB_FunfestMissions.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.LB_FunfestMissions.FormattingEnabled = true;
+ this.LB_FunfestMissions.ItemHeight = 12;
+ this.LB_FunfestMissions.Location = new System.Drawing.Point(6, 47);
+ this.LB_FunfestMissions.Name = "LB_FunfestMissions";
+ this.LB_FunfestMissions.Size = new System.Drawing.Size(166, 76);
+ this.LB_FunfestMissions.TabIndex = 1;
+ this.LB_FunfestMissions.SelectedIndexChanged += new System.EventHandler(this.LB_FunfestMissions_SelectedIndexChanged);
+ //
+ // GB_PassPowers
+ //
+ this.GB_PassPowers.Controls.Add(this.CB_PassPower3);
+ this.GB_PassPowers.Controls.Add(this.CB_PassPower2);
+ this.GB_PassPowers.Controls.Add(this.CB_PassPower1);
+ this.GB_PassPowers.Location = new System.Drawing.Point(6, 80);
+ this.GB_PassPowers.Name = "GB_PassPowers";
+ this.GB_PassPowers.Size = new System.Drawing.Size(137, 96);
+ this.GB_PassPowers.TabIndex = 2;
+ this.GB_PassPowers.TabStop = false;
+ this.GB_PassPowers.Text = "Pass Powers";
+ //
+ // CB_PassPower3
+ //
+ this.CB_PassPower3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.CB_PassPower3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.CB_PassPower3.FormattingEnabled = true;
+ this.CB_PassPower3.Location = new System.Drawing.Point(6, 70);
+ this.CB_PassPower3.Name = "CB_PassPower3";
+ this.CB_PassPower3.Size = new System.Drawing.Size(125, 20);
+ this.CB_PassPower3.TabIndex = 2;
+ //
+ // CB_PassPower2
+ //
+ this.CB_PassPower2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.CB_PassPower2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.CB_PassPower2.FormattingEnabled = true;
+ this.CB_PassPower2.Location = new System.Drawing.Point(6, 44);
+ this.CB_PassPower2.Name = "CB_PassPower2";
+ this.CB_PassPower2.Size = new System.Drawing.Size(125, 20);
+ this.CB_PassPower2.TabIndex = 1;
+ //
+ // CB_PassPower1
+ //
+ this.CB_PassPower1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.CB_PassPower1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.CB_PassPower1.FormattingEnabled = true;
+ this.CB_PassPower1.Location = new System.Drawing.Point(6, 18);
+ this.CB_PassPower1.Name = "CB_PassPower1";
+ this.CB_PassPower1.Size = new System.Drawing.Size(125, 20);
+ this.CB_PassPower1.TabIndex = 0;
//
// SAV_Misc5
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(220, 351);
+ this.ClientSize = new System.Drawing.Size(365, 346);
this.Controls.Add(this.TC_Misc);
this.Controls.Add(this.B_Save);
this.Controls.Add(this.B_Cancel);
@@ -232,9 +720,24 @@ private void InitializeComponent()
this.TC_Misc.ResumeLayout(false);
this.TAB_Main.ResumeLayout(false);
this.TAB_Main.PerformLayout();
+ this.GB_KeySystem.ResumeLayout(false);
this.GB_Roamer.ResumeLayout(false);
this.GB_FlyDest.ResumeLayout(false);
- this.GB_KeySystem.ResumeLayout(false);
+ this.TAB_Entralink.ResumeLayout(false);
+ this.GB_EntreeLevel.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_EntreeWhiteEXP)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_EntreeBlackEXP)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_EntreeBlackLV)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_EntreeWhiteLV)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_FMMostParticipants)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_FMTopScores)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_FMCompleted)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_FMParticipated)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_FMHosted)).EndInit();
+ this.GB_FunfestMissions.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_FMBestScore)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_FMBestTotal)).EndInit();
+ this.GB_PassPowers.ResumeLayout(false);
this.ResumeLayout(false);
}
@@ -257,5 +760,38 @@ private void InitializeComponent()
private System.Windows.Forms.GroupBox GB_KeySystem;
private System.Windows.Forms.Button B_AllKeys;
private System.Windows.Forms.CheckedListBox CLB_KeySystem;
+ private System.Windows.Forms.TabPage TAB_Entralink;
+ private System.Windows.Forms.NumericUpDown NUD_EntreeWhiteLV;
+ private System.Windows.Forms.NumericUpDown NUD_EntreeBlackLV;
+ private System.Windows.Forms.Label L_FMParticipants;
+ private System.Windows.Forms.Label L_FMCompleted;
+ private System.Windows.Forms.Label L_FMParticipated;
+ private System.Windows.Forms.Label L_FMHosted;
+ private System.Windows.Forms.Label L_FMTopScore;
+ private System.Windows.Forms.GroupBox GB_EntreeLevel;
+ private System.Windows.Forms.Label L_EntreeBlack;
+ private System.Windows.Forms.Label L_EntreeWhite;
+ private System.Windows.Forms.NumericUpDown NUD_FMMostParticipants;
+ private System.Windows.Forms.NumericUpDown NUD_FMTopScores;
+ private System.Windows.Forms.NumericUpDown NUD_FMCompleted;
+ private System.Windows.Forms.NumericUpDown NUD_FMParticipated;
+ private System.Windows.Forms.NumericUpDown NUD_FMHosted;
+ private System.Windows.Forms.GroupBox GB_FunfestMissions;
+ private System.Windows.Forms.Label L_FMBestScore;
+ private System.Windows.Forms.Label L_FMBestTotal;
+ private System.Windows.Forms.NumericUpDown NUD_FMBestScore;
+ private System.Windows.Forms.NumericUpDown NUD_FMBestTotal;
+ private System.Windows.Forms.ComboBox CB_FMLevel;
+ private System.Windows.Forms.Label L_FMUnlocked;
+ private System.Windows.Forms.Button B_FunfestMissions;
+ private System.Windows.Forms.ListBox LB_FunfestMissions;
+ private System.Windows.Forms.GroupBox GB_PassPowers;
+ private System.Windows.Forms.ComboBox CB_PassPower3;
+ private System.Windows.Forms.ComboBox CB_PassPower2;
+ private System.Windows.Forms.ComboBox CB_PassPower1;
+ private System.Windows.Forms.Label L_FMLocked;
+ private System.Windows.Forms.CheckBox CHK_FMNew;
+ private System.Windows.Forms.NumericUpDown NUD_EntreeWhiteEXP;
+ private System.Windows.Forms.NumericUpDown NUD_EntreeBlackEXP;
}
}
\ No newline at end of file
diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen5/SAV_Misc5.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen5/SAV_Misc5.cs
index 85c7dd680..2b094da69 100644
--- a/PKHeX.WinForms/Subforms/Save Editors/Gen5/SAV_Misc5.cs
+++ b/PKHeX.WinForms/Subforms/Save Editors/Gen5/SAV_Misc5.cs
@@ -14,6 +14,8 @@ public SAV_Misc5(SaveFile sav)
SAV = (SAV5)(Origin = sav).Clone();
InitializeComponent();
readMain();
+ if (SAV.B2W2) readEntralink();
+ else TC_Misc.Controls.Remove(TAB_Entralink);
}
private void B_Cancel_Click(object sender, EventArgs e)
@@ -24,6 +26,7 @@ private void B_Cancel_Click(object sender, EventArgs e)
private void B_Save_Click(object sender, EventArgs e)
{
saveMain();
+ if (SAV.B2W2) saveEntralink();
Origin.setData(SAV.Data, 0);
Close();
}
@@ -31,13 +34,13 @@ private void B_Save_Click(object sender, EventArgs e)
private ComboBox[] cbr;
private int ofsFly;
private int[] FlyDestC;
- protected int ofsRoamer = 0x21B00;
- protected int ofsLibPass = 0x212BC;
- protected uint keyLibPass = 0x0132B536;
+ private readonly int ofsRoamer = 0x21B00;
+ private readonly int ofsLibPass = 0x212BC;
+ private readonly uint keyLibPass = 0x0132B536;
private uint valLibPass;
private bool bLibPass;
- protected int ofsKS = 0x25828;
- protected uint[] keyKS = new uint[] {
+ private readonly int ofsKS = 0x25828;
+ private readonly uint[] keyKS = new uint[] {
// 0x34525, 0x11963, // Selected City
// 0x31239, 0x15657, 0x49589, // Selected Difficulty
// 0x94525, 0x81963, 0x38569, // Selected Mystery Door
@@ -208,5 +211,304 @@ private void B_AllKeys_Click(object sender, EventArgs e)
for (int i = 0; i < CLB_KeySystem.Items.Count; i++)
CLB_KeySystem.SetItemChecked(i, true);
}
+
+ private readonly int[][] FMUnlockConditions = new[] {
+ null, // 00
+ null, // 01
+ new[] { 2444, }, // 02
+ null, // 03
+ new[] { 2445, }, // 04
+ null, // 05
+ new[] { 2462, }, // 06
+ new[] { 2452, 2476, }, // 07
+ new[] { 2476, 2548, }, // 08
+ new[] { 2447, }, new[] { 2447, }, // 09
+ new[] { 2453, }, new[] { 2453, }, // 10
+ new[] { 2504, }, // 11
+ new[] { 2457, 2507, }, // 12
+ new[] { 2458, 2478, }, // 13
+ new[] { 2456, 2508, }, // 14
+ new[] { 2448, }, new[] { 2448, }, // 15
+ new[] { 2549, }, // 16
+ new[] { 2449, }, // 17
+ new[] { 2479, 2513, }, // 18
+ new[] { 2479, 2550, }, // 19
+ new[] { 2481, }, // 20
+ new[] { 2459, }, // 21
+ new[] { 2454, }, // 22
+ new[] { 2551, }, // 23
+ new[] { 2400, }, // 24
+ new[] { 2400, }, // 25
+ new[] { 2400, }, new[] { 2400, }, // 26
+ new[] { 2400, }, new[] { 2400, }, // 27
+ new[] { 2400, }, // 28
+ new[] { 2400, 2460, }, // 29
+ new[] { 2400, }, // 30
+ new[] { 2400, 2461, }, new[] { 2400, 2461, }, // 31
+ new[] { 2437, }, // 32
+ new[] { 2450, }, // 33
+ new[] { 2451, }, // 34
+ new[] { 2455, }, // 35
+ new[] { 105, }, // 36
+ new[] { 2400, }, // 37
+ new[] { 2557, }, // 38
+ };
+ private bool editing;
+ private readonly int ofsFM = 0x25900;
+ private readonly ToolTip TipExpB = new ToolTip(), TipExpW = new ToolTip();
+ private NumericUpDown[] nudaE, nudaF;
+ private ComboBox[] cba;
+ private ToolTip[] ta;
+ private void readEntralink()
+ {
+ editing = true;
+ nudaE = new[] { NUD_EntreeWhiteLV, NUD_EntreeWhiteEXP, NUD_EntreeBlackLV, NUD_EntreeBlackEXP };
+ ushort u;
+ for (int i = 0; i < 2; i++)
+ {
+ u = BitConverter.ToUInt16(SAV.Data, 0x2120C + (i << 1));
+ nudaE[i << 1].Value = u > 999 ? 999 : u;
+ nudaE[(i << 1) + 1].Value = SAV.Data[ofsFM + 0xF8 + i];
+ }
+
+ string[] PassPowerA = new[] {
+ "(none)",
+ "-1 Encounter", "-2 Encounter", "-3 Encounter", "+1 Encounter", "+2 Encounter", "+3 Encounter",
+ "+1 Hatching", "+2 Hatching", "+3 Hatching", "S Hatching",
+ "+1 Befriending", "+2 Befriending", "+3 Befriending", "S Befriending",
+ "+1 Bargain", "+2 Bargain", "+3 Bargain", "S Bargain",
+ "+1 HP(20)", "+2 HP(50)", "+3 HP(200)", "+1 PP(5)", "+2 PP(10)", "+3 PP(ALL)",
+ "-1 Exp.", "-2 Exp.", "-3 Exp.", "+1 Exp.", "+2 Exp.", "+3 Exp.", "S Exp.",
+ "+1 PrizeMoney", "+2 PrizeMoney", "+3 PrizeMoney", "S PrizeMoney",
+ "+1 Capture", "+2 Capture", "+3 Capture", "S Capture",
+ "+1 Search", "+2 Search", "+3 Search", "S Search",
+ "+1 HiddenGrotto", "+2 HiddenGrotto", "+3 HiddenGrotto", "S HiddenGrotto",
+ "+1 Charm", "+2 Charm", "+3 Charm", "S Charm",
+ "(HP Full Recovery)", "(MAX Hatching)", "(MAX Bargain)", "(MAX Befriending)", "(MAX Exp.)", "(MAX PrizeMoney)", "(MAX Capture)", "(MAX Search)", "(MAX HiddenGrotto)", "(MAX Charm)",
+ };
+ int[] PassPowerC = new[] {
+ 48,
+ 3, 4, 5, 0, 1, 2,
+ 6, 7, 8, 33,
+ 9, 10, 11, 35,
+ 12, 13, 14, 34,
+ 15, 16, 17, 18, 19, 20,
+ 24, 25, 26, 21, 22, 23, 36,
+ 27, 28, 29, 37,
+ 30, 31, 32, 38,
+ 49, 50, 51, 58,
+ 52, 53, 54, 60,
+ 55, 56, 57, 62,
+ 39, 40, 41, 42, 43, 44, 45, 59, 61, 63,
+ };
+ ComboItem[] PassPowerB = PassPowerA.Zip(PassPowerC, (f, s) => new ComboItem { Text = f, Value = s, }).ToArray();
+ cba = new[] { CB_PassPower1, CB_PassPower2, CB_PassPower3 };
+ for(int i = 0; i < cba.Length; i++)
+ {
+ cba[i].Items.Clear();
+ cba[i].DisplayMember = "Text";
+ cba[i].ValueMember = "Value";
+ cba[i].DataSource = new BindingSource(PassPowerB, null);
+ cba[i].SelectedValue = (int)SAV.Data[0x213A0 + i];
+ }
+
+ nudaF = new[] { NUD_FMHosted, NUD_FMParticipated, NUD_FMCompleted, NUD_FMTopScores };
+ for (int i = 0; i < nudaF.Length; i++)
+ {
+ u = BitConverter.ToUInt16(SAV.Data, ofsFM + 0xF0 + (i << 1));
+ nudaF[i].Value = u > 9999 ? 9999 : u;
+ }
+ NUD_FMMostParticipants.Value = SAV.Data[ofsFM + 0xFA];
+
+ string[] FMTitles = new[] {
+ "00 The First Berry Search!",
+ "01 Collect Berries!",
+ "02 Find Lost Items!",
+ "03 Find Lost Boys!",
+ "04 Enjoy Shopping!",
+ "05 Find Audino!",
+ "06 Search for 3 Pokemon!",
+ "07 Train with Martial Artists!",
+ "08 Sparring with 10 Trainers!",
+ "09B Get Rich Quick!",
+ "09W Treasure Hunting!",
+ "10B Exciting Trading!",
+ "10W Exhilarating Trading!",
+ "11 Find Emolga!",
+ "12 Wings Falling on the Drawbridge!",
+ "13 Find Treasures!",
+ "14 Mushrooms Hide-and-Seek!",
+ "15B Find Mysterious Ores!",
+ "15W Find Shining Ores!",
+ "16 The 2 Lost Treasures",
+ "17 Big Harvest of Berries!",
+ "18 Ring the Bell...",
+ "19 The Bell that Rings 3 Times",
+ "20 Path to an Ace!",
+ "21 Shocking Shopping!",
+ "22 Memory Training!",
+ "23 Push the Limit of Your Memory...",
+ "24 Find Rustling Grass!",
+ "25 Find Shards!",
+ "26B Forgotten Lost Items",
+ "26W Not-Found Lost Items",
+ "27B What is the Best Price?",
+ "27W What is the Real Price?",
+ "28 Give me the Item!",
+ "29 Do a Great Trade-Up!",
+ "30 Search Hidden Grottes!",
+ "31B Noisy Hidden Grottes!",
+ "31W Quiet Hidden Grottes!",
+ "32 Fishing Competition!",
+ "33 Mulch Collector!",
+ "34 Where are Fluttering Hearts?",
+ "35 Rock-Paper-Scissors Competition!",
+ "36 Take a Walk with Eggs!",
+ "37 Find Steelix!",
+ "38 The Berry-Hunting Adventure!",
+ };
+ LB_FunfestMissions.Items.Clear();
+ LB_FunfestMissions.Items.AddRange(FMTitles);
+
+ CB_FMLevel.Items.Clear();
+ CB_FMLevel.Items.AddRange(new string[] { "Lv.1", "Lv.2 +", "Lv.3 ++", "Lv.3 +++", });
+ ta = new[] { TipExpW, TipExpB };
+ setNudMax();
+ setEntreeExpTooltip();
+ editing = false;
+ }
+ private void saveEntralink()
+ {
+ for (int i = 0; i < 2; i++)
+ {
+ BitConverter.GetBytes((ushort)nudaE[i << 1].Value).CopyTo(SAV.Data, 0x2120C + (i << 1));
+ SAV.Data[ofsFM + 0xF8 + i] = (byte)nudaE[(i << 1) + 1].Value;
+ }
+ for (int i = 0, j; i < cba.Length; i++)
+ {
+ if (cba[i].SelectedIndex < 0) continue;
+ j = (int)cba[i].SelectedValue;
+ SAV.Data[0x213A0 + i] = (byte)j;
+ }
+ for (int i = 0; i < nudaF.Length; i++)
+ BitConverter.GetBytes((ushort)nudaF[i].Value).CopyTo(SAV.Data, ofsFM + 0xF0 + (i << 1));
+ SAV.Data[ofsFM + 0xFA] = (byte)NUD_FMMostParticipants.Value;
+ }
+ private void setEntreeExpTooltip(bool? isBlack = null)
+ {
+ int lv;
+ int exp;
+ string tip0;
+ for (int i = 0; i < 2; i++)
+ {
+ if (isBlack == true) continue;
+ lv = (int)nudaE[i << 1].Value;
+ if (lv < 9)
+ exp = (lv * (lv + 1) * 5) / 2;
+ else
+ exp = (lv - 9) * 50 + 225;
+ exp += (int)nudaE[(i << 1) + 1].Value;
+ tip0 = (i == 0 ? "White" : "Black") + " LV " + lv.ToString() + Environment.NewLine + " Exp.Points: " + exp.ToString() + Environment.NewLine + " To Next Lv: " + ((lv == 999) ? "-" : (nudaE[(i << 1) + 1].Maximum - nudaE[(i << 1) + 1].Value + 1).ToString());
+ ta[i].RemoveAll();
+ ta[i].SetToolTip(nudaE[i << 1], tip0);
+ ta[i].SetToolTip(nudaE[(i << 1) + 1], tip0);
+ }
+ }
+ private void setNudMax(bool? isBlack = null)
+ {
+ int lv;
+ int expmax;
+ for (int i = 0; i < 2; i++)
+ {
+ if (isBlack == true) continue;
+ lv = (int)nudaE[i << 1].Value;
+ expmax = lv > 8 ? 49 : lv * 5 + 4;
+ if (nudaE[(i << 1) + 1].Value > expmax) nudaE[(i << 1) + 1].Value = expmax;
+ nudaE[(i << 1) + 1].Maximum = expmax;
+ }
+ }
+ private void setFMVal(int ofsB, int len, uint val)
+ {
+ int s = LB_FunfestMissions.SelectedIndex;
+ if (s < 0 || s >= FMUnlockConditions.Length) return;
+ BitConverter.GetBytes(BitConverter.ToUInt32(SAV.Data, ofsFM + (s << 2)) & ~(~(uint)0 >> (32 - len) << ofsB) | val << ofsB).CopyTo(SAV.Data, ofsFM + (s << 2));
+ }
+ private void LB_FunfestMissions_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ int s = LB_FunfestMissions.SelectedIndex;
+ if (s < 0 || s >= FMUnlockConditions.Length) return;
+ editing = true;
+ bool FirstMissionCleared = (SAV.Data[0x2025E + (2438 >> 3)] & 1 << (2438 & 7)) != 0;
+ L_FMUnlocked.Visible = s == 0 ? !FirstMissionCleared : FirstMissionCleared && (FMUnlockConditions[s]?.All(v => (SAV.Data[0x2025E + (v >> 3)] & 1 << (v & 7)) != 0)) != false;
+ L_FMLocked.Visible = !L_FMUnlocked.Visible;
+ uint u = BitConverter.ToUInt32(SAV.Data, ofsFM + (s << 2));
+ CHK_FMNew.Checked = u >> 31 != 0;
+ CB_FMLevel.SelectedIndex = (int)(u << 2 >> 30);
+ int i = (int)(u << 4 >> 18);
+ NUD_FMBestScore.Value = i > 9999 ? 9999 : i;
+ i = (int)(u & 0x3FF);
+ NUD_FMBestTotal.Value = i > 9999 ? 9999 : i;
+ editing = false;
+ }
+
+ private void CHK_FMNew_CheckedChanged(object sender, EventArgs e)
+ {
+ if (editing) return;
+ setFMVal(31, 1, (uint)(CHK_FMNew.Checked ? 1 : 0));
+ }
+
+ private void CB_FMLevel_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ if (editing) return;
+ setFMVal(28, 3, (uint)(CB_FMLevel.SelectedIndex & 3));
+ }
+
+ private void NUD_FMBestScore_ValueChanged(object sender, EventArgs e)
+ {
+ if (editing) return;
+ setFMVal(14, 14, (uint)NUD_FMBestScore.Value);
+ }
+
+ private void NUD_FMBestTotal_ValueChanged(object sender, EventArgs e)
+ {
+ if (editing) return;
+ setFMVal(0, 14, (uint)NUD_FMBestTotal.Value);
+ }
+
+ private void B_FunfestMissions_Click(object sender, EventArgs e)
+ {
+ SAV.Data[0x2025E + (2438 >> 3)] |= (byte)(1 << (2438 & 7));
+ foreach (int[] ia in FMUnlockConditions)
+ for (int i = 0; i < ia?.Length; i++)
+ SAV.Data[0x2025E + (ia[i] >> 3)] |= (byte)(1 << (ia[i] & 7));
+ L_FMUnlocked.Visible = true;
+ L_FMLocked.Visible = false;
+ }
+
+ private void NUD_EntreeBlackLV_ValueChanged(object sender, EventArgs e)
+ {
+ if (editing) return;
+ setNudMax(isBlack: true);
+ setEntreeExpTooltip(isBlack: true);
+ }
+
+ private void NUD_EntreeWhiteLV_ValueChanged(object sender, EventArgs e)
+ {
+ if (editing) return;
+ setNudMax(isBlack: false);
+ setEntreeExpTooltip(isBlack: false);
+ }
+
+ private void NUD_EntreeBlackEXP_ValueChanged(object sender, EventArgs e)
+ {
+ if (editing) return;
+ setEntreeExpTooltip(isBlack: true);
+ }
+
+ private void NUD_EntreeWhiteEXP_ValueChanged(object sender, EventArgs e)
+ {
+ if (editing) return;
+ setEntreeExpTooltip(isBlack: false);
+ }
}
}
diff --git a/PKHeX.WinForms/Subforms/Save Editors/SAV_EventFlags.cs b/PKHeX.WinForms/Subforms/Save Editors/SAV_EventFlags.cs
index 4084967f5..fc129ec9c 100644
--- a/PKHeX.WinForms/Subforms/Save Editors/SAV_EventFlags.cs
+++ b/PKHeX.WinForms/Subforms/Save Editors/SAV_EventFlags.cs
@@ -117,6 +117,9 @@ private string[] getStringList(string type)
case GameVersion.BW:
gamePrefix = "bw";
break;
+ case GameVersion.B2W2:
+ gamePrefix = "b2w2";
+ break;
default:
return null;
}