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); }
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); }