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

54 lines
1.4 KiB
C#

using PKHeX.Core;
namespace PKHeX.WinForms.Controls
{
public partial class PKMEditor
{
private void PopulateFieldsPK6()
{
if (!(pkm is PK6 pk6))
return;
LoadMisc1(pk6);
LoadMisc2(pk6);
LoadMisc3(pk6);
LoadMisc4(pk6);
LoadMisc6(pk6);
CB_EncounterType.SelectedValue = pk6.Gen4 ? pk6.EncounterType : 0;
LoadPartyStats(pk6);
UpdateStats();
}
private PKM PreparePK6()
{
if (!(pkm is PK6 pk6))
return null;
CheckTransferPIDValid();
SaveMisc1(pk6);
SaveMisc2(pk6);
SaveMisc3(pk6);
SaveMisc4(pk6);
SaveMisc6(pk6);
pk6.EncounterType = WinFormsUtil.GetIndex(CB_EncounterType);
// Toss in Party Stats
SavePartyStats(pk6);
// Unneeded Party Stats (Status, Flags, Unused)
pk6.Data[0xE8] = pk6.Data[0xE9] = pk6.Data[0xEA] = pk6.Data[0xEB] =
pk6.Data[0xED] = pk6.Data[0xEE] = pk6.Data[0xEF] =
pk6.Data[0xFE] = pk6.Data[0xFF] = pk6.Data[0x100] =
pk6.Data[0x101] = pk6.Data[0x102] = pk6.Data[0x103] = 0;
pk6.FixMoves();
pk6.FixRelearn();
if (ModifyPKM)
pk6.FixMemories();
pk6.RefreshChecksum();
return pk6;
}
}
}