// Token: 0x06004A67 RID: 19047 RVA: 0x00174208 File Offset: 0x00172408
        public void SetBagItemDirty(BagItemBase bagItem)
        {
            UpdateCache <BagItemBase> updateCache = this.FindCache(bagItem);

            updateCache.Dirty = true;
            base.SetDirty(true);
        }
        // Token: 0x06005184 RID: 20868 RVA: 0x00183848 File Offset: 0x00181A48
        public int Init(T data)
        {
            int             validCount = this.ValidCount;
            UpdateCache <T> cache      = new UpdateCache <T>(data);

            return(this.Add(cache, false));
        }
        // Token: 0x06004A55 RID: 19029 RVA: 0x00173EB8 File Offset: 0x001720B8
        public void DirtyArenaBattleReport(ulong battleReportInstanceId)
        {
            UpdateCache <ArenaBattleReport> updateCache = this.ArenaBattleReportInfo.Find(this.m_instanceId2CacheIndex[battleReportInstanceId]);

            updateCache.Dirty = true;
            base.SetDirty(true);
        }
        // Token: 0x06004B52 RID: 19282 RVA: 0x001761C8 File Offset: 0x001743C8
        public void SetHeroDirty(Hero hero)
        {
            UpdateCache <Hero> updateCache = this.FindCache(hero);

            updateCache.Dirty = true;
            base.SetDirty(true);
        }
        // Token: 0x06004A63 RID: 19043 RVA: 0x00174110 File Offset: 0x00172310
        public BagItemBase SetBagItemNums(BagItemBase bagItem, int nums)
        {
            UpdateCache <BagItemBase> updateCache = this.FindCache(bagItem);

            updateCache.Data.Nums = nums;
            updateCache.Dirty     = true;
            base.SetDirty(true);
            return(bagItem);
        }
        // Token: 0x06004A53 RID: 19027 RVA: 0x00173E2C File Offset: 0x0017202C
        public void SetArenaBattleReport(int index, ArenaBattleReport report)
        {
            UpdateCache <ArenaBattleReport> updateCache = this.ArenaBattleReportInfo.Find(index);

            this.m_instanceId2CacheIndex.Remove(updateCache.Data.InstanceId);
            this.ArenaBattleReportInfo.Set(index, report);
            this.m_instanceId2CacheIndex.Add(report.InstanceId, index);
            base.SetDirty(true);
        }
        // Token: 0x06004A66 RID: 19046 RVA: 0x001741D0 File Offset: 0x001723D0
        public BagItemBase FindBagItem(ulong instanceId)
        {
            int index;

            if (this.m_instanceId2CacheIndex.TryGetValue(instanceId, out index))
            {
                UpdateCache <BagItemBase> updateCache = this.Bag.Find(index);
                return(updateCache.Data);
            }
            return(null);
        }
 // Token: 0x0600518B RID: 20875 RVA: 0x00183994 File Offset: 0x00181B94
 public void Clear()
 {
     for (int i = 0; i < this.Caches.Count; i++)
     {
         UpdateCache <T> updateCache = this.Caches[i];
         if (updateCache.IsValid())
         {
             this.Remove(updateCache, i);
         }
     }
 }
        // Token: 0x06004B50 RID: 19280 RVA: 0x0017617C File Offset: 0x0017437C
        public Hero FindHero(int heroId)
        {
            int index;

            if (this.m_id2CacheIndex.TryGetValue(heroId, out index))
            {
                UpdateCache <Hero> updateCache = this.Heroes.Find(index);
                return(updateCache.Data);
            }
            return(null);
        }
        // Token: 0x06005188 RID: 20872 RVA: 0x0018392C File Offset: 0x00181B2C
        public bool Set(int index, T data)
        {
            if (!this.IsIndexValid(index))
            {
                return(false);
            }
            UpdateCache <T> updateCache = this.Find(index);

            updateCache.Data  = data;
            updateCache.Dirty = true;
            return(true);
        }
        // Token: 0x06004A57 RID: 19031 RVA: 0x00173EFC File Offset: 0x001720FC
        public ArenaBattleReport FindArenaBattleReportByInstanceId(ulong battleReportInstanceId)
        {
            if (!this.m_instanceId2CacheIndex.ContainsKey(battleReportInstanceId))
            {
                return(null);
            }
            UpdateCache <ArenaBattleReport> updateCache = this.ArenaBattleReportInfo.Find(this.m_instanceId2CacheIndex[battleReportInstanceId]);

            if (updateCache == null)
            {
                return(null);
            }
            return(updateCache.Data);
        }
        // Token: 0x06005187 RID: 20871 RVA: 0x001838EC File Offset: 0x00181AEC
        public bool Remove(int index)
        {
            if (!this.IsIndexValid(index))
            {
                return(false);
            }
            UpdateCache <T> updateCache = this.Caches[index];

            if (!updateCache.IsValid())
            {
                return(false);
            }
            this.Remove(updateCache, index);
            return(true);
        }
        // Token: 0x06004A64 RID: 19044 RVA: 0x00174140 File Offset: 0x00172340
        public BagItemBase RemoveBagItem(BagItemBase bagItem, int nums)
        {
            int index = this.FindBagItemIndex(bagItem);
            UpdateCache <BagItemBase> updateCache = this.Bag.Find(index);

            bagItem.Nums -= nums;
            if (bagItem.Nums <= 0)
            {
                this.Bag.Remove(index);
                this.m_instanceId2CacheIndex.Remove(bagItem.InstanceId);
            }
            else
            {
                updateCache.Dirty = true;
            }
            base.SetDirty(true);
            return(bagItem);
        }
        // Token: 0x06005186 RID: 20870 RVA: 0x00183888 File Offset: 0x00181A88
        public int Add(UpdateCache <T> cache, bool dirty = true)
        {
            int num;

            if (this.m_freeIndices.Count == 0)
            {
                num = this.ValidCount;
                this.Caches.Add(cache);
            }
            else
            {
                num = this.m_freeIndices.First <int>();
                this.m_freeIndices.RemoveFirst();
                this.Caches[num] = cache;
            }
            cache.Dirty = dirty;
            return(num);
        }
 // Token: 0x06005189 RID: 20873 RVA: 0x00183960 File Offset: 0x00181B60
 private void Remove(UpdateCache <T> cache, int index)
 {
     cache.SetInvalid();
     this.m_freeIndices.AddFirst(index);
 }
        // Token: 0x06005185 RID: 20869 RVA: 0x0018386C File Offset: 0x00181A6C
        public int Add(T data)
        {
            UpdateCache <T> cache = new UpdateCache <T>(data);

            return(this.Add(cache, true));
        }