private void B_Save_Click(object sender, EventArgs e)
{
int offset = wcoffset - 0x100 + savindex * 0x7F000;
// Make sure all of the Received Flags are flipped!
byte[] wcflags = new byte[0x100];
foreach (uint cardnum in from object card in LB_Received.Items
select card.ToString() into cardID
select Util.ToUInt32(cardID))
wcflags[(cardnum / 8) & 0xFF] |= (byte)(1 << ((byte)(cardnum & 0x7)));
Array.Copy(wcflags, 0, sav, offset, 0x100);
offset += 0x100;
// Make sure there's no space between wondercards
{
for (int i = 0; i < 24; i++)
if (BitConverter.ToUInt16(sav, offset + i * 0x108) == 0)
for (int j = i + 1; j < 24 - i; j++) // Shift everything down
Array.Copy(sav, offset + j * 0x108, sav, offset + (j - 1) * 0x108, 0x108);
}
Array.Copy(sav, m_parent.savefile, 0x100000);
m_parent.savedited = true;
Close();
}