Exemple #1
0
        public SAV_Underground(SaveFile sav)
        {
            InitializeComponent();
            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
            SAV = (SAV4)(Origin = sav).Clone();

            GetUGScores();
        }
Exemple #2
0
        public void Initialize(SAV4 sav)
        {
            Case = new PoffinCase4(sav);

            LB_Poffins.Items.Clear();
            for (int i = 0; i < Case.Poffins.Length; i++)
            {
                LB_Poffins.Items.Add(GetPoffinText(i));
            }

            LB_Poffins.SelectedIndex = 0;
        }
Exemple #3
0
        public SAV_Pokedex4(SaveFile sav)
        {
            InitializeComponent();
            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
            CL  = new[] { CHK_L1, CHK_L2, CHK_L3, CHK_L5, CHK_L4, CHK_L6 }; // JPN,ENG,FRA,GER,ITA,SPA
            SAV = (SAV4)(Origin = sav).Clone();

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

            // Fill List
            CB_Species.InitializeBinding();
            var filtered = GameInfo.FilteredSources;

            CB_Species.DataSource = new BindingSource(filtered.Species.Skip(1).ToList(), null);

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

            editing = false;
            LB_Species.SelectedIndex = 0;

            string[] dexMode = { "not given", "simple mode", "detect forms", "national dex", "other languages" };
            if (SAV is SAV4HGSS)
            {
                dexMode = dexMode.Where((_, i) => i != 2).ToArray();
            }
            foreach (string mode in dexMode)
            {
                CB_DexUpgraded.Items.Add(mode);
            }
            if (SAV.DexUpgraded < CB_DexUpgraded.Items.Count)
            {
                CB_DexUpgraded.SelectedIndex = SAV.DexUpgraded;
            }

            CB_Species.KeyDown += WinFormsUtil.RemoveDropCB;
        }
Exemple #4
0
        public SAV_Pokedex4(SaveFile sav)
        {
            SAV = (SAV4)(Origin = sav).Clone();
            InitializeComponent();
            CL = new[] { CHK_L1, CHK_L2, CHK_L3, CHK_L5, CHK_L4, CHK_L6, }; // JPN,ENG,FRA,GER,ITA,SPA
            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);

            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.ToString("000") + " - " + GameInfo.Strings.specieslist[i]);
            }

            editing = false;
            LB_Species.SelectedIndex = 0;

            string[] dexMode = { "not given", "simple mode", "detect forms", "national dex", "other languages" };
            if (SAV.HGSS)
            {
                dexMode = dexMode.Where((t, i) => i != 2).ToArray();
            }
            foreach (string mode in dexMode)
            {
                CB_DexUpgraded.Items.Add(mode);
            }
            if (SAV.DexUpgraded < CB_DexUpgraded.Items.Count)
            {
                CB_DexUpgraded.SelectedIndex = SAV.DexUpgraded;
            }

            CB_Species.KeyDown += WinFormsUtil.RemoveDropCB;
        }
Exemple #5
0
        public SAV_HoneyTree(SaveFile sav)
        {
            InitializeComponent();
            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
            SAV = (SAV4)(Origin = sav).Clone();

            if (SAV.DP)
            {
                Table = HoneyTree.TableDP;
            }
            else if (SAV.Pt)
            {
                Table = HoneyTree.TablePt;
            }

            // Get Munchlax tree for this savegame in screen
            MunchlaxTrees = SAV.MunchlaxTrees;

            const string sep = "- ";

            L_Tree0.Text = string.Join(Environment.NewLine, MunchlaxTrees.Select(z => sep + CB_TreeList.Items[z]));

            CB_TreeList.SelectedIndex = 0;
        }
Exemple #6
0
        public SAV_Misc4(SAV4 sav)
        {
            InitializeComponent();
            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
            int ofsFlag;

            SAV = (SAV4)(Origin = sav).Clone();

            switch (SAV.Version)
            {
            case GameVersion.D or GameVersion.P or GameVersion.DP:
                ofsFlag              = 0xFDC;
                ofsBP                = 0x65F8;
                ofsUGFlagCount       = 0x3A60;
                L_CurrentMap.Visible = CB_UpgradeMap.Visible = false;
                GB_Prints.Visible    = GB_Prints.Enabled = GB_Hall.Visible = GB_Hall.Enabled = GB_Castle.Visible = GB_Castle.Enabled = false;
                BFF = new[] { new[] { 0, 1, 0x5FCA, 0x04, 0x6601 } };
                break;

            case GameVersion.Pt:
                ofsFlag              = 0xFEC;
                ofsBP                = 0x7234;
                ofsUGFlagCount       = 0x3CE8;
                L_CurrentMap.Visible = CB_UpgradeMap.Visible = false;
                ofsPrints            = 0xE4A;
                BFF = new[] {
                    new[] { 0, 1, 0x68E0, 0x04, 0x723D },
                    new[] { 1, 0, 0x68F4, 0x10, 0x7EF8 },
                    new[] { 0, 0, 0x6924, 0x18, 0x7EFC },
                    new[] { 2, 0, 0x696C, 0x10, 0x7F00 },
                    new[] { 0, 0, 0x699C, 0x04, 0x7F04 },
                };
                ofsHallStat = 0x2820;
                break;

            case GameVersion.HG or GameVersion.SS or GameVersion.HGSS:
                ofsFlag            = 0x10C4;
                ofsBP              = 0x5BB8;
                L_UGFlags.Visible  = NUD_UGFlags.Visible = false;
                GB_Poketch.Visible = false;
                ofsMap             = 0xBAE7;
                ofsPrints          = 0xE7E;
                BFF = new[] {
                    // { BFV, BFT, addr, 1BFTlen, checkBit
                    new[] { 0, 1, 0x5264, 0x04, 0x5BC1 },
                    new[] { 1, 0, 0x5278, 0x10, 0x687C },
                    new[] { 0, 0, 0x52A8, 0x18, 0x6880 },
                    new[] { 2, 0, 0x52F0, 0x10, 0x6884 },
                    new[] { 0, 0, 0x5320, 0x04, 0x6888 },
                };
                ofsHallStat = 0x230C;
                break;

            default: return;
            }
            ofsFly = ofsFlag + 0x136;
            ReadMain();
            ReadBattleFrontier();
            if (SAV is SAV4Sinnoh s)
            {
                TC_Misc.Controls.Remove(TAB_Walker);
                poffinCase4Editor1.Initialize(s);
                TC_Misc.Controls.Remove(Tab_PokeGear);
            }
            else
            {
                pokeGear4Editor1.Initialize((SAV4HGSS)SAV);
                TC_Misc.Controls.Remove(Tab_Poffins);
            }
        }
Exemple #7
0
 public Zukan4(SAV4 sav, int offset) : base(sav, offset)
 {
     Data   = sav.General;
     Offset = offset;
 }
Exemple #8
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 #9
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 #10
0
        public SAV_Misc4(SaveFile sav)
        {
            int ofsFlag;

            SAV = (SAV4)(Origin = sav).Clone();
            InitializeComponent();

            int GBO = SAV.GetGBO;

            switch (SAV.Version)
            {
            case GameVersion.D:
            case GameVersion.P:
            case GameVersion.DP:
                ofsFlag              = GBO + 0xFDC;
                ofsBP                = GBO + 0x65F8;
                ofsUGFlagCount       = GBO + 0x3A60;
                ofsPoketch           = GBO + 0x114E;
                L_CurrentMap.Visible = CB_UpgradeMap.Visible = false;
                GB_Prints.Visible    = GB_Prints.Enabled = GB_Hall.Visible = GB_Hall.Enabled = GB_Castle.Visible = GB_Castle.Enabled = false;
                BFF = new[] { new[] { 0, 1, 0x5FCA, 0x04, 0x6601 }, };
                break;

            case GameVersion.Pt:
                ofsFlag              = GBO + 0xFEC;
                ofsBP                = GBO + 0x7234;
                ofsUGFlagCount       = GBO + 0x3CE8;
                ofsPoketch           = GBO + 0x1162;
                L_CurrentMap.Visible = CB_UpgradeMap.Visible = false;
                ofsPrints            = GBO + 0xE4A;
                BFF = new[] {
                    new[] { 0, 1, 0x68E0, 0x04, 0x723D },
                    new[] { 1, 0, 0x68F4, 0x10, 0x7EF8 },
                    new[] { 0, 0, 0x6924, 0x18, 0x7EFC },
                    new[] { 2, 0, 0x696C, 0x10, 0x7F00 },
                    new[] { 0, 0, 0x699C, 0x04, 0x7F04 },
                };
                ofsHallStat = GBO + 0x2820;
                break;

            case GameVersion.HG:
            case GameVersion.SS:
            case GameVersion.HGSS:
                ofsFlag            = GBO + 0x10C4;
                ofsBP              = GBO + 0x5BB8;
                L_UGFlags.Visible  = NUD_UGFlags.Visible = false;
                GB_Poketch.Visible = false;
                ofsMap             = GBO + 0xBAE7;
                ofsPrints          = GBO + 0xE7E;
                BFF = new[] {
                    // { BFV, BFT, addr, 1BFTlen, checkBit
                    new[] { 0, 1, 0x5264, 0x04, 0x5BC1 },
                    new[] { 1, 0, 0x5278, 0x10, 0x687C },
                    new[] { 0, 0, 0x52A8, 0x18, 0x6880 },
                    new[] { 2, 0, 0x52F0, 0x10, 0x6884 },
                    new[] { 0, 0, 0x5320, 0x04, 0x6888 },
                };
                ofsHallStat = GBO + 0x230C;
                break;

            default: return;
            }
            ofsFly = ofsFlag + 0x136;
            ReadMain();
            ReadBattleFrontier();
            if (!SAV.HGSS)
            {
                TC_Misc.Controls.Remove(TAB_Walker);
            }
        }