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(); }
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(); }