ZA: Dex enhancements/fixes

Fix X/Y mega forms clearing the Y mega form
Fix Displayed form being clamped to max of 3 (Vivillon no longer an issue)
Add on-seen/capture bulk form granting
Add on-seen shiny bulk form granting
This commit is contained in:
Kurt 2025-11-04 18:46:26 -06:00
parent 5b9d7f1314
commit 2b2d5c2c0b
4 changed files with 199 additions and 48 deletions

View File

@ -73,6 +73,10 @@ public void SetIsFormSeen(byte form, bool value)
FlagsFormSeen &= ~(1u << form);
}
public void SetIsFormsSeen(uint formsOr) => FlagsFormSeen |= formsOr;
public void SetIsFormsCaught(uint formsOr) => FlagsFormCaught |= formsOr;
public void SetIsShinySeen(uint formsOr) => FlagsShinySeen |= formsOr;
public static int GetDexLangFlag(int lang) => (uint)lang switch
{
> (int)MaxLanguageID or 6 or <= 0 => 0, // invalid language
@ -118,9 +122,17 @@ public void SetIsShinySeen(byte form, bool value)
FlagsShinySeen &= ~(1u << form);
}
public bool GetIsSeenMega() => FlagIsMega != 0;
public bool GetIsSeenMega(byte megaIndex) => ((FlagIsMega >> megaIndex) & 1) != 0;
public bool GetIsSeenAlpha() => FlagIsAlpha != 0;
public void SetIsSeenMega(bool value) => FlagIsMega = value ? (byte)1 : (byte)0;
public void SetIsSeenMega(byte megaIndex, bool value)
{
if (value)
FlagIsMega |= (byte)(1u << megaIndex);
else
FlagIsMega &= (byte)~(1u << megaIndex);
}
public void SetIsSeenAlpha(bool value) => FlagIsAlpha = value ? (byte)1 : (byte)0;
public DisplayGender9a GetDisplayGender(Gender gender, ushort species, byte form)

View File

@ -38,13 +38,17 @@ private void Register(PKM pk, ushort species, byte form)
entry.SetIsFormSeen(form, true);
entry.SetIsFormCaught(form, true);
if (FormInfo.IsMegaForm(species, form))
entry.SetIsSeenMega(true);
entry.SetIsSeenMega(0, true);
if (IsMegaFormXY(species))
entry.SetIsSeenMega(1, true);
entry.SetLanguageFlag(pk.Language, true);
var isShiny = pk.IsShiny;
if (isShiny)
{
entry.SetIsShinySeen(form, true);
if (GetFormExtraFlagsShinySeen(species, form, out var value))
entry.SetIsShinySeen(value);
}
if (!isRegistered)
{
@ -52,12 +56,79 @@ private void Register(PKM pk, ushort species, byte form)
entry.SetDisplayGender((Gender)pk.Gender, species, form);
entry.SetDisplayIsShiny(isShiny);
if (GetFormExtraFlags(species, out var value))
{
entry.SetIsFormsSeen(value);
entry.SetIsFormsCaught(value);
}
entry.SetDisplayIsNew(true);
}
if (pk is IAlphaReadOnly { IsAlpha: true })
entry.SetIsSeenAlpha(true);
}
/// <summary>
/// Fetches extra alternate form flags for all forms it can shift between, for Shiny entities.
/// </summary>
public static bool GetFormExtraFlags(ushort species, out uint value)
{
value = species switch
{
(int)Species.Furfrou => 1, // base form
(int)Species.Aegislash => 3, // both forms
// Returning in DLC
(int)Species.Mimikyu => 3, // both forms
(int)Species.Morpeko => 3, // both forms
// Not present in game, but left in code from prior games.
//(int)Species.Minior => 0, // handled separately (sets both core and meteor forms for the color) (((1u << 7) | 1u) << (form % 7))
//(int)Species.Cramorant => 7, // all 3 forms
//(int)Species.Eiscue => 3, // both forms
//(int)Species.Palafin => 3, // both forms
(int)Species.Zygarde => 0b01_0000, // Complete
_ => 0u
};
return value != 0;
}
/// <summary>
/// Fetches extra alternate form flags for all forms it can shift between, for Shiny entities.
/// </summary>
public static bool GetFormExtraFlagsShinySeen(ushort species, byte form, out uint value)
{
value = species switch
{
(int)Species.Furfrou => 1, // base form
(int)Species.Aegislash => 3, // both forms
(int)Species.Spewpa or (int)Species.Scatterbug => 0xF_FFFF, // all 20 forms of Vivillon. Not for Vivillon!
// Returning in DLC
(int)Species.Mimikyu => 3, // both forms
(int)Species.Morpeko => 3, // both forms
// Mega Forms
(int)Species.Zygarde => 0b11_1111, // all forms (normally sets 31, but Mega adds another flag)
(int)Species.Greninja when form != 2 => 0b1011, // Mega and Ash/Normal forms (normally sets 3, but Mega adds another flag)
(int)Species.Floette when form == 5 => 0b10_0000, // Mega (not form 1)
// New Megas (Absol, Lucario, Meowstic, Magearna, Tatsugiri) will need handling in DLC updates.
_ when IsMegaFormXY(species) => 0b_0011, // Two mega forms
_ when FormInfo.HasMegaForm(species) => 0b_0001, // One mega form
_ => 0,
};
return value != 0;
}
public static bool IsMegaFormXY(ushort species) => species switch
{
(int)Species.Charizard => true,
(int)Species.Mewtwo => true,
_ => false,
};
public override void SeenNone()
{
Data.Clear();
@ -86,6 +157,20 @@ private void SeenAll(ushort species, PersonalInfo9ZA pi, bool value = true, bool
entry.SetIsFormSeen(form, value);
if (shinyToo)
entry.SetIsShinySeen(form, value);
entry.SetIsSeenAlpha(value);
if (FormInfo.IsMegaForm(species, form))
entry.SetIsSeenMega(0, value);
if (IsMegaFormXY(species))
entry.SetIsSeenMega(1, value);
if (value)
{
if (GetFormExtraFlags(species, out var seen))
entry.SetIsFormsSeen(seen);
if (shinyToo && GetFormExtraFlagsShinySeen(species, form, out var flags))
entry.SetIsShinySeen(flags);
}
}
// Set other seen flags
@ -140,6 +225,9 @@ private void SetAllCaught(ushort species, bool value = true, bool shinyToo = fal
entry.SetIsFormSeen(form, value);
if (shinyToo)
entry.SetIsShinySeen(form, value);
if (GetFormExtraFlags(species, out var caught))
entry.SetIsFormsCaught(caught);
}
// Set language

View File

@ -64,9 +64,11 @@ private void InitializeComponent()
CHK_LangJPN = new System.Windows.Forms.CheckBox();
CLB_FormSeen = new System.Windows.Forms.CheckedListBox();
groupBox1 = new System.Windows.Forms.GroupBox();
CHK_SeenMegaY = new System.Windows.Forms.CheckBox();
CHK_SeenMegaX = new System.Windows.Forms.CheckBox();
CHK_SeenMega = new System.Windows.Forms.CheckBox();
CHK_SeenAlpha = new System.Windows.Forms.CheckBox();
CHK_SeenGenderless = new System.Windows.Forms.CheckBox();
CHK_SeenMega = new System.Windows.Forms.CheckBox();
CHK_SeenFemale = new System.Windows.Forms.CheckBox();
CHK_SeenMale = new System.Windows.Forms.CheckBox();
CHK_IsNew = new System.Windows.Forms.CheckBox();
@ -142,7 +144,7 @@ private void InitializeComponent()
// B_Save
//
B_Save.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
B_Save.Location = new System.Drawing.Point(690, 287);
B_Save.Location = new System.Drawing.Point(690, 299);
B_Save.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
B_Save.Name = "B_Save";
B_Save.Size = new System.Drawing.Size(93, 27);
@ -224,10 +226,10 @@ private void InitializeComponent()
CB_DisplayForm.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
CB_DisplayForm.FormattingEnabled = true;
CB_DisplayForm.Items.AddRange(new object[] { "♂", "♀", "-" });
CB_DisplayForm.Location = new System.Drawing.Point(84, 41);
CB_DisplayForm.Location = new System.Drawing.Point(77, 47);
CB_DisplayForm.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CB_DisplayForm.Name = "CB_DisplayForm";
CB_DisplayForm.Size = new System.Drawing.Size(119, 25);
CB_DisplayForm.Size = new System.Drawing.Size(125, 25);
CB_DisplayForm.TabIndex = 45;
//
// GB_Displayed
@ -237,29 +239,29 @@ private void InitializeComponent()
GB_Displayed.Controls.Add(CB_Gender);
GB_Displayed.Controls.Add(CHK_DisplayShiny);
GB_Displayed.Controls.Add(CB_DisplayForm);
GB_Displayed.Location = new System.Drawing.Point(430, 18);
GB_Displayed.Location = new System.Drawing.Point(430, 29);
GB_Displayed.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
GB_Displayed.Name = "GB_Displayed";
GB_Displayed.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3);
GB_Displayed.Size = new System.Drawing.Size(210, 105);
GB_Displayed.Size = new System.Drawing.Size(210, 102);
GB_Displayed.TabIndex = 44;
GB_Displayed.TabStop = false;
GB_Displayed.Text = "Displayed";
//
// L_DisplayForm
//
L_DisplayForm.Location = new System.Drawing.Point(4, 42);
L_DisplayForm.Location = new System.Drawing.Point(3, 48);
L_DisplayForm.Name = "L_DisplayForm";
L_DisplayForm.Size = new System.Drawing.Size(76, 20);
L_DisplayForm.Size = new System.Drawing.Size(72, 20);
L_DisplayForm.TabIndex = 54;
L_DisplayForm.Text = "Form:";
L_DisplayForm.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// L_DisplayGender
//
L_DisplayGender.Location = new System.Drawing.Point(4, 19);
L_DisplayGender.Location = new System.Drawing.Point(3, 25);
L_DisplayGender.Name = "L_DisplayGender";
L_DisplayGender.Size = new System.Drawing.Size(76, 20);
L_DisplayGender.Size = new System.Drawing.Size(72, 20);
L_DisplayGender.TabIndex = 53;
L_DisplayGender.Text = "Gender:";
L_DisplayGender.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
@ -269,17 +271,17 @@ private void InitializeComponent()
CB_Gender.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
CB_Gender.FormattingEnabled = true;
CB_Gender.Items.AddRange(new object[] { "-", "♂", "♀", "♂/♀" });
CB_Gender.Location = new System.Drawing.Point(84, 16);
CB_Gender.Location = new System.Drawing.Point(77, 22);
CB_Gender.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CB_Gender.Name = "CB_Gender";
CB_Gender.Size = new System.Drawing.Size(56, 25);
CB_Gender.Size = new System.Drawing.Size(64, 25);
CB_Gender.TabIndex = 24;
//
// CHK_DisplayShiny
//
CHK_DisplayShiny.AutoSize = true;
CHK_DisplayShiny.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
CHK_DisplayShiny.Location = new System.Drawing.Point(38, 68);
CHK_DisplayShiny.Location = new System.Drawing.Point(72, 76);
CHK_DisplayShiny.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_DisplayShiny.Name = "CHK_DisplayShiny";
CHK_DisplayShiny.Size = new System.Drawing.Size(60, 21);
@ -303,7 +305,7 @@ private void InitializeComponent()
GB_Language.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
GB_Language.Name = "GB_Language";
GB_Language.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3);
GB_Language.Size = new System.Drawing.Size(134, 185);
GB_Language.Size = new System.Drawing.Size(134, 204);
GB_Language.TabIndex = 47;
GB_Language.TabStop = false;
GB_Language.Text = "Languages";
@ -311,7 +313,7 @@ private void InitializeComponent()
// CHK_LangCHT
//
CHK_LangCHT.AutoSize = true;
CHK_LangCHT.Location = new System.Drawing.Point(7, 161);
CHK_LangCHT.Location = new System.Drawing.Point(7, 179);
CHK_LangCHT.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_LangCHT.Name = "CHK_LangCHT";
CHK_LangCHT.Size = new System.Drawing.Size(79, 21);
@ -322,7 +324,7 @@ private void InitializeComponent()
// CHK_LangCHS
//
CHK_LangCHS.AutoSize = true;
CHK_LangCHS.Location = new System.Drawing.Point(7, 145);
CHK_LangCHS.Location = new System.Drawing.Point(7, 161);
CHK_LangCHS.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_LangCHS.Name = "CHK_LangCHS";
CHK_LangCHS.Size = new System.Drawing.Size(79, 21);
@ -333,7 +335,7 @@ private void InitializeComponent()
// CHK_LangKOR
//
CHK_LangKOR.AutoSize = true;
CHK_LangKOR.Location = new System.Drawing.Point(7, 129);
CHK_LangKOR.Location = new System.Drawing.Point(7, 143);
CHK_LangKOR.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_LangKOR.Name = "CHK_LangKOR";
CHK_LangKOR.Size = new System.Drawing.Size(69, 21);
@ -344,7 +346,7 @@ private void InitializeComponent()
// CHK_LangLATAM
//
CHK_LangLATAM.AutoSize = true;
CHK_LangLATAM.Location = new System.Drawing.Point(7, 113);
CHK_LangLATAM.Location = new System.Drawing.Point(7, 125);
CHK_LangLATAM.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_LangLATAM.Name = "CHK_LangLATAM";
CHK_LangLATAM.Size = new System.Drawing.Size(98, 21);
@ -355,7 +357,7 @@ private void InitializeComponent()
// CHK_LangSPA
//
CHK_LangSPA.AutoSize = true;
CHK_LangSPA.Location = new System.Drawing.Point(7, 97);
CHK_LangSPA.Location = new System.Drawing.Point(7, 107);
CHK_LangSPA.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_LangSPA.Name = "CHK_LangSPA";
CHK_LangSPA.Size = new System.Drawing.Size(100, 21);
@ -366,7 +368,7 @@ private void InitializeComponent()
// CHK_LangGER
//
CHK_LangGER.AutoSize = true;
CHK_LangGER.Location = new System.Drawing.Point(7, 81);
CHK_LangGER.Location = new System.Drawing.Point(7, 89);
CHK_LangGER.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_LangGER.Name = "CHK_LangGER";
CHK_LangGER.Size = new System.Drawing.Size(73, 21);
@ -377,7 +379,7 @@ private void InitializeComponent()
// CHK_LangITA
//
CHK_LangITA.AutoSize = true;
CHK_LangITA.Location = new System.Drawing.Point(7, 65);
CHK_LangITA.Location = new System.Drawing.Point(7, 71);
CHK_LangITA.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_LangITA.Name = "CHK_LangITA";
CHK_LangITA.Size = new System.Drawing.Size(61, 21);
@ -388,7 +390,7 @@ private void InitializeComponent()
// CHK_LangFRE
//
CHK_LangFRE.AutoSize = true;
CHK_LangFRE.Location = new System.Drawing.Point(7, 48);
CHK_LangFRE.Location = new System.Drawing.Point(7, 52);
CHK_LangFRE.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_LangFRE.Name = "CHK_LangFRE";
CHK_LangFRE.Size = new System.Drawing.Size(65, 21);
@ -399,7 +401,7 @@ private void InitializeComponent()
// CHK_LangENG
//
CHK_LangENG.AutoSize = true;
CHK_LangENG.Location = new System.Drawing.Point(7, 32);
CHK_LangENG.Location = new System.Drawing.Point(7, 34);
CHK_LangENG.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_LangENG.Name = "CHK_LangENG";
CHK_LangENG.Size = new System.Drawing.Size(68, 21);
@ -430,24 +432,59 @@ private void InitializeComponent()
//
// groupBox1
//
groupBox1.Controls.Add(CHK_SeenAlpha);
groupBox1.Controls.Add(CHK_SeenMegaY);
groupBox1.Controls.Add(CHK_SeenMegaX);
groupBox1.Controls.Add(CHK_SeenMega);
groupBox1.Controls.Add(CHK_SeenAlpha);
groupBox1.Controls.Add(CHK_SeenGenderless);
groupBox1.Controls.Add(CHK_SeenFemale);
groupBox1.Controls.Add(CHK_SeenMale);
groupBox1.Location = new System.Drawing.Point(299, 18);
groupBox1.Location = new System.Drawing.Point(210, 45);
groupBox1.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
groupBox1.Name = "groupBox1";
groupBox1.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3);
groupBox1.Size = new System.Drawing.Size(124, 105);
groupBox1.Size = new System.Drawing.Size(212, 86);
groupBox1.TabIndex = 49;
groupBox1.TabStop = false;
groupBox1.Text = "Seen";
//
// CHK_SeenMegaY
//
CHK_SeenMegaY.AutoSize = true;
CHK_SeenMegaY.Location = new System.Drawing.Point(122, 56);
CHK_SeenMegaY.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_SeenMegaY.Name = "CHK_SeenMegaY";
CHK_SeenMegaY.Size = new System.Drawing.Size(72, 21);
CHK_SeenMegaY.TabIndex = 58;
CHK_SeenMegaY.Text = "Mega Y";
CHK_SeenMegaY.UseVisualStyleBackColor = true;
//
// CHK_SeenMegaX
//
CHK_SeenMegaX.AutoSize = true;
CHK_SeenMegaX.Location = new System.Drawing.Point(122, 38);
CHK_SeenMegaX.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_SeenMegaX.Name = "CHK_SeenMegaX";
CHK_SeenMegaX.Size = new System.Drawing.Size(73, 21);
CHK_SeenMegaX.TabIndex = 57;
CHK_SeenMegaX.Text = "Mega X";
CHK_SeenMegaX.UseVisualStyleBackColor = true;
//
// CHK_SeenMega
//
CHK_SeenMega.AutoSize = true;
CHK_SeenMega.Location = new System.Drawing.Point(122, 38);
CHK_SeenMega.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_SeenMega.Name = "CHK_SeenMega";
CHK_SeenMega.Size = new System.Drawing.Size(61, 21);
CHK_SeenMega.TabIndex = 55;
CHK_SeenMega.Text = "Mega";
CHK_SeenMega.UseVisualStyleBackColor = true;
//
// CHK_SeenAlpha
//
CHK_SeenAlpha.AutoSize = true;
CHK_SeenAlpha.Location = new System.Drawing.Point(6, 81);
CHK_SeenAlpha.Location = new System.Drawing.Point(122, 20);
CHK_SeenAlpha.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_SeenAlpha.Name = "CHK_SeenAlpha";
CHK_SeenAlpha.Size = new System.Drawing.Size(60, 21);
@ -458,7 +495,7 @@ private void InitializeComponent()
// CHK_SeenGenderless
//
CHK_SeenGenderless.AutoSize = true;
CHK_SeenGenderless.Location = new System.Drawing.Point(6, 48);
CHK_SeenGenderless.Location = new System.Drawing.Point(14, 56);
CHK_SeenGenderless.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_SeenGenderless.Name = "CHK_SeenGenderless";
CHK_SeenGenderless.Size = new System.Drawing.Size(92, 21);
@ -466,21 +503,10 @@ private void InitializeComponent()
CHK_SeenGenderless.Text = "Genderless";
CHK_SeenGenderless.UseVisualStyleBackColor = true;
//
// CHK_SeenMega
//
CHK_SeenMega.AutoSize = true;
CHK_SeenMega.Location = new System.Drawing.Point(6, 65);
CHK_SeenMega.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_SeenMega.Name = "CHK_SeenMega";
CHK_SeenMega.Size = new System.Drawing.Size(61, 21);
CHK_SeenMega.TabIndex = 55;
CHK_SeenMega.Text = "Mega";
CHK_SeenMega.UseVisualStyleBackColor = true;
//
// CHK_SeenFemale
//
CHK_SeenFemale.AutoSize = true;
CHK_SeenFemale.Location = new System.Drawing.Point(6, 32);
CHK_SeenFemale.Location = new System.Drawing.Point(14, 38);
CHK_SeenFemale.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_SeenFemale.Name = "CHK_SeenFemale";
CHK_SeenFemale.Size = new System.Drawing.Size(68, 21);
@ -491,7 +517,7 @@ private void InitializeComponent()
// CHK_SeenMale
//
CHK_SeenMale.AutoSize = true;
CHK_SeenMale.Location = new System.Drawing.Point(6, 16);
CHK_SeenMale.Location = new System.Drawing.Point(14, 20);
CHK_SeenMale.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_SeenMale.Name = "CHK_SeenMale";
CHK_SeenMale.Size = new System.Drawing.Size(56, 21);
@ -502,7 +528,7 @@ private void InitializeComponent()
// CHK_IsNew
//
CHK_IsNew.AutoSize = true;
CHK_IsNew.Location = new System.Drawing.Point(212, 50);
CHK_IsNew.Location = new System.Drawing.Point(356, 19);
CHK_IsNew.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
CHK_IsNew.Name = "CHK_IsNew";
CHK_IsNew.Size = new System.Drawing.Size(53, 21);
@ -647,5 +673,7 @@ private void InitializeComponent()
private System.Windows.Forms.Label L_Seen;
private System.Windows.Forms.Label L_Caught;
private System.Windows.Forms.Label L_SeenShiny;
private System.Windows.Forms.CheckBox CHK_SeenMegaY;
private System.Windows.Forms.CheckBox CHK_SeenMegaX;
}
}

View File

@ -148,9 +148,22 @@ private void GetEntry(ushort species)
CHK_SeenMale.Checked = entry.GetIsGenderSeen(0);
CHK_SeenFemale.Checked = entry.GetIsGenderSeen(1);
CHK_SeenGenderless.Checked = entry.GetIsGenderSeen(2);
CHK_SeenMega.Checked = entry.GetIsSeenMega();
CHK_SeenAlpha.Checked = entry.GetIsSeenAlpha();
if (Zukan9a.IsMegaFormXY(species))
{
CHK_SeenMegaX.Checked = entry.GetIsSeenMega(0);
CHK_SeenMegaY.Checked = entry.GetIsSeenMega(1);
CHK_SeenMegaX.Visible = CHK_SeenMegaY.Visible = true;
CHK_SeenMega.Visible = false;
}
else
{
CHK_SeenMega.Checked = entry.GetIsSeenMega(0);
CHK_SeenMegaX.Visible = CHK_SeenMegaY.Visible = false;
CHK_SeenMega.Visible = true;
}
for (byte i = 0; i < forms.Length; i++)
{
CLB_FormCaught.Items[i] = CLB_FormSeen.Items[i] = CLB_FormShiny.Items[i] = forms[i];
@ -161,7 +174,7 @@ private void GetEntry(ushort species)
CB_DisplayForm.Items.Clear();
CB_DisplayForm.Items.AddRange(forms);
CB_DisplayForm.SelectedIndex = Math.Clamp(entry.DisplayForm, 0, CB_Gender.Items.Count - 1);
CB_DisplayForm.SelectedIndex = Math.Clamp(entry.DisplayForm, 0, CB_DisplayForm.Items.Count - 1);
CB_Gender.SelectedIndex = Math.Clamp((byte)entry.DisplayGender, 0, CB_Gender.Items.Count - 1);
CHK_DisplayShiny.Checked = entry.GetDisplayIsShiny();
@ -204,8 +217,18 @@ private void SetEntry(ushort species)
entry.SetIsGenderSeen(0, CHK_SeenMale.Checked);
entry.SetIsGenderSeen(1, CHK_SeenFemale.Checked);
entry.SetIsGenderSeen(2, CHK_SeenGenderless.Checked);
entry.SetIsSeenMega(CHK_SeenMega.Checked);
entry.SetIsSeenAlpha(CHK_SeenAlpha.Checked);
if (Zukan9a.IsMegaFormXY(species))
{
entry.SetIsSeenMega(0, CHK_SeenMegaX.Checked);
entry.SetIsSeenMega(1, CHK_SeenMegaY.Checked);
}
else
{
entry.SetIsSeenMega(0, CHK_SeenMega.Checked);
}
for (byte i = 0; i < CLB_FormSeen.Items.Count; i++)
{
entry.SetIsFormSeen(i, CLB_FormSeen.GetItemChecked(i));