Example #1
0
        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);
                }
            }
        }