private void multiSetterToolStripMenuItem_Click(object sender, EventArgs e)
{
// shows a dialog to set multiple settings to all selected creatures
if (listViewLibrary.SelectedIndices.Count > 0)
{
Creature c = new Creature();
List<bool> appliedSettings = new List<bool>();
for (int i = 0; i < 13; i++)
appliedSettings.Add(false);
List<Creature> selectedCreatures = new List<Creature>();
// check if multiple species are selected
bool multipleSpecies = false;
string sp = ((Creature)listViewLibrary.SelectedItems[0].Tag).species;
c.species = sp;
foreach (ListViewItem i in listViewLibrary.SelectedItems)
{
selectedCreatures.Add((Creature)i.Tag);
if (((Creature)i.Tag).species != sp)
{
multipleSpecies = true;
}
}
List<Creature>[] parents = null;
if (!multipleSpecies) parents = findParents(c);
MultiSetter ms = new MultiSetter(c, appliedSettings, parents);
if (ms.ShowDialog() == DialogResult.OK)
{
foreach (Creature sc in selectedCreatures)
{
if (appliedSettings[0])
sc.owner = c.owner;
if (appliedSettings[1])
sc.status = c.status;
if (appliedSettings[2])
sc.gender = c.gender;
if (appliedSettings[3])
sc.isBred = c.isBred;
if (appliedSettings[4])
sc.motherGuid = c.motherGuid;
if (appliedSettings[5])
sc.fatherGuid = c.fatherGuid;
if (appliedSettings[6])
sc.note = c.note;
if (appliedSettings[7])
sc.colors[0] = c.colors[0];
if (appliedSettings[8])
sc.colors[1] = c.colors[1];
if (appliedSettings[9])
sc.colors[2] = c.colors[2];
if (appliedSettings[10])
sc.colors[3] = c.colors[3];
if (appliedSettings[11])
sc.colors[4] = c.colors[4];
if (appliedSettings[12])
sc.colors[5] = c.colors[5];
}
if (appliedSettings[4] || appliedSettings[5])
updateParents(selectedCreatures);
createOwnerList();
setCollectionChanged(true, (!multipleSpecies ? sp : null));
filterLib();
}
ms.Dispose();
}
}