From dba9a7b5a54f7b2dc904304e3022b81bd5fc4f94 Mon Sep 17 00:00:00 2001 From: elb <51070858+elobo91@users.noreply.github.com> Date: Mon, 24 Mar 2025 03:05:59 -0400 Subject: [PATCH] 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. --- pkg/memory/game_reader.go | 8 ++++---- pkg/memory/player.go | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/memory/game_reader.go b/pkg/memory/game_reader.go index d4135b8..73d79c1 100644 --- a/pkg/memory/game_reader.go +++ b/pkg/memory/game_reader.go @@ -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) diff --git a/pkg/memory/player.go b/pkg/memory/player.go index 32a01e4..d2267fe 100644 --- a/pkg/memory/player.go +++ b/pkg/memory/player.go @@ -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