示例#1
0
        private void B_Save_Click(object sender, EventArgs e)
        {
            byte[] bgdata = bg.Write();
            if (bgdata.SequenceEqual(new byte[CGearBackground.SIZE_CGB]))
            {
                return;
            }

            // Data present

            bgdata = CGearBackground.CGBtoPSK(bgdata, SAV.B2W2);

            Array.Copy(bgdata, 0, Main.SAV.Data, SAV.CGearDataOffset, bgdata.Length);
            ushort chk = SaveUtil.ccitt16(bgdata);

            BitConverter.GetBytes(chk).CopyTo(Main.SAV.Data, SAV.CGearDataOffset + bgdata.Length + 2);
            BitConverter.GetBytes(chk).CopyTo(Main.SAV.Data, SAV.CGearDataOffset + bgdata.Length + 0x100);

            byte[] skinchkdata = Main.SAV.Data.Skip(SAV.CGearDataOffset + bgdata.Length + 0x100).Take(4).ToArray();
            ushort skinchkval  = SaveUtil.ccitt16(skinchkdata);

            BitConverter.GetBytes(skinchkval).CopyTo(Main.SAV.Data, SAV.CGearDataOffset + bgdata.Length + 0x112);

            // Indicate in the save file that data is present
            BitConverter.GetBytes((ushort)0xC21E).CopyTo(Main.SAV.Data, 0x19438);



            Main.SAV.Data[SAV.CGearInfoOffset + 0x26] = 1; // data present
            BitConverter.GetBytes(chk).CopyTo(Main.SAV.Data, SAV.CGearInfoOffset + 0x24);

            Main.SAV.Edited = true;
            Close();
        }
示例#2
0
        private void B_Save_Click(object sender, EventArgs e)
        {
            byte[] bgdata = bg.Write();
            if (bgdata.SequenceEqual(new byte[CGearBackground.SIZE_CGB]))
            {
                return;
            }

            // Data present

            bgdata = CGearBackground.CGBtoPSK(bgdata, SAV.B2W2);

            Array.Copy(bgdata, 0, SAV.Data, SAV.CGearDataOffset, bgdata.Length);
            ushort chk = SaveUtil.CRC16_CCITT(bgdata);

            BitConverter.GetBytes(chk).CopyTo(SAV.Data, SAV.CGearDataOffset + bgdata.Length + 2);
            BitConverter.GetBytes(chk).CopyTo(SAV.Data, SAV.CGearDataOffset + bgdata.Length + 0x100);

            ushort skinchkval = SaveUtil.CRC16_CCITT(SAV.Data, bgdata.Length + 0x100, 4);

            BitConverter.GetBytes(skinchkval).CopyTo(SAV.Data, SAV.CGearDataOffset + bgdata.Length + 0x112);

            // Indicate in the save file that data is present
            BitConverter.GetBytes((ushort)0xC21E).CopyTo(SAV.Data, 0x19438);

            SAV.Data[SAV.CGearInfoOffset + 0x26] = 1; // data present
            BitConverter.GetBytes(chk).CopyTo(SAV.Data, SAV.CGearInfoOffset + 0x24);

            Origin.SetData(SAV.Data, 0);
            Close();
        }