PKHeX.SAV_Trainer.save C# (CSharp) Method

save() private method

private save ( ) : void
return void
        private void save()
        {
            string OT_Name = TB_OTName.Text;
            //string RIV_Name = TB_Rival.Text;

            sav[TrainerCard + 0x04 + savshift] = (byte)(CB_Game.SelectedIndex + 0x18);
            sav[TrainerCard + 0x05 + savshift] = (byte)CB_Gender.SelectedIndex;

            uint TID = Util.ToUInt32(MT_TID.Text);
            uint SID = Util.ToUInt32(MT_SID.Text);
            uint money = Util.ToUInt32(MT_Money.Text);

            string saying1 = TB_Saying1.Text;
            string saying2 = TB_Saying2.Text;
            string saying3 = TB_Saying3.Text;
            string saying4 = TB_Saying4.Text;
            string saying5 = TB_Saying5.Text;

            uint _region = Util.ToUInt32(CB_Region.SelectedValue.ToString());
            uint _country = Util.ToUInt32(CB_Country.SelectedValue.ToString());
            uint _3dsreg = Util.ToUInt32(CB_3DSReg.SelectedValue.ToString());
            uint _language = Util.ToUInt32(CB_Language.SelectedValue.ToString());

            Array.Copy(BitConverter.GetBytes(TID), 0, sav, TrainerCard + 0x0 + savshift, 2);
            Array.Copy(BitConverter.GetBytes(SID), 0, sav, TrainerCard + 0x2 + savshift, 2);
            Array.Copy(BitConverter.GetBytes(money), 0, sav, Trainer2 + 0x8 + savshift, 4);
            Array.Copy(BitConverter.GetBytes(_region), 0, sav, TrainerCard + 0x26 + savshift, 1);
            Array.Copy(BitConverter.GetBytes(_country), 0, sav, TrainerCard + 0x27 + savshift, 1);
            Array.Copy(BitConverter.GetBytes(_3dsreg), 0, sav, TrainerCard + 0x2C + savshift, 1);
            Array.Copy(BitConverter.GetBytes(_language), 0, sav, TrainerCard + 0x2D + savshift, 1);

            byte[] OT = Encoding.Unicode.GetBytes(OT_Name);
            Array.Resize(ref OT, 0x1A);
            Array.Copy(OT, 0, sav, TrainerCard + 0x48 + savshift, 0x1A);
            //byte[] Rival = Encoding.Unicode.GetBytes(RIV_Name);
            //Array.Resize(ref Rival, 0x1A);
            //Array.Copy(Rival, 0, sav, 0x9610 + savshift, 0x1A);

            byte[] s1 = Encoding.Unicode.GetBytes(saying1);
            Array.Resize(ref s1, 0x22);
            Array.Copy(s1, 0, sav, TrainerCard + 0x7C + savshift, 0x22);
            byte[] s2 = Encoding.Unicode.GetBytes(saying2);
            Array.Resize(ref s2, 0x22);
            Array.Copy(s2, 0, sav, TrainerCard + 0x9E + savshift, 0x22);
            byte[] s3 = Encoding.Unicode.GetBytes(saying3);
            Array.Resize(ref s3, 0x22);
            Array.Copy(s3, 0, sav, TrainerCard + 0xC0 + savshift, 0x22);
            byte[] s4 = Encoding.Unicode.GetBytes(saying4);
            Array.Resize(ref s4, 0x22);
            Array.Copy(s4, 0, sav, TrainerCard + 0xE2 + savshift, 0x22);
            byte[] s5 = Encoding.Unicode.GetBytes(saying5);
            Array.Resize(ref s5, 0x22);
            Array.Copy(s5, 0, sav, TrainerCard + 0x104 + savshift, 0x22);

            // New stuff.
            // Copy Maison Data in
            MaskedTextBox[] tba =
            {
                TB_MCSN,TB_MCSS,TB_MBSN,TB_MBSS,
                TB_MCDN,TB_MCDS,TB_MBDN,TB_MBDS,
                TB_MCTN,TB_MCTS,TB_MBTN,TB_MBTS,
                TB_MCRN,TB_MCRS,TB_MBRN,TB_MBRS,
                TB_MCMN,TB_MCMS,TB_MBMN,TB_MBMS,
            };

            for (int i = 0; i < tba.Length; i++)
            {
                byte[] streak = BitConverter.GetBytes(Util.ToUInt32(tba[i].Text));
                Array.Resize(ref streak, 2);
                Array.Copy(streak, 0, sav, Maison + 2 * i + savshift, 2);
            }

            // Copy Position
            byte[] m = BitConverter.GetBytes(Int16.Parse(TB_CoordM.Text)); Array.Resize(ref m, 2); Array.Copy(m, 0, sav, savshift + Trainer1 + 0x02, 2);
            byte[] x = BitConverter.GetBytes(Single.Parse(TB_CoordX.Text)); Array.Resize(ref x, 4); Array.Copy(x, 0, sav, savshift + Trainer1 + 0x10, 4);
            byte[] z = BitConverter.GetBytes(Single.Parse(TB_CoordZ.Text)); Array.Resize(ref z, 4); Array.Copy(z, 0, sav, savshift + Trainer1 + 0x14, 4);
            byte[] y = BitConverter.GetBytes(Single.Parse(TB_CoordY.Text)); Array.Resize(ref y, 4); Array.Copy(y, 0, sav, savshift + Trainer1 + 0x18, 4);

            byte[] bp = BitConverter.GetBytes(Util.ToUInt32(TB_BP.Text)); Array.Resize(ref bp, 2); Array.Copy(bp, 0, sav, savshift + 0x963C - 0xC * Convert.ToInt16(m_parent.savegame_oras), 2);
            byte[] pm = BitConverter.GetBytes(Util.ToUInt32(TB_PM.Text)); Array.Resize(ref pm, 4); Array.Copy(pm, 0, sav, savshift + psssatoffset + 0xFC, 4); Array.Copy(pm, 0, sav, savshift + psssatoffset + 0x100, 4);
            sav[0x694D + savshift] = Byte.Parse(TB_Style.Text);

            // Copy Badges
            badgeval = 0;
            CheckBox[] cba = { cb1, cb2, cb3, cb4, cb5, cb6, cb7, cb8, };
            for (int i = 0; i < 8; i++)
                badgeval |= (byte)(Convert.ToByte(cba[i].Checked) << i);
            sav[0x960C + savshift] = badgeval;

            // Save PlayTime
            byte[] h = BitConverter.GetBytes(UInt16.Parse(MT_Hours.Text)); Array.Resize(ref h, 2); Array.Copy(h, 0, sav, savshift + 0x6C00, 2);
            sav[0x6C02 + savshift] = (byte)(UInt16.Parse(MT_Minutes.Text) % 60);
            sav[0x6C03 + savshift] = (byte)(UInt16.Parse(MT_Seconds.Text) % 60);

            // Sprite
            sav[TrainerCard + 0x07] = Convert.ToByte(CB_Multi.SelectedValue);

            sav[TrainerCard + 0x31] = (byte)(Byte.Parse(MT_HairColor.Text) + (Byte.Parse(MT_Hat.Text) << 3));

            sav[TrainerCard + 0x30 + savshift] = Byte.Parse(MT_14030.Text);
            //sav[TrainerCard + 0x31 + savshift] = Byte.Parse(MT_14031.Text);
            sav[TrainerCard + 0x32 + savshift] = Byte.Parse(MT_14032.Text);
            sav[TrainerCard + 0x33 + savshift] = Byte.Parse(MT_14033.Text);
            sav[TrainerCard + 0x34 + savshift] = Byte.Parse(MT_14034.Text);
            sav[TrainerCard + 0x35 + savshift] = Byte.Parse(MT_14035.Text);
            sav[TrainerCard + 0x36 + savshift] = Byte.Parse(MT_14036.Text);
            sav[TrainerCard + 0x37 + savshift] = Byte.Parse(MT_14037.Text);
            sav[TrainerCard + 0x38 + savshift] = Byte.Parse(MT_14038.Text);
            sav[TrainerCard + 0x39 + savshift] = Byte.Parse(MT_14039.Text);
            sav[TrainerCard + 0x3A + savshift] = Byte.Parse(MT_1403A.Text);
            sav[TrainerCard + 0x3B + savshift] = Byte.Parse(MT_1403B.Text);
            sav[TrainerCard + 0x3C + savshift] = Byte.Parse(MT_1403C.Text);
            sav[TrainerCard + 0x3D + savshift] = Byte.Parse(MT_1403D.Text);
            sav[TrainerCard + 0x3E + savshift] = Byte.Parse(MT_1403E.Text);
            sav[TrainerCard + 0x3F + savshift] = Byte.Parse(MT_1403F.Text);

            // Vivillon
            sav[VivillonForm + savshift] = (byte)CB_Vivillon.SelectedIndex;
        }