Add some memory reading stuff, based on many other open source projects

This commit is contained in:
Héctor Giménez
2023-03-11 22:08:18 +09:00
parent 80b4732f38
commit dde3cd19b0
16 changed files with 1056 additions and 6 deletions

27
pkg/memory/roster.go Normal file
View 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
}