Exemple #1
0
        private Dictionary <int, List <MarketItemData> > GetItemList()
        {
            if (_lBuffer != null)
            {
                return(_lBuffer);
            }

            Dictionary <int, List <MarketItemData> > itemList = new Dictionary <int, List <MarketItemData> >();

            var start   = x0008_ItemListStart;
            var end     = x0010_ItemListEnd;
            int maxSize = (int)(end - start) / 0x08;

            MarketItemData firstNode = new MarketItemData(ReadPointer8b(0x48));

            MarketItemData curNode = firstNode;

            for (int i = 0; i < maxSize; i++)
            {
                MarketItemData nextNode = curNode.x0008_NextItem;

                if (nextNode.x0000_PreviousItem.Address == curNode.Address && nextNode.Address != firstNode.Address)
                {
                    if (!itemList.ContainsKey(curNode.x0010_ItemId))
                    {
                        itemList.Add(curNode.x0010_ItemId, new List <MarketItemData>()
                        {
                            curNode
                        });
                    }
                    else
                    {
                        itemList[curNode.x0010_ItemId].Add(curNode);
                    }

                    curNode = nextNode;
                }
                else
                {
                    break;
                }
            }

            if (_lBuffer == null)
            {
                _lBuffer = itemList;
            }

            return(itemList);
        }
Exemple #2
0
        private Dictionary <int, List <MarketItemData> > GetItemList()
        {
            if (_lBuffer != null)
            {
                return(_lBuffer);
            }

            Dictionary <int, List <MarketItemData> > itemList = new Dictionary <int, List <MarketItemData> >();

            var start   = x0008_ItemListStart;
            var end     = x0010_ItemListEnd;
            int maxSize = (int)(end - start) / 0x08;

            for (int i = 0; i < maxSize; i += 8)
            {
                MarketItemData curNode = new MarketItemData(ReadInt64(start + i));

                int itemId = (int)curNode.ItemData.ItemIndex;

                if (!itemList.ContainsKey(itemId))
                {
                    itemList.Add(itemId, new List <MarketItemData>()
                    {
                        curNode
                    });
                }
                else
                {
                    itemList[itemId].Add(curNode);
                }
            }

            if (_lBuffer == null)
            {
                _lBuffer = itemList;
            }

            return(itemList);
        }