private void UpdateMyBuffsListInternal() { System.Collections.ArrayList dirty_items = new System.Collections.ArrayList(); for (int i = 0; i < listView_mybuffs_data.Items.Count; i++) { uint id = Util.GetUInt32(((ListViewItem)listView_mybuffs_data_items[i]).SubItems[3].Text); if (Globals.gamedata.mybuffs.ContainsKey(id)) { CharBuff cb = Util.GetBuff(id); cb.InList = true; if (cb.ExpiresTime == -1) { ((ListViewItem)listView_mybuffs_data_items[i]).SubItems[2].Text = "ON"; } else { System.TimeSpan remain = new System.TimeSpan(cb.ExpiresTime - System.DateTime.Now.Ticks); //update it //((ListViewItem)listView_npc_data_items[i]).SubItems[0].Text = Util.GetNPCName(npc.NPCID); //((ListViewItem)listView_npc_data_items[i]).SubItems[1].Text = npc.Title; ((ListViewItem)listView_mybuffs_data_items[i]).SubItems[2].Text = ((int)remain.TotalMinutes).ToString() + ":" + remain.Seconds.ToString(); //((ListViewItem)listView_mybuffs_data_items[i]).SubItems[2].Text = cb.ID.ToString(); } } else { dirty_items.Add(i); } } //need to remove all dirty items now for (int i = dirty_items.Count - 1; i >= 0; i--) { listView_mybuffs_data_items.RemoveAt((int)dirty_items[i]); } dirty_items.Clear(); foreach (CharBuff cb in Globals.gamedata.mybuffs.Values) { if (!cb.InList) { cb.InList = true; System.TimeSpan remain = new System.TimeSpan(0); if (cb.ExpiresTime == -1) { } else { remain = new System.TimeSpan(cb.ExpiresTime - System.DateTime.Now.Ticks); } //add it System.Windows.Forms.ListViewItem ObjListItem; ObjListItem = new ListViewItem(Util.GetSkillName(cb.ID, cb.SkillLevel)); //Name ObjListItem.SubItems.Add(cb.SkillLevel.ToString()); //Title if (cb.ExpiresTime == -1) { ObjListItem.SubItems.Add("ON"); } else { ObjListItem.SubItems.Add(((int)remain.TotalMinutes).ToString() + ":" + remain.Seconds.ToString()); //Remaining Time } ObjListItem.SubItems.Add(cb.ID.ToString()); //ObjID ObjListItem.ImageIndex = AddInfo.Get_Skill_Image_Index(cb.ID); listView_mybuffs_data_items.Add(ObjListItem); } } }