Make OpenMenus and Hover data accessible outside GetData() (#92)

Simply making openMenu and hoverData exposed like everything else in game_reader.go

to be used with koolo on demand  outside of  GetData()
This will improve openMenu and hover refresh by avoiding updating everything from GetData  when we only need light information.

Benefit:
Increase responsiveness of bot, reduce cpu usage by much

i already have the work done on koolo side waiting on this to be merged.
This commit is contained in:
elb
2025-03-24 03:05:59 -04:00
committed by GitHub
parent 169a765152
commit dba9a7b5a5
2 changed files with 5 additions and 5 deletions

View File

@@ -45,7 +45,7 @@ func (gd *GameReader) GetData() data.Data {
rawPlayerUnits := gd.GetRawPlayerUnits()
mainPlayerUnit := rawPlayerUnits.GetMainPlayer()
pu := gd.GetPlayerUnit(mainPlayerUnit)
hover := gd.hoveredData()
hover := gd.HoveredData()
now := time.Now()
@@ -78,7 +78,7 @@ func (gd *GameReader) GetData() data.Data {
// Always update other critical data
corpseUnit := rawPlayerUnits.GetCorpse()
roster := gd.getRoster(rawPlayerUnits)
openMenus := gd.openMenus()
openMenus := gd.OpenMenus()
// Quests
// q1 := uintptr(gd.Process.ReadUInt(gd.moduleBaseAddressPtr+0x22E2978, Uint64))
@@ -132,7 +132,7 @@ func (gd *GameReader) InGame() bool {
return player.UnitID > 0 && player.Position.X > 0 && player.Position.Y > 0 && player.Area > 0
}
func (gd *GameReader) openMenus() data.OpenMenus {
func (gd *GameReader) OpenMenus() data.OpenMenus {
uiBase := gd.Process.moduleBaseAddressPtr + gd.offset.UI - 0xA
buffer := gd.Process.ReadBytesFromMemory(uiBase, 0x16D)
@@ -163,7 +163,7 @@ func (gd *GameReader) openMenus() data.OpenMenus {
}
}
func (gd *GameReader) hoveredData() data.HoverData {
func (gd *GameReader) HoveredData() data.HoverData {
hoverAddressPtr := gd.Process.moduleBaseAddressPtr + gd.offset.Hover
hoverBuffer := gd.Process.ReadBytesFromMemory(hoverAddressPtr, 12)
isUnitHovered := ReadUIntFromBuffer(hoverBuffer, 0, Uint16)

View File

@@ -13,7 +13,7 @@ import (
func (gd *GameReader) GetRawPlayerUnits() RawPlayerUnits {
rawPlayerUnits := make(RawPlayerUnits, 0)
hover := gd.hoveredData()
hover := gd.HoveredData()
for i := 0; i < 128; i++ {
unitOffset := gd.offset.UnitTable + uintptr(i*8)
playerUnitAddr := gd.Process.moduleBaseAddressPtr + unitOffset