Exemplo n.º 1
0
        private void InitializeData(byte[] data)
        {
            Data = DecryptPBRSaveData(data);

            // Detect active save
            SaveCount = Math.Max(BigEndian.ToUInt32(Data, 0x1C004C), BigEndian.ToUInt32(Data, 0x4C));
            if (BigEndian.ToUInt32(Data, 0x1C004C) > BigEndian.ToUInt32(Data, 0x4C))
            {
                byte[] tempData = new byte[0x1C0000];
                Array.Copy(Data, 0, tempData, 0, 0x1C0000);
                Array.Copy(Data, 0x1C0000, Data, 0, 0x1C0000);
                tempData.CopyTo(Data, 0x1C0000);
            }

            for (int i = 0; i < SAVE_COUNT; i++)
            {
                if (!IsOTNamePresent(i))
                {
                    continue;
                }
                SaveSlots.Add(i);
                SaveNames.Add(GetOTName(i));
            }

            CurrentSlot = SaveSlots[0];
        }
        public LoadGameWindow(List <string> n, UserContext db)
        {
            InitializeComponent();

            foreach (var i in n)
            {
                SaveNames.Add(i);
            }
            this.db = db;
            listBox1.ItemsSource = SaveNames;
        }
        //Удаление сохранения и записей БД

        private void btnDel_Click(object sender, RoutedEventArgs e)
        {
            if (listBox1.SelectedIndex >= 0)
            {
                string s  = listBox1.SelectedItem.ToString();
                int?   id = db.Saves.Where(i => i.Name == s).Select(j => j.Id).FirstOrDefault();
                if (id != null)
                {
                    db.Points.RemoveRange(db.Points.Where(i => i.IdSave == id));
                    db.Saves.RemoveRange(db.Saves.Where(i => i.Id == id));
                    db.SaveChangesAsync();
                    SaveNames.RemoveAt(listBox1.SelectedIndex);
                }
            }
        }
Exemplo n.º 4
0
        public SAV4BR(byte[] data = null)
        {
            Data       = data ?? new byte[SaveUtil.SIZE_G4BR];
            BAK        = (byte[])Data.Clone();
            Exportable = !IsRangeEmpty(0, Data.Length);

            if (SaveUtil.GetIsG4BRSAV(Data) != GameVersion.BATREV)
            {
                return;
            }

            Data = DecryptPBRSaveData(data);

            // Detect active save
            SaveCount = Math.Max(BigEndian.ToUInt32(Data, 0x1C004C), BigEndian.ToUInt32(Data, 0x4C));
            if (BigEndian.ToUInt32(Data, 0x1C004C) > BigEndian.ToUInt32(Data, 0x4C))
            {
                byte[] tempData = new byte[0x1C0000];
                Array.Copy(Data, 0, tempData, 0, 0x1C0000);
                Array.Copy(Data, 0x1C0000, Data, 0, 0x1C0000);
                tempData.CopyTo(Data, 0x1C0000);
            }

            for (int i = 0; i < SAVE_COUNT; i++)
            {
                if (!IsOTNamePresent(i))
                {
                    continue;
                }
                SaveSlots.Add(i);
                SaveNames.Add(GetOTName(i).Trim());
            }

            CurrentSlot = SaveSlots[0];

            Personal  = PersonalTable.DP;
            HeldItems = Legal.HeldItems_DP;

            if (!Exportable)
            {
                ClearBoxes();
            }
        }