PKHeX/PKHeX.WinForms/Controls/PKM Editor/EditPK3.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

105 lines
2.5 KiB
C#

using PKHeX.Core;
namespace PKHeX.WinForms.Controls
{
public partial class PKMEditor
{
private void PopulateFieldsPK3()
{
if (!(pkm is PK3 pk3))
return;
LoadMisc1(pk3);
LoadMisc2(pk3);
LoadMisc3(pk3);
CB_Ability.SelectedIndex = pk3.AbilityBit && CB_Ability.Items.Count > 1 ? 1 : 0;
LoadPartyStats(pk3);
UpdateStats();
}
private void PopulateFieldsCK3()
{
if (!(pkm is CK3 ck3))
return;
LoadMisc1(ck3);
LoadMisc2(ck3);
LoadMisc3(ck3);
int abil = ck3.AbilityNumber >> 1;
CB_Ability.SelectedIndex = abil > CB_Ability.Items.Count ? 0 : abil;
LoadShadow3(ck3);
LoadPartyStats(ck3);
UpdateStats();
}
private void PopulateFieldsXK3()
{
if (!(pkm is XK3 xk3))
return;
LoadMisc1(xk3);
LoadMisc2(xk3);
LoadMisc3(xk3);
int abil = xk3.AbilityNumber >> 1;
CB_Ability.SelectedIndex = abil > CB_Ability.Items.Count ? 0 : abil;
LoadShadow3(xk3);
LoadPartyStats(xk3);
UpdateStats();
}
private PKM PreparePK3()
{
if (!(pkm is PK3 pk3))
return null;
SaveMisc1(pk3);
SaveMisc2(pk3);
SaveMisc3(pk3);
pk3.AbilityNumber = 1 << CB_Ability.SelectedIndex;
SavePartyStats(pk3);
pk3.FixMoves();
pk3.RefreshChecksum();
return pk3;
}
private PKM PrepareCK3()
{
if (!(pkm is CK3 ck3))
return null;
SaveMisc1(ck3);
SaveMisc2(ck3);
SaveMisc3(ck3);
ck3.AbilityNumber = 1 << CB_Ability.SelectedIndex; // to match gen6+
SaveShadow3(ck3);
SavePartyStats(ck3);
ck3.FixMoves();
ck3.RefreshChecksum();
return ck3;
}
private PKM PrepareXK3()
{
if (!(pkm is XK3 xk3))
return null;
SaveMisc1(xk3);
SaveMisc2(xk3);
SaveMisc3(xk3);
xk3.AbilityNumber = 1 << CB_Ability.SelectedIndex; // to match gen6+
SaveShadow3(xk3);
SavePartyStats(xk3);
xk3.FixMoves();
xk3.RefreshChecksum();
return xk3;
}
}
}