improve item.go 3
This commit is contained in:
@@ -82,12 +82,16 @@ func (gd *GameReader) GetData() data.Data {
|
|||||||
gd.monstersLastUpdate = now
|
gd.monstersLastUpdate = now
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Always update other critical data
|
||||||
|
corpseUnit := rawPlayerUnits.GetCorpse()
|
||||||
|
roster := gd.getRoster(rawPlayerUnits)
|
||||||
|
|
||||||
// Conditionally update inventory 500ms
|
// Conditionally update inventory 500ms
|
||||||
// Except when hovering over an item
|
// Except when hovering over an item
|
||||||
inventory := gd.cachedInventory
|
inventory := gd.cachedInventory
|
||||||
if now.Sub(gd.inventoryLastUpdate) > 250*time.Millisecond ||
|
if now.Sub(gd.inventoryLastUpdate) > 250*time.Millisecond ||
|
||||||
(hover.IsHovered && hover.UnitType == 4) { // 4 = Item type
|
(hover.IsHovered && hover.UnitType == 4) { // 4 = Item type
|
||||||
inventory = gd.Inventory(rawPlayerUnits, hover)
|
inventory = gd.Inventory(rawPlayerUnits, len(roster) > 1, hover)
|
||||||
gd.cachedInventory = inventory
|
gd.cachedInventory = inventory
|
||||||
gd.inventoryLastUpdate = now
|
gd.inventoryLastUpdate = now
|
||||||
}
|
}
|
||||||
@@ -100,9 +104,6 @@ func (gd *GameReader) GetData() data.Data {
|
|||||||
gd.objectsLastUpdate = now
|
gd.objectsLastUpdate = now
|
||||||
}
|
}
|
||||||
|
|
||||||
// Always update other critical data
|
|
||||||
corpseUnit := rawPlayerUnits.GetCorpse()
|
|
||||||
roster := gd.getRoster(rawPlayerUnits)
|
|
||||||
openMenus := gd.OpenMenus()
|
openMenus := gd.OpenMenus()
|
||||||
|
|
||||||
// Quests
|
// Quests
|
||||||
@@ -155,8 +156,9 @@ func (gd *GameReader) GetData() data.Data {
|
|||||||
|
|
||||||
func (gd *GameReader) GetInventory() data.Inventory {
|
func (gd *GameReader) GetInventory() data.Inventory {
|
||||||
rawPlayerUnits := gd.GetRawPlayerUnits()
|
rawPlayerUnits := gd.GetRawPlayerUnits()
|
||||||
|
roster := gd.getRoster(rawPlayerUnits)
|
||||||
hover := gd.HoveredData()
|
hover := gd.HoveredData()
|
||||||
return gd.Inventory(rawPlayerUnits, hover)
|
return gd.Inventory(rawPlayerUnits, len(roster) > 1, hover)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gd *GameReader) InGame() bool {
|
func (gd *GameReader) InGame() bool {
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import (
|
|||||||
"github.com/hectorgimenez/d2go/pkg/utils"
|
"github.com/hectorgimenez/d2go/pkg/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (gd *GameReader) Inventory(rawPlayerUnits RawPlayerUnits, hover data.HoverData) data.Inventory {
|
func (gd *GameReader) Inventory(rawPlayerUnits RawPlayerUnits, partyMode bool, hover data.HoverData) data.Inventory {
|
||||||
mainPlayer := rawPlayerUnits.GetMainPlayer()
|
mainPlayer := rawPlayerUnits.GetMainPlayer()
|
||||||
baseAddr := gd.Process.moduleBaseAddressPtr + gd.offset.UnitTable + (4 * 1024)
|
baseAddr := gd.Process.moduleBaseAddressPtr + gd.offset.UnitTable + (4 * 1024)
|
||||||
unitTableBuffer := gd.Process.ReadBytesFromMemory(baseAddr, 128*8)
|
unitTableBuffer := gd.Process.ReadBytesFromMemory(baseAddr, 128*8)
|
||||||
@@ -275,7 +275,7 @@ func (gd *GameReader) Inventory(rawPlayerUnits RawPlayerUnits, hover data.HoverD
|
|||||||
// In party mode / current memory layout:
|
// In party mode / current memory layout:
|
||||||
// shared stash page 1 belongs to the current character.
|
// shared stash page 1 belongs to the current character.
|
||||||
// Other pages are other shared stash containers and should keep raw owner.
|
// Other pages are other shared stash containers and should keep raw owner.
|
||||||
if page == 1 {
|
if !partyMode || page == 1 {
|
||||||
itm.Owner = mainPlayer.UnitID
|
itm.Owner = mainPlayer.UnitID
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user