diff --git a/pkg/memory/item.go b/pkg/memory/item.go index 5385c98..674e423 100644 --- a/pkg/memory/item.go +++ b/pkg/memory/item.go @@ -369,6 +369,20 @@ func (gd *GameReader) Inventory(rawPlayerUnits RawPlayerUnits, hover data.HoverD statsListExPtr := uintptr(ReadUIntFromBuffer(itemDataBuffer, 0x88, Uint64)) itm.BaseStats, itm.Stats = gd.getItemStats(statsListExPtr) + // Read stack quantity from UnitData+0x9C (DLC tabs store quantity here instead of in stats) + stackQty := gd.Process.ReadUInt(unitDataPtr+0x9C, Uint32) + found := false + for i := range itm.Stats { + if itm.Stats[i].ID == stat.Quantity && itm.Stats[i].Layer == 0 { + itm.Stats[i].Value = int(stackQty) + found = true + break + } + } + if !found && stackQty > 0 { + itm.Stats = append(itm.Stats, stat.Data{ID: stat.Quantity, Value: int(stackQty), Layer: 0}) + } + // Process socket information if location == item.LocationSocket { if itm.Desc().Code == "jew" {