Add some memory reading stuff, based on many other open source projects
This commit is contained in:
27
pkg/memory/roster.go
Normal file
27
pkg/memory/roster.go
Normal file
@@ -0,0 +1,27 @@
|
||||
package memory
|
||||
|
||||
import (
|
||||
"github.com/hectorgimenez/d2go/pkg/data"
|
||||
"github.com/hectorgimenez/d2go/pkg/data/area"
|
||||
)
|
||||
|
||||
func (gd *GameReader) getRoster() (roster []data.RosterMember) {
|
||||
partyStruct := uintptr(gd.Process.ReadUInt(gd.Process.moduleBaseAddressPtr+gd.offset.RosterOffset, Uint64))
|
||||
|
||||
for partyStruct > 0 {
|
||||
name := gd.Process.ReadStringFromMemory(partyStruct, 16)
|
||||
a := gd.Process.ReadUInt(partyStruct+0x5C, Uint32)
|
||||
|
||||
xPos := gd.Process.ReadUInt(partyStruct+0x60, Uint32)
|
||||
yPos := gd.Process.ReadUInt(partyStruct+0x64, Uint32)
|
||||
|
||||
roster = append(roster, data.RosterMember{
|
||||
Name: name,
|
||||
Area: area.Area(a),
|
||||
Position: data.Position{X: int(xPos), Y: int(yPos)},
|
||||
})
|
||||
partyStruct = uintptr(gd.Process.ReadUInt(partyStruct+0x148, Uint64))
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user