Fix gen3 unown form display/edit

This commit is contained in:
Kaphotics
2016-07-27 18:20:15 -07:00
parent 47c6168ac4
commit 07f0d688dc
3 changed files with 13 additions and 6 deletions

View File

@@ -1128,13 +1128,13 @@ internal static void setCountrySubRegion(ComboBox CB, string type)
}
private void setForms()
{
if (SAV.Generation < 4)
int species = Util.getIndex(CB_Species);
if (SAV.Generation < 4 && species != 201)
{
Label_Form.Visible = CB_Form.Visible = CB_Form.Enabled = false;
return;
}
int species = Util.getIndex(CB_Species);
bool hasForms = SAV.Personal[species].HasFormes || new[] { 201, 664, 665, 414 }.Contains(species);
CB_Form.Enabled = CB_Form.Visible = Label_Form.Visible = hasForms;
@@ -1626,7 +1626,12 @@ private void updateForm(object sender, EventArgs e)
setAbilityList();
// Gender Forms
if (PKX.getGender(CB_Form.Text) < 2 && Util.getIndex(CB_Species) != 201) // don't do this for Unown
if (Util.getIndex(CB_Species) == 201)
{
if (fieldsLoaded && SAV.Generation == 3)
updateRandomPID(sender, e); // Fix AltForm
}
else if (PKX.getGender(CB_Form.Text) < 2)
Label_Gender.Text = CB_Form.Text;
if (changingFields)

View File

@@ -90,6 +90,9 @@ private void populateFieldsPK3()
TB_PP3.Text = pk3.Move3_PP.ToString();
TB_PP4.Text = pk3.Move4_PP.ToString();
// Set Form if count is enough, else cap.
CB_Form.SelectedIndex = CB_Form.Items.Count > pk3.AltForm ? pk3.AltForm : CB_Form.Items.Count - 1;
// Load Extrabyte Value
TB_ExtraByte.Text = pk3.Data[Convert.ToInt32(CB_ExtraBytes.Text, 16)].ToString();

View File

@@ -25,7 +25,7 @@ public PK3(byte[] decryptedData = null, string ident = null)
// Future Attributes
public override uint EncryptionConstant { get { return PID; } set { } }
public override int Nature { get { return (int)(PID % 25); } set { } }
public override int AltForm { get { return -1; } set { } }
public override int AltForm { get { return Species == 201 ? PKX.getUnownForm(PID) : 0; } set { } }
public override bool IsNicknamed { get { return PKX.getIsNicknamed(Species, Nickname); } set { } }
public override int Gender { get { return PKX.getGender(Species, PID); } set { } }
@@ -294,8 +294,7 @@ public PK4 convertToPK4()
pk4.IsNicknamed = IsNicknamed;
// Unown Form
if (Species == 201)
pk4.AltForm = PKX.getUnownForm(PID);
pk4.AltForm = AltForm;
// Remove HM moves
int[] banned = { 15, 19, 57, 70, 148, 249, 127, 291 };