示例#1
0
        private void save()
        {
            SAV.Game   = (byte)(CB_Game.SelectedIndex + 0x18);
            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.SubRegion     = WinFormsUtil.getIndex(CB_Region);
            SAV.Country       = WinFormsUtil.getIndex(CB_Country);
            SAV.ConsoleRegion = WinFormsUtil.getIndex(CB_3DSReg);
            SAV.Language      = WinFormsUtil.getIndex(CB_Language);

            SAV.OT = TB_OTName.Text;

            SAV.Saying1 = TB_Saying1.Text;
            SAV.Saying2 = TB_Saying2.Text;
            SAV.Saying3 = TB_Saying3.Text;
            SAV.Saying4 = TB_Saying4.Text;
            SAV.Saying5 = TB_Saying5.Text;

            // Copy Maison Data in
            if (SAV.MaisonStats > -1)
            {
                for (int i = 0; i < MaisonRecords.Length; i++)
                {
                    SAV.setMaisonStat(i, ushort.Parse(MaisonRecords[i].Text));
                }
            }

            // Copy Position
            if (GB_Map.Enabled)
            {
                SAV.M = (int)NUD_M.Value;
                SAV.X = (float)NUD_X.Value;
                SAV.Z = (float)NUD_Z.Value;
                SAV.Y = (float)NUD_Y.Value;
            }

            SAV.BP = ushort.Parse(TB_BP.Text);
            // Set Current PokéMiles
            SAV.setPSSStat(0xFC / 4, Util.ToUInt32(TB_PM.Text));
            // Set Max Obtained Pokémiles
            SAV.setPSSStat(0x100 / 4, Util.ToUInt32(TB_PM.Text));
            SAV.Style = byte.Parse(TB_Style.Text);

            // Copy Badges
            int badgeval = 0;

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

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

            // Sprite
            SAV.MultiplayerSpriteID = Convert.ToByte(CB_MultiplayerSprite.SelectedValue);

            // Appearance
            if (SAV.XY)
            {
                SAV.Data[SAV.TrainerCard + 0x30] = byte.Parse(MT_14030.Text);
                SAV.Data[SAV.TrainerCard + 0x31] = (byte)(byte.Parse(MT_HairColor.Text) | (byte.Parse(MT_Hat.Text) << 3));
                SAV.Data[SAV.TrainerCard + 0x32] = byte.Parse(MT_14032.Text);
                SAV.Data[SAV.TrainerCard + 0x33] = byte.Parse(MT_14033.Text);
                SAV.Data[SAV.TrainerCard + 0x34] = byte.Parse(MT_14034.Text);
                SAV.Data[SAV.TrainerCard + 0x35] = byte.Parse(MT_14035.Text);
                SAV.Data[SAV.TrainerCard + 0x36] = byte.Parse(MT_14036.Text);
                SAV.Data[SAV.TrainerCard + 0x37] = byte.Parse(MT_14037.Text);
                SAV.Data[SAV.TrainerCard + 0x38] = byte.Parse(MT_14038.Text);
                SAV.Data[SAV.TrainerCard + 0x39] = byte.Parse(MT_14039.Text);
                SAV.Data[SAV.TrainerCard + 0x3A] = byte.Parse(MT_1403A.Text);
                SAV.Data[SAV.TrainerCard + 0x3B] = byte.Parse(MT_1403B.Text);
                SAV.Data[SAV.TrainerCard + 0x3C] = byte.Parse(MT_1403C.Text);
                SAV.Data[SAV.TrainerCard + 0x3D] = byte.Parse(MT_1403D.Text);
                SAV.Data[SAV.TrainerCard + 0x3E] = byte.Parse(MT_1403E.Text);
                SAV.Data[SAV.TrainerCard + 0x3F] = byte.Parse(MT_1403F.Text);

                SAV.OT_Nick = TB_TRNick.Text;
            }

            // Vivillon
            SAV.Vivillon = CB_Vivillon.SelectedIndex;

            int seconds = (int)(CAL_AdventureStartDate.Value - new DateTime(2000, 1, 1)).TotalSeconds;

            seconds           -= seconds % 86400;
            seconds           += (int)(CAL_AdventureStartTime.Value - new DateTime(2000, 1, 1)).TotalSeconds;
            SAV.SecondsToStart = seconds;

            int fame = (int)(CAL_HoFDate.Value - new DateTime(2000, 1, 1)).TotalSeconds;

            fame -= fame % 86400;
            fame += (int)(CAL_HoFTime.Value - new DateTime(2000, 1, 1)).TotalSeconds;
            SAV.SecondsToFame = fame;

            if (SAV.LastSavedDate.HasValue)
            {
                SAV.LastSavedDate = new DateTime(CAL_LastSavedDate.Value.Year, CAL_LastSavedDate.Value.Month, CAL_LastSavedDate.Value.Day, CAL_LastSavedTime.Value.Hour, CAL_LastSavedTime.Value.Minute, 0);
            }
        }