private void updatePlayerList()
{
listViewPlayer.Items.Clear();
ListViewItem lvi;
Dictionary<string, Color> tribeRelColors = new Dictionary<string, Color>();
foreach (Player p in players)
{
// check if group of tribe exists
ListViewGroup g = null;
foreach (ListViewGroup lvg in listViewPlayer.Groups)
{
if (lvg.Header == p.Tribe)
{
g = lvg;
break;
}
}
if (g == null)
{
g = new ListViewGroup(p.Tribe);
listViewPlayer.Groups.Add(g);
}
if (!tribeRelColors.ContainsKey(p.Tribe))
{
Color c = Color.White;
foreach (Tribe t in tribes)
{
if (t.TribeName == p.Tribe)
{
c = relationColor(t.TribeRelation);
break;
}
}
tribeRelColors.Add(p.Tribe, c);
}
int notesL = p.Note.Length;
if (notesL > 40) notesL = 40;
string rel = "n/a";
foreach (Tribe t in tribes)
{
if (t.TribeName == p.Tribe)
{
rel = t.TribeRelation.ToString();
break;
}
}
lvi = new ListViewItem(new string[] { p.PlayerName, p.Level.ToString(), p.Tribe, rel, p.Note.Substring(0, notesL) }, g);
lvi.UseItemStyleForSubItems = false;
lvi.Tag = p;
lvi.SubItems[3].BackColor = tribeRelColors[p.Tribe];
listViewPlayer.Items.Add(lvi);
}
}