public int CompareTo(object obj)
        {
            if (!(obj is ItemListEntry))
            {
                return(0);   //cannot sort
            }

            ItemListEntry entry = (ItemListEntry)obj;

            //if the sort index is invalid
            if (Columns.Count <= SortIndex || SortIndex == -1)
            {
                return(0);
            }

            //TODO: special case:  sort by hue if SortIndex = -1

            //null text can't be sorted
            if (Columns[SortIndex].Text == null || entry.Columns[SortIndex].Text == null)
            {
                return(0);
            }

            return(Columns[SortIndex].Text.CompareTo(entry.Columns[SortIndex].Text) * SortOrder);
        }
        public override void Deserialize(GenericReader reader)
        {
            //handle base StoreEntry deserialization first
            base.Deserialize(reader);
            int version = reader.ReadInt();

            switch (version)
            {
            case 0:
            default:
            {
                _ItemListEntryType = ScriptCompiler.FindTypeByName(reader.ReadString());

                int count = reader.ReadInt();

                for (int i = 0; i < count; i++)
                {
                    string typestring = reader.ReadString();

                    Type type = ScriptCompiler.FindTypeByName(typestring);

                    ItemListEntry entry = (ItemListEntry)Activator.CreateInstance(type, new object[] { reader });

                    ItemListEntries.Add(entry);
                }
                break;
            }
            }
        } //deserialize
 //clone constructor
 public ItemListEntry(ItemListEntry entry)
 {
     _Type     = entry.Type;
     _Name     = entry.Name;
     _Hue      = entry.Hue;
     _LootType = entry.LootType;
     _Insured  = entry.Insured;
 }
        //adding directly to the item list entry
        public override bool Add(Item item)
        {
            //check configuration-specific conditions for adding the item
            if (!CheckExtras.Add(item))
            {
                return(false);
            }


            if (!Match(item, false))
            {
                return(false);
            }

            //try to create the item list entry

            try
            {
                ItemListEntry entry = (ItemListEntry)Activator.CreateInstance(_ItemListEntryType, new object[] { item });

                //check to make sure everything is ok with the item being added.  This checks things like if a treasure map has
                //already been completed, for example.
                if (entry.AllGood(item))
                {
                    ItemListEntries.Add(entry);

                    item.Delete();

                    return(true);
                }
            }
            catch
            {
            }


            return(false);
        }
 public virtual void WithdrawItem(Mobile from, ItemListEntry entry)
 {
     WithdrawItem(from, ItemListEntries.IndexOf(entry));
 }
		//clone constructor
		public ItemListEntry( ItemListEntry entry )
		{
			_Type = entry.Type;
			_Name = entry.Name;
			_Hue = entry.Hue;
			_LootType = entry.LootType;
			_Insured = entry.Insured;
			
		}
		public virtual void WithdrawItem( Mobile from, ItemListEntry entry )
		{
			WithdrawItem( from, ItemListEntries.IndexOf( entry ) );
		}