PKHeX/PKHeX.WinForms/Controls/PKM Editor/EditPK5.cs
Kurt a9892203c7 Refactoring
extract pkm loading routines to smaller methods
reduce code duplication (rely on empty setters to ignore some calls)

should be much easier to understand the load/save process; the original
setup (pk6) was following the structure from 0x00-end, no point still
doing that as everything is now abstracted.
2017-10-02 23:13:40 -07:00

50 lines
1.3 KiB
C#

using PKHeX.Core;
namespace PKHeX.WinForms.Controls
{
public partial class PKMEditor
{
private void PopulateFieldsPK5()
{
if (!(pkm is PK5 pk5))
return;
LoadMisc1(pk5);
LoadMisc2(pk5);
LoadMisc3(pk5);
LoadMisc4(pk5);
CB_EncounterType.SelectedValue = pk5.Gen4 ? pk5.EncounterType : 0;
CHK_NSparkle.Checked = pk5.NPokémon;
if (HaX)
DEV_Ability.SelectedValue = pk5.Ability;
else if (pk5.HiddenAbility)
CB_Ability.SelectedIndex = CB_Ability.Items.Count - 1;
else
LoadAbility4(pk5);
LoadPartyStats(pk5);
UpdateStats();
}
private PKM PreparePK5()
{
if (!(pkm is PK5 pk5))
return null;
SaveMisc1(pk5);
SaveMisc2(pk5);
SaveMisc3(pk5);
SaveMisc4(pk5);
pk5.EncounterType = WinFormsUtil.GetIndex(CB_EncounterType);
pk5.HiddenAbility = CB_Ability.SelectedIndex > 1; // not 0 or 1
pk5.NPokémon = CHK_NSparkle.Checked;
SavePartyStats(pk5);
pk5.FixMoves();
pk5.RefreshChecksum();
return pk5;
}
}
}