Exemple #1
0
        public SAV_Pokedex5(SaveFile sav)
        {
            InitializeComponent();
            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
            SAV     = (SAV5)(Origin = sav).Clone();
            FormLen = SAV.B2W2 ? 0xB : 0x9;
            CP      = new[] { CHK_P1, CHK_P2, CHK_P3, CHK_P4, CHK_P5, CHK_P6, CHK_P7, CHK_P8, CHK_P9, };
            CL      = new[] { CHK_L1, CHK_L2, CHK_L3, CHK_L4, CHK_L5, CHK_L6, CHK_L7, };

            editing = true;
            // Clear Listbox and ComboBox
            LB_Species.Items.Clear();
            CB_Species.Items.Clear();

            // Fill List
            CB_Species.DisplayMember = "Text";
            CB_Species.ValueMember   = "Value";
            CB_Species.DataSource    = new BindingSource(GameInfo.SpeciesDataSource.Skip(1).Where(id => id.Value <= SAV.MaxSpeciesID).ToList(), null);

            for (int i = 1; i < SAV.MaxSpeciesID + 1; i++)
            {
                LB_Species.Items.Add($"{i:000} - {GameInfo.Strings.specieslist[i]}");
            }

            GetData();
            editing = false;
            LB_Species.SelectedIndex = 0;
            CB_Species.KeyDown      += WinFormsUtil.RemoveDropCB;
        }
    public SAV_Pokedex5(SaveFile sav)
    {
        InitializeComponent();
        WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
        SAV = (SAV5)(Origin = sav).Clone();
        CP  = new[] { CHK_P1, CHK_P2, CHK_P3, CHK_P4, CHK_P5, CHK_P6, CHK_P7, CHK_P8, CHK_P9 };
        CL  = new[] { CHK_L1, CHK_L2, CHK_L3, CHK_L4, CHK_L5, CHK_L6, CHK_L7 };

        editing = true;
        // Clear Listbox and ComboBox
        LB_Species.Items.Clear();
        CB_Species.Items.Clear();

        // Fill List
        CB_Species.InitializeBinding();
        CB_Species.DataSource = new BindingSource(GameInfo.FilteredSources.Species.Skip(1).ToList(), null);

        for (int i = 1; i < SAV.MaxSpeciesID + 1; i++)
        {
            LB_Species.Items.Add($"{i:000} - {GameInfo.Strings.Species[i]}");
        }

        editing = false;
        LB_Species.SelectedIndex = 0;
        CB_Species.KeyDown      += WinFormsUtil.RemoveDropCB;
    }
Exemple #3
0
        public SAV_CGearSkin(SaveFile sav)
        {
            SAV = (SAV5)(Origin = sav).Clone();
            InitializeComponent();

            byte[] data = SAV.CGearSkinData;
            bg = new CGearBackground(data);

            PB_Background.Image = CGearExtensions.GetBitmap(bg);
        }
Exemple #4
0
        public SAV_CGearSkin(SaveFile sav)
        {
            InitializeComponent();
            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
            SAV = (SAV5)(Origin = sav).Clone();

            byte[] data = SAV.CGearSkinData;
            bg = new CGearBackground(data);

            PB_Background.Image = CGearImage.GetBitmap(bg);
        }
Exemple #5
0
        public SAV_Misc5(SaveFile sav)
        {
            InitializeComponent();
            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
            SAV = (SAV5)(Origin = sav).Clone();

            sw = SAV.BattleSubway;
            ReadMain();
            LoadForest();
            ReadSubway();
            ReadEntralink();
        }
Exemple #6
0
 public SAV_Misc5(SaveFile sav)
 {
     SAV = (SAV5)(Origin = sav).Clone();
     InitializeComponent();
     ReadMain();
     if (SAV.B2W2)
     {
         ReadEntralink();
     }
     else
     {
         TC_Misc.Controls.Remove(TAB_Entralink);
     }
 }
Exemple #7
0
 public SAV_Misc5(SaveFile sav)
 {
     InitializeComponent();
     WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
     SAV = (SAV5)(Origin = sav).Clone();
     ReadMain();
     if (SAV.B2W2)
     {
         ReadEntralink();
     }
     else
     {
         TC_Misc.Controls.Remove(TAB_Entralink);
     }
 }
Exemple #8
0
        public SAV_CGearSkin(SaveFile sav)
        {
            SAV = (SAV5)(Origin = sav).Clone();
            InitializeComponent();

            SAV = (Origin = sav).Clone() as SAV5;

            bool cgearPresent = SAV.Data[SAV.CGearInfoOffset + 0x26] == 1;

            bg = new CGearBackground(cgearPresent ?
                                     CGearBackground.PSKtoCGB(SAV.Data.Skip(SAV.CGearDataOffset).Take(CGearBackground.SIZE_CGB).ToArray(), SAV.B2W2)
                : new byte[CGearBackground.SIZE_CGB]);

            PB_Background.Image = bg.GetImage();
            WinFormsUtil.Alert("Editor is incomplete.", "No guarantee of functionality.");
        }
Exemple #9
0
        public SAV_MailBox(SaveFile sav)
        {
            InitializeComponent();
            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
            SAV     = (Origin = sav).Clone();
            Gen     = SAV.Generation;
            p       = SAV.PartyData;
            editing = true;

            Messages = new[]
            {
                new[] { NUD_Message00, NUD_Message01, NUD_Message02, NUD_Message03 },
                new[] { NUD_Message10, NUD_Message11, NUD_Message12, NUD_Message13 },
                new[] { NUD_Message20, NUD_Message21, NUD_Message22, NUD_Message23 }
            };
            PKMLabels    = new[] { L_PKM1, L_PKM2, L_PKM3, L_PKM4, L_PKM5, L_PKM6 };
            PKMHeldItems = new[] { L_HeldItem1, L_HeldItem2, L_HeldItem3, L_HeldItem4, L_HeldItem5, L_HeldItem6 };
            PKMNUDs      = new[] { NUD_MailID1, NUD_MailID2, NUD_MailID3, NUD_MailID4, NUD_MailID5, NUD_MailID6 };
            AppearPKMs   = new[] { CB_AppearPKM1, CB_AppearPKM2, CB_AppearPKM3 };
            Miscs        = new[] { NUD_Misc1, NUD_Misc2, NUD_Misc3 };

            NUD_BoxSize.Visible       = L_BoxSize.Visible = Gen == 2;
            GB_MessageTB.Visible      = Gen == 2;
            GB_MessageNUD.Visible     = Gen != 2;
            Messages[0][3].Visible    = Messages[1][3].Visible = Messages[2][3].Visible = Gen == 4 || Gen == 5;
            NUD_AuthorSID.Visible     = Gen != 2;
            Label_OTGender.Visible    = CB_AuthorLang.Visible = CB_AuthorVersion.Visible = Gen == 4 || Gen == 5;
            L_AppearPKM.Visible       = AppearPKMs[0].Visible = Gen != 5;
            AppearPKMs[1].Visible     = AppearPKMs[2].Visible = Gen == 4;
            NUD_MessageEnding.Visible = Gen == 5;
            L_MiscValue.Visible       = NUD_Misc1.Visible = NUD_Misc2.Visible = NUD_Misc3.Visible = Gen == 5;

            for (int i = p.Count; i < 6; i++)
            {
                PKMNUDs[i].Visible = PKMLabels[i].Visible = PKMHeldItems[i].Visible = false;
            }
            if (Gen != 3)
            {
                for (int i = 0; i < PKMNUDs.Length; i++)
                {
                    PKMNUDs[i].Value   = i;
                    PKMNUDs[i].Enabled = false;
                }
            }

            switch (SAV)
            {
            case SAV2 sav2:
                m = new Mail2[6 + 10];
                for (int i = 0; i < m.Length; i++)
                {
                    m[i] = new Mail2(sav2, i);
                }

                NUD_BoxSize.Value = SAV.Data[0x834];
                MailItemID        = new[] { 0x9E, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD };
                PartyBoxCount     = 6;
                break;

            case SAV3 sav3:
                m = new Mail3[6 + 10];
                for (int i = 0; i < m.Length; i++)
                {
                    var ofs  = sav3.GetMailOffset(i);
                    var data = sav.GetData(ofs, Mail3.SIZE);
                    m[i] = new Mail3(data, ofs, sav3.Japanese);
                }

                MailItemID    = Enumerable.Range(0x79, 12).ToArray();
                PartyBoxCount = 6;
                break;

            case SAV4 sav4:
                m = new Mail4[p.Count + 20];
                for (int i = 0; i < p.Count; i++)
                {
                    m[i] = new Mail4(((PK4)p[i]).HeldMailData);
                }
                for (int i = p.Count, j = 0; i < m.Length; i++, j++)
                {
                    int ofs = sav4.GetMailOffset(j);
                    m[i] = new Mail4(sav4.GetMailData(ofs), ofs);
                }
                var l4 = (Mail4)m.Last();
                ResetVer      = l4.AuthorVersion;
                ResetLang     = l4.AuthorLanguage;
                MailItemID    = Enumerable.Range(0x89, 12).ToArray();
                PartyBoxCount = p.Count;
                break;

            case SAV5 sav5:
                m = new Mail5[p.Count + 20];
                for (int i = 0; i < p.Count; i++)
                {
                    m[i] = new Mail5(((PK5)p[i]).GetHeldMailData());
                }
                for (int i = p.Count, j = 0; i < m.Length; i++, j++)
                {
                    int ofs  = SAV5.GetMailOffset(j);
                    var data = sav5.GetMailData(ofs);
                    m[i] = new Mail5(data, ofs);
                }
                var l5 = (Mail5)m.Last();
                ResetVer      = l5.AuthorVersion;
                ResetLang     = l5.AuthorLanguage;
                MailItemID    = Enumerable.Range(0x89, 12).ToArray();
                PartyBoxCount = p.Count;
                break;
            }
            MakePartyList();
            MakePCList();

            if (Gen == 2 || Gen == 3)
            {
                CB_AppearPKM1.Items.Clear();
                CB_AppearPKM1.InitializeBinding();
                CB_AppearPKM1.DataSource = new BindingSource(GameInfo.FilteredSources.Species.ToList(), null);
            }
            else if (Gen == 4 || Gen == 5)
            {
                var species = GameInfo.FilteredSources.Species.ToList();
                foreach (ComboBox a in AppearPKMs)
                {
                    a.Items.Clear();
                    a.InitializeBinding();
                    a.DataSource = new BindingSource(species, null);
                }

                CB_AuthorVersion.Items.Clear();
                CB_AuthorVersion.InitializeBinding();
                CB_AuthorVersion.DataSource = new BindingSource(Gen == 4
                    ? new[] {
                    new ComboItem("Diamond", (int)GameVersion.D),
                    new ComboItem("Pearl", (int)GameVersion.P),
                    new ComboItem("Platinum", (int)GameVersion.Pt),
                    new ComboItem("HeartGold", (int)GameVersion.HG),
                    new ComboItem("SoulSilver", (int)GameVersion.SS),
                }
                    : new[] {
                    new ComboItem("Black", (int)GameVersion.B),
                    new ComboItem("White", (int)GameVersion.W),
                    new ComboItem("Black2", (int)GameVersion.B2),
                    new ComboItem("White2", (int)GameVersion.W2),
                }, null);

                CB_AuthorLang.Items.Clear();
                CB_AuthorLang.InitializeBinding();
                CB_AuthorLang.DataSource = new BindingSource(new[] {
                    // not sure
                    new ComboItem("JPN", 1),
                    new ComboItem("ENG", 2),
                    new ComboItem("FRE", 3),
                    new ComboItem("ITA", 4),
                    new ComboItem("GER", 5),
                    new ComboItem("ESP", 7),
                    new ComboItem("KOR", 8),
                }, null);
            }

            var ItemList = GameInfo.Strings.GetItemStrings(Gen, SAV.Version);

            CB_MailType.Items.Clear();
            CB_MailType.Items.Add(ItemList[0]);
            foreach (int item in MailItemID)
            {
                CB_MailType.Items.Add(ItemList[item]);
            }

            LoadPKM(true);
            entry   = -1;
            editing = false;
            if (LB_PartyHeld.Items.Count > 0)
            {
                LB_PartyHeld.SelectedIndex = 0;
            }
            else if (LB_PCBOX.Items.Count > 0)
            {
                LB_PCBOX.SelectedIndex = 0;
            }
        }
Exemple #10
0
        public SAV_SimpleTrainer()
        {
            Loading = true;
            InitializeComponent();
            WinFormsUtil.TranslateInterface(this, Main.curlanguage);

            cba = new[] { CHK_1, CHK_2, CHK_3, CHK_4, CHK_5, CHK_6, CHK_7, CHK_8 };
            TB_OTName.MaxLength = SAV.OTLength;
            B_MaxCash.Click    += (sender, e) => MT_Money.Text = SAV.MaxMoney.ToString();
            B_MaxCoins.Click   += (sender, e) => MT_Coins.Text = SAV.MaxCoins.ToString();
            MT_Money.Mask       = "00000000000".Substring(0, SAV.MaxMoney.ToString().Length);
            MT_Coins.Mask       = "00000000000".Substring(0, SAV.MaxCoins.ToString().Length);

            CB_Gender.Items.Clear();
            CB_Gender.Items.AddRange(Main.gendersymbols.Take(2).ToArray()); // m/f depending on unicode selection

            L_SID.Visible     = MT_SID.Visible = SAV.Generation > 2;
            L_Coins.Visible   = B_MaxCoins.Visible = MT_Coins.Visible = SAV.Generation < 3;
            CB_Gender.Visible = SAV.Generation > 1;

            L_PikaFriend.Visible = MT_PikaFriend.Visible = SAV.Generation == 1;

            TB_OTName.Text          = SAV.OT;
            CB_Gender.SelectedIndex = SAV.Gender;
            MT_TID.Text             = SAV.TID.ToString("00000");
            MT_SID.Text             = SAV.SID.ToString("00000");
            MT_Money.Text           = SAV.Money.ToString();
            MT_Hours.Text           = SAV.PlayedHours.ToString();
            MT_Minutes.Text         = SAV.PlayedMinutes.ToString();
            MT_Seconds.Text         = SAV.PlayedSeconds.ToString();


            int badgeval = 0;

            if (SAV is SAV1)
            {
                SAV1 sav1 = (SAV1)SAV;
                MT_Coins.Text = sav1.Coin.ToString();
                badgeval      = sav1.Badges;

                L_Started.Visible = L_Fame.Visible = false;
                CAL_AdventureStartDate.Visible = CAL_HoFDate.Visible = false;
                CAL_AdventureStartTime.Visible = CAL_HoFTime.Visible = false;
                GB_Map.Visible     = false;
                GB_Options.Visible = true;
                CB_BattleStyle.Items.AddRange(new[] { "Switch", "Set" });
                CB_SoundType.Items.AddRange(new[] { "Mono", "Stereo", "Earphone2", "Earphone3" });
                CB_TextSpeed.Items.AddRange(new[] { "0 (Instant)", "1 (Fast)", "2", "3 (Normal)", "4", "5 (Slow)", "6", "7" });

                CHK_BattleEffects.Checked    = sav1.BattleEffects;
                CB_BattleStyle.SelectedIndex = sav1.BattleStyleSwitch ? 0 : 1;
                CB_SoundType.SelectedIndex   = sav1.Sound;
                CB_TextSpeed.SelectedIndex   = sav1.TextSpeed;

                MT_PikaFriend.Text = sav1.PikaFriendship.ToString();
            }

            if (SAV is SAV2)
            {
                SAV2 sav2 = (SAV2)SAV;
                MT_Coins.Text = sav2.Coin.ToString();

                L_Started.Visible = L_Fame.Visible = false;
                CAL_AdventureStartDate.Visible = CAL_HoFDate.Visible = false;
                CAL_AdventureStartTime.Visible = CAL_HoFTime.Visible = false;
                GB_Map.Visible     = false;
                GB_Options.Visible = true;
                CB_BattleStyle.Items.AddRange(new[] { "Switch", "Set" });
                CB_SoundType.Items.AddRange(new[] { "Mono", "Stereo" });
                CB_TextSpeed.Items.AddRange(new[] { "0 (Instant)", "1 (Fast)", "2", "3 (Normal)", "4", "5 (Slow)", "6", "7" });

                CHK_BattleEffects.Checked    = sav2.BattleEffects;
                CB_BattleStyle.SelectedIndex = sav2.BattleStyleSwitch ? 0 : 1;
                CB_SoundType.SelectedIndex   = sav2.Sound > 0 ? 1 : 0;
                CB_TextSpeed.SelectedIndex   = sav2.TextSpeed;
                badgeval = sav2.Badges;
                cba      = new[] { CHK_1, CHK_2, CHK_3, CHK_4, CHK_6, CHK_5, CHK_7, CHK_8, CHK_H1, CHK_H2, CHK_H3, CHK_H4, CHK_H5, CHK_H6, CHK_H7, CHK_H8 };
            }

            if (SAV is SAV3)
            {
                GB_Map.Visible    = false;
                GB_Badges.Visible = false; // todo

                L_Started.Visible = L_Fame.Visible = false;
                CAL_AdventureStartDate.Visible = CAL_HoFDate.Visible = false;
                CAL_AdventureStartTime.Visible = CAL_HoFTime.Visible = false;
                return;
            }
            if (SAV is SAV3Colosseum || SAV is SAV3XD)
            {
                GB_Map.Visible    = false;
                GB_Badges.Visible = false;
                L_Started.Visible = L_Fame.Visible = false;
                CAL_AdventureStartDate.Visible = CAL_HoFDate.Visible = false;
                CAL_AdventureStartTime.Visible = CAL_HoFTime.Visible = false;
                return;
            }

            if (SAV is SAV4)
            {
                SAV4 s = (SAV4)SAV;
                NUD_M.Value = s.M;
                NUD_X.Value = s.X;
                NUD_Z.Value = s.Z;
                NUD_Y.Value = s.Y;

                badgeval = s.Badges;
                if (s.Version == GameVersion.HGSS)
                {
                    badgeval |= s.Badges16 << 8;
                    cba       = cba.Concat(new[] { CHK_H1, CHK_H2, CHK_H3, CHK_H4, CHK_H5, CHK_H6, CHK_H7, CHK_H8 }).ToArray();
                }
            }
            else if (SAV is SAV5)
            {
                SAV5 s = (SAV5)SAV;
                NUD_M.Value = s.M;
                NUD_X.Value = s.X;
                NUD_Z.Value = s.Z;
                NUD_Y.Value = s.Y;

                badgeval = s.Badges;
            }

            for (int i = 0; i < cba.Length; i++)
            {
                cba[i].Visible = true;
                cba[i].Checked = (badgeval & 1 << i) != 0;
            }

            CAL_HoFDate.Value            = new DateTime(2000, 1, 1).AddSeconds(SAV.SecondsToFame);
            CAL_HoFTime.Value            = new DateTime(2000, 1, 1).AddSeconds(SAV.SecondsToFame % 86400);
            CAL_AdventureStartDate.Value = new DateTime(2000, 1, 1).AddSeconds(SAV.SecondsToStart);
            CAL_AdventureStartTime.Value = new DateTime(2000, 1, 1).AddSeconds(SAV.SecondsToStart % 86400);

            Loading = false;
        }
Exemple #11
0
        private void B_Save_Click(object sender, EventArgs e)
        {
            SAV.OT     = TB_OTName.Text;
            SAV.Gender = (byte)CB_Gender.SelectedIndex;

            SAV.TID   = (ushort)Util.ToUInt32(MT_TID.Text);
            SAV.SID   = (ushort)Util.ToUInt32(MT_SID.Text);
            SAV.Money = Util.ToUInt32(MT_Money.Text);

            SAV.PlayedHours   = ushort.Parse(MT_Hours.Text);
            SAV.PlayedMinutes = ushort.Parse(MT_Minutes.Text) % 60;
            SAV.PlayedSeconds = ushort.Parse(MT_Seconds.Text) % 60;

            // Copy Badges
            int badgeval = 0;

            for (int i = 0; i < cba.Length; i++)
            {
                badgeval |= (cba[i].Checked ? 1 : 0) << i;
            }

            if (SAV is SAV1)
            {
                SAV1 sav1 = (SAV1)SAV;
                sav1.Coin   = (ushort)Math.Min(Util.ToUInt32(MT_Coins.Text), SAV.MaxCoins);
                sav1.Badges = badgeval & 0xFF;

                var pf = Util.ToUInt32(MT_PikaFriend.Text);
                if (pf > 255)
                {
                    pf = 255;
                }
                sav1.PikaFriendship = (byte)pf;

                sav1.BattleEffects     = CHK_BattleEffects.Checked;
                sav1.BattleStyleSwitch = CB_BattleStyle.SelectedIndex == 0;
                sav1.Sound             = CB_SoundType.SelectedIndex;
                sav1.TextSpeed         = CB_TextSpeed.SelectedIndex;
            }

            if (SAV is SAV2)
            {
                SAV2 sav2 = (SAV2)SAV;
                sav2.Coin   = (ushort)Math.Min(Util.ToUInt32(MT_Coins.Text), SAV.MaxCoins);
                sav2.Badges = badgeval & 0xFFFF;

                sav2.BattleEffects     = CHK_BattleEffects.Checked;
                sav2.BattleStyleSwitch = CB_BattleStyle.SelectedIndex == 0;
                sav2.Sound             = CB_SoundType.SelectedIndex > 0 ? 2 : 0;
                sav2.TextSpeed         = CB_TextSpeed.SelectedIndex;
            }

            if (SAV is SAV4)
            {
                SAV4 s = (SAV4)SAV;
                if (MapUpdated)
                {
                    s.M = (int)NUD_M.Value;
                    s.X = (int)NUD_X.Value;
                    s.Z = (int)NUD_Z.Value;
                    s.Y = (int)NUD_Y.Value;
                }
                s.Badges = badgeval & 0xFF;
                if (s.Version == GameVersion.HGSS)
                {
                    s.Badges16 = badgeval >> 8;
                }
            }
            else if (SAV is SAV5)
            {
                SAV5 s = (SAV5)SAV;
                if (MapUpdated)
                {
                    s.M = (int)NUD_M.Value;
                    s.X = (int)NUD_X.Value;
                    s.Z = (int)NUD_Z.Value;
                    s.Y = (int)NUD_Y.Value;
                }
                s.Badges = badgeval & 0xFF;
            }

            SAV.SecondsToStart = getSeconds(CAL_AdventureStartDate, CAL_AdventureStartTime);
            SAV.SecondsToFame  = getSeconds(CAL_HoFDate, CAL_HoFTime);

            SAV.Data.CopyTo(Main.SAV.Data, 0);
            Main.SAV.Edited = true;
            Close();
        }
Exemple #12
0
        public SAV_MailBox(SaveFile sav)
        {
            InitializeComponent();
            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
            SAV = (Origin = sav).Clone();
            Gen = SAV.Generation;
            p = SAV.PartyData;
            editing = true;

            Messages = new[]
            {
                new[] { NUD_Message00, NUD_Message01, NUD_Message02, NUD_Message03 },
                new[] { NUD_Message10, NUD_Message11, NUD_Message12, NUD_Message13 },
                new[] { NUD_Message20, NUD_Message21, NUD_Message22, NUD_Message23 }
            };
            PKMLabels = new[] { L_PKM1, L_PKM2, L_PKM3, L_PKM4, L_PKM5, L_PKM6 };
            PKMHeldItems = new[] { L_HeldItem1, L_HeldItem2, L_HeldItem3, L_HeldItem4, L_HeldItem5, L_HeldItem6 };
            PKMNUDs = new[] { NUD_MailID1, NUD_MailID2, NUD_MailID3, NUD_MailID4, NUD_MailID5, NUD_MailID6 };
            AppearPKMs = new[] { CB_AppearPKM1, CB_AppearPKM2, CB_AppearPKM3 };
            Miscs = new[] { NUD_Misc1, NUD_Misc2, NUD_Misc3 };

            NUD_BoxSize.Visible = L_BoxSize.Visible = Gen == 2;
            GB_MessageTB.Visible = Gen == 2;
            GB_MessageNUD.Visible = Gen != 2;
            Messages[0][3].Visible = Messages[1][3].Visible = Messages[2][3].Visible = Gen is 4 or 5;
            NUD_AuthorSID.Visible = Gen != 2;
            Label_OTGender.Visible = CB_AuthorLang.Visible = CB_AuthorVersion.Visible = Gen is 4 or 5;
            L_AppearPKM.Visible = AppearPKMs[0].Visible = Gen != 5;
            AppearPKMs[1].Visible = AppearPKMs[2].Visible = Gen == 4;
            NUD_MessageEnding.Visible = Gen == 5;
            L_MiscValue.Visible = NUD_Misc1.Visible = NUD_Misc2.Visible = NUD_Misc3.Visible = Gen == 5;

            for (int i = p.Count; i < 6; i++)
                PKMNUDs[i].Visible = PKMLabels[i].Visible = PKMHeldItems[i].Visible = false;
            if (Gen != 3)
            {
                for (int i = 0; i < PKMNUDs.Length; i++)
                {
                    PKMNUDs[i].Value = i;
                    PKMNUDs[i].Enabled = false;
                }
            }

            switch (SAV)
            {
                case SAV2 sav2:
                    m = new Mail2[6 + 10];
                    for (int i = 0; i < m.Length; i++)
                        m[i] = new Mail2(sav2, i);

                    NUD_BoxSize.Value = SAV.Data[0x834];
                    MailItemID = new[] { 0x9E, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD };
                    PartyBoxCount = 6;
                    break;
                case SAV3 sav3:
                    m = new Mail3[6 + 10];
                    for (int i = 0; i < m.Length; i++)
                    {
                        var ofs = sav3.GetMailOffset(i);
                        var data = sav.GetData(ofs, Mail3.SIZE);
                        m[i] = new Mail3(data, ofs, sav3.Japanese);
                    }

                    MailItemID = Enumerable.Range(0x79, 12).ToArray();
                    PartyBoxCount = 6;
                    break;
                case SAV4 sav4:
                    m = new Mail4[p.Count + 20];
                    for (int i = 0; i < p.Count; i++)
                        m[i] = new Mail4(((PK4)p[i]).GetHeldMailData());
                    for (int i = p.Count, j = 0; i < m.Length; i++, j++)
                    {
                        int ofs = sav4.GetMailOffset(j);
                        m[i] = new Mail4(sav4.GetMailData(ofs), ofs);
                    }
                    var l4 = (Mail4)m.Last();
                    ResetVer = l4.AuthorVersion;
                    ResetLang = l4.AuthorLanguage;
                    MailItemID = Enumerable.Range(0x89, 12).ToArray();
                    PartyBoxCount = p.Count;
                    break;
                case SAV5 sav5:
                    m = new Mail5[p.Count + 20];
                    for (int i = 0; i < p.Count; i++)
                        m[i] = new Mail5(((PK5)p[i]).GetHeldMailData());
                    for (int i = p.Count, j = 0; i < m.Length; i++, j++)
                    {
                        int ofs = SAV5.GetMailOffset(j);
                        var data = sav5.GetMailData(ofs);
                        m[i] = new Mail5(data, ofs);
                    }
                    var l5 = (Mail5)m.Last();
                    ResetVer = l5.AuthorVersion;
                    ResetLang = l5.AuthorLanguage;
                    MailItemID = Enumerable.Range(0x89, 12).ToArray();
                    PartyBoxCount = p.Count;
                    break;
            }
            MakePartyList();
            MakePCList();

            if (Gen is 2 or 3)
            {
                CB_AppearPKM1.Items.Clear();
                CB_AppearPKM1.InitializeBinding();
                CB_AppearPKM1.DataSource = new BindingSource(GameInfo.FilteredSources.Species.ToList(), null);
            }
Exemple #13
0
 public BoxLayout5(SAV5 sav, int offset) : base(sav) => Offset = offset;
Exemple #14
0
 protected Encount5(SAV5 SAV, int offset) : base(SAV) => Offset = offset;