private byte setParty()
{
byte partymembers = 0; // start off with a ctr of 0
int offset = SaveGame.Party + 0x7F000 * savindex;
for (int i = 0; i < 6; i++)
{
// Gather all the species
byte[] data = new byte[0x104];
Array.Copy(savefile, offset + i * 0x104, data, 0, 0x104);
byte[] decdata = PKX.decryptArray(data);
int species = BitConverter.ToInt16(decdata, 8);
if ((species != 0) && (species < 722))
Array.Copy(data, 0, savefile, offset + (partymembers++) * 0x104, 0x104);
}
// Write in the current party count
savefile[offset + 6 * 0x104 + savindex * 0x7F000] = partymembers;
// Zero out the party slots that are empty.
for (int i = 0; i < 6; i++)
if (i >= partymembers)
Array.Copy(PKX.encryptArray(new byte[0x104]), 0, savefile, offset + (i * 0x104), 0x104);
// Repeat for Battle Box.
byte battlemem = 0;
int offset2 = SaveGame.BattleBox + 0x7F000 * savindex;
for (int i = 0; i < 6; i++)
{
// Gather all the species
byte[] data = new byte[0x104];
Array.Copy(savefile, offset2 + i * 0xE8, data, 0, 0xE8);
byte[] decdata = PKX.decryptArray(data);
int species = BitConverter.ToInt16(decdata, 8);
if ((species != 0) && (species < 722))
Array.Copy(data, 0, savefile, offset2 + (battlemem++) * 0xE8, 0xE8);
}
// Zero out the party slots that are empty.
for (int i = 0; i < 6; i++)
if (i >= battlemem)
Array.Copy(PKX.encryptArray(new byte[0x104]), 0, savefile, offset2 + (i * 0xE8), 0xE8);
if (battlemem == 0)
savefile[offset2 + 6 * 0xE8 + savindex * 0x7F000] = 0;
// Refresh slots
for (int i = 0; i < 6; i++)
{
getQuickFiller(getPictureBox(i + 30), PKX.decryptArray(savefile.Skip(SaveGame.Party + 0x7F000 * savindex + 260 * i).Take(232).ToArray()));
getQuickFiller(getPictureBox(i + 36), PKX.decryptArray(savefile.Skip(SaveGame.BattleBox + 0x7F000 * savindex + 232 * i).Take(232).ToArray()));
}
return partymembers;
}
private int getPKXOffset(int slot)