update item data
This commit is contained in:
@@ -13,7 +13,7 @@ import (
|
||||
"github.com/hectorgimenez/d2go/pkg/utils"
|
||||
)
|
||||
|
||||
func (gd *GameReader) Inventory(rawPlayerUnits RawPlayerUnits, hover data.HoverData) data.Inventory {
|
||||
func (gd *GameReader) Inventory(rawPlayerUnits RawPlayerUnits, merc OwnMercenary, hover data.HoverData) data.Inventory {
|
||||
mainPlayer := rawPlayerUnits.GetMainPlayer()
|
||||
baseAddr := gd.Process.moduleBaseAddressPtr + gd.offset.UnitTable + (4 * 1024)
|
||||
unitTableBuffer := gd.Process.ReadBytesFromMemory(baseAddr, 128*8)
|
||||
@@ -132,7 +132,6 @@ func (gd *GameReader) Inventory(rawPlayerUnits RawPlayerUnits, hover data.HoverD
|
||||
itm := &data.Item{
|
||||
ID: int(txtFileNo),
|
||||
UnitID: data.UnitID(unitID),
|
||||
Owner: data.UnitID(itemOwnerNPC),
|
||||
Name: item.GetNameByEnum(txtFileNo),
|
||||
Quality: item.Quality(itemQuality),
|
||||
Position: data.Position{
|
||||
@@ -143,9 +142,6 @@ func (gd *GameReader) Inventory(rawPlayerUnits RawPlayerUnits, hover data.HoverD
|
||||
Sockets: make([]data.Item, 0),
|
||||
UniqueSetID: txtUniqueSet,
|
||||
}
|
||||
if itm.Owner == 1 {
|
||||
itm.Owner = mainPlayer.UnitID
|
||||
}
|
||||
|
||||
// Set item properties
|
||||
setProperties(itm, uint32(flags))
|
||||
@@ -287,6 +283,8 @@ func (gd *GameReader) Inventory(rawPlayerUnits RawPlayerUnits, hover data.HoverD
|
||||
location = classifyDLCTabItem(txtFileNo)
|
||||
}
|
||||
} else if data.UnitID(itemOwnerNPC) == mainPlayer.UnitID || itemOwnerNPC == 1 {
|
||||
itm.Owner = mainPlayer.UnitID
|
||||
|
||||
if invPage == 0 {
|
||||
location = item.LocationInventory
|
||||
} else if invPage == 3 {
|
||||
@@ -297,14 +295,29 @@ func (gd *GameReader) Inventory(rawPlayerUnits RawPlayerUnits, hover data.HoverD
|
||||
invPage = 0
|
||||
}
|
||||
}
|
||||
|
||||
if location == item.LocationSharedStash {
|
||||
MySharedStashPage := stashUnitIDToPage[uint(mainPlayer.UnitID)]
|
||||
if invPage == MySharedStashPage {
|
||||
itm.Owner = mainPlayer.UnitID
|
||||
}
|
||||
}
|
||||
case 1:
|
||||
isMercItem := (flags & 0x800000) != 0
|
||||
if data.UnitID(itemOwnerNPC) == mainPlayer.UnitID || itemOwnerNPC == 1 {
|
||||
itm.Owner = mainPlayer.UnitID
|
||||
|
||||
location = item.LocationEquipped
|
||||
if itm.Type().Code == item.TypeBelt {
|
||||
belt.Name = itm.Name
|
||||
}
|
||||
} else if isMercItem {
|
||||
if merc.Found {
|
||||
itm.Owner = merc.UnitID
|
||||
} else {
|
||||
itm.Owner = data.UnitID(itemOwnerNPC)
|
||||
}
|
||||
|
||||
location = item.LocationMercenary
|
||||
}
|
||||
case 2:
|
||||
|
||||
Reference in New Issue
Block a user