示例#1
0
        public SAV_Capture7GG(SaveFile sav)
        {
            InitializeComponent();
            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
            SAV = (SAV7b)(Origin = sav).Clone();
            Dex = SAV.Blocks.Zukan;
            Captured = SAV.Blocks.Captured;

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

            // Fill List
            var list = GetLegalSpecies().ToArray();
            var species = GameInfo.SpeciesDataSource.Where(z => list.Contains(z.Value)).ToList();
            CB_Species.InitializeBinding();
            CB_Species.DataSource = new BindingSource(species, null);
            foreach (var (text, value) in species.OrderBy(z => z.Value))
                LB_Species.Items.Add($"{value:000}: {text}");

            GetTotals();
            CB_Species.KeyDown += WinFormsUtil.RemoveDropCB;
            LB_Species.SelectedIndex = Index = 0;
            GetEntry();
            Loading = false;
        }
示例#2
0
        public SAV_PokedexGG(SaveFile sav)
        {
            InitializeComponent();
            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
            SAV = (SAV7b)(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, CHK_L8, CHK_L9, };

            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.SpeciesDataSource.Skip(1).ToList(), null);

            Dex = SAV.Blocks.Zukan;

            var Species = GameInfo.Strings.Species;
            var names   = Dex.GetEntryNames(Species);

            foreach (var n in names)
            {
                LB_Species.Items.Add(n);
            }

            RecordUsed   = new[] { CHK_RMinHeight, CHK_RMaxHeight, CHK_RMinWeight, CHK_RMaxWeight };
            RecordHeight = new[] { NUD_RHeightMin, NUD_RHeightMax, NUD_RWeightMinHeight, NUD_RWeightMaxHeight };
            RecordWeight = new[] { NUD_RHeightMinWeight, NUD_RHeightMaxWeight, NUD_RWeightMin, NUD_RWeightMax };

            editing = false;
            LB_Species.SelectedIndex = 0;
            CB_Species.KeyDown      += WinFormsUtil.RemoveDropCB;
        }
        public async Task <SAV7b> LGGetFakeTrainerSAV(CancellationToken token)
        {
            SAV7b lgpe = new SAV7b();

            byte[] dest     = lgpe.Blocks.Status.Data;
            int    startofs = lgpe.Blocks.Status.Offset;

            byte[]? data = await Connection.ReadBytesAsync(TrainerData, TrainerSize, token).ConfigureAwait(false);

            data.CopyTo(dest, startofs);
            return(lgpe);
        }
示例#4
0
 public static LiveHeXVersion[] GetValidVersions(SaveFile sf)
 {
     return(sf switch
     {
         SAV8SWSH _ => new[] { LiveHeXVersion.SWSH_Orion, LiveHeXVersion.SWSH_Rigel1, LiveHeXVersion.SWSH_Rigel2 },
         SAV7b _ => new[] { LiveHeXVersion.LGPE_v102 },
         SAV7USUM _ => new[] { LiveHeXVersion.UM_v12, LiveHeXVersion.US_v12 },
         SAV7SM _ => new[] { LiveHeXVersion.SM_v12 },
         SAV6AO _ => new[] { LiveHeXVersion.ORAS },
         SAV6XY _ => new[] { LiveHeXVersion.XY },
         _ => new[] { LiveHeXVersion.SWSH_Rigel2 }
     });
        public async Task <SAV7b> LGIdentifyTrainer(CancellationToken token)
        {
            Log("Grabbing trainer data of host console...");
            SAV7b sav = await LGGetFakeTrainerSAV(token).ConfigureAwait(false);

            GameLang         = (LanguageID)sav.Language;
            Version          = sav.Version;
            InGameName       = sav.OT;
            Connection.Label = $"{InGameName}-{sav.DisplayTID:000000}";
            Log($"{Connection.Name} identified as {Connection.Label}, using {GameLang}.");

            return(sav);
        }
示例#6
0
    public SAV_EventWork(SAV7b sav)
    {
        InitializeComponent();

        WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);

        SAV    = sav.Blocks.EventWork;
        Origin = sav;

        DragEnter += Main_DragEnter;
        DragDrop  += Main_DragDrop;

        CB_Stats.Items.Clear();
        for (int i = 0; i < SAV.CountWork; i++)
        {
            CB_Stats.Items.Add(i.ToString());
        }

        var work = GetStringList(sav.Version, "const");
        var flag = GetStringList(sav.Version, "flags");

        Editor = new SplitEventEditor <int>(SAV, work, flag);

        SuspendLayout();
        editing = true;
        LoadFlags(Editor.Flag);
        LoadWork(Editor.Work);
        editing = false;
        ResumeLayout();

        if (CB_Stats.Items.Count > 0)
        {
            CB_Stats.SelectedIndex = 0;
        }
        else
        {
            L_Stats.Visible = CB_Stats.Visible = NUD_Stat.Visible = false;
            TC_Features.TabPages.Remove(GB_Constants);
        }
        NUD_Flag.Maximum     = SAV.CountFlag - 1;
        NUD_Flag.Text        = "0";
        c_CustomFlag.Checked = SAV.GetFlag(0);

        Text = $"{Text} ({sav.Version})";
    }
示例#7
0
        public SAV_Trainer7GG(SaveFile sav)
        {
            InitializeComponent();
            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
            SAV  = (SAV7b)(Origin = sav).Clone();
            Park = new GoParkStorage(SAV);
            UpdateGoSummary(0);

            if (Main.Unicode)
            {
                TB_OTName.Font = TB_RivalName.Font = FontUtil.GetPKXFont();
            }

            B_MaxCash.Click += (sender, e) => MT_Money.Text = "9,999,999";

            GetComboBoxes();
            LoadTrainerInfo();
        }
示例#8
0
        private void SetTrainerData(SaveFile sav, LiveHeXVersion lv)
        {
            // Check and set trainerdata based on ISaveBlock interfaces
            byte[] dest = sav switch
            {
                ISaveBlock8Main s8 => s8.MyStatus.Data,
                ISaveBlock7Main s7 => s7.MyStatus.Data,
                ISaveBlock6Core s6 => s6.Status.Data,
                SAV7b slgpe => slgpe.Blocks.Status.Data,
                   _ => Array.Empty <byte>()
            };

            if (dest.Length == 0)
            {
                return;
            }

            var ofs  = RamOffsets.GetTrainerBlockOffset(lv);
            var data = Remote.Bot.com.ReadBytes(ofs, dest.Length);

            data.CopyTo(dest, 0);
        }
示例#9
0
        private const int Key      = 0x0B38; // 6

        public MyItem7b(SAV7b sav, int offset) : base(sav) => Offset = offset;
示例#10
0
 public Zukan7b(SAV7b sav, int dex, int langflag) : base(sav, dex, langflag)
 {
 }
示例#11
0
 protected Zukan7(SAV7b sav, int dex, int langflag) : this(sav, dex, langflag, DexFormUtil.GetDexFormIndexGG)
 {
 }