Refactor Checks (#39)

- Refactor IsInLobby
- Refactor IsInCharacterCreationScreen
- Refactor IsInCharacterSelectionScreen
This commit is contained in:
Arto Simonyan
2024-08-26 15:38:00 +03:00
committed by GitHub
parent ddeb350bee
commit 7ec2f584f5

View File

@@ -50,24 +50,24 @@ func (gd *GameReader) GetData() data.Data {
LastGamePassword: gd.LastGamePass(),
FPS: gd.FPS(),
},
Monsters: gd.Monsters(pu.Position, hover),
Corpses: gd.Corpses(pu.Position, hover),
PlayerUnit: pu,
Inventory: gd.Inventory(rawPlayerUnits, hover),
Objects: gd.Objects(pu.Position, hover),
OpenMenus: gd.openMenus(),
Widgets: gd.UpdateWidgets(),
Roster: roster,
HoverData: hover,
TerrorZones: gd.TerrorZones(),
Quests: gd.getQuests(gameQuestsBytes),
KeyBindings: gd.GetKeyBindings(),
LegacyGraphics: gd.LegacyGraphics(),
IsOnline: gd.IsOnline(),
IsIngame: gd.IsIngame(),
IsInCharCreationScreen: gd.IsInCharacterCreationScreen(),
//IsInLobby: gd.IsInLobby(),
//IsInCharSelectionScreen: gd.IsInCharacterSelectionScreen(),
Monsters: gd.Monsters(pu.Position, hover),
Corpses: gd.Corpses(pu.Position, hover),
PlayerUnit: pu,
Inventory: gd.Inventory(rawPlayerUnits, hover),
Objects: gd.Objects(pu.Position, hover),
OpenMenus: gd.openMenus(),
Widgets: gd.UpdateWidgets(),
Roster: roster,
HoverData: hover,
TerrorZones: gd.TerrorZones(),
Quests: gd.getQuests(gameQuestsBytes),
KeyBindings: gd.GetKeyBindings(),
LegacyGraphics: gd.LegacyGraphics(),
IsOnline: gd.IsOnline(),
IsIngame: gd.IsIngame(),
IsInCharCreationScreen: gd.IsInCharacterCreationScreen(),
IsInLobby: gd.IsInLobby(),
IsInCharSelectionScreen: gd.IsInCharacterSelectionScreen(),
}
return d
@@ -215,27 +215,40 @@ func (gd *GameReader) IsIngame() bool {
return gd.ReadUInt(gd.moduleBaseAddressPtr+0x22D5D78, 1) == 1
}
/*
func (gd *GameReader) IsInLobby() bool {
return gd.ReadUInt(gd.moduleBaseAddressPtr+0x21CF488, 1) == 1
widgets := gd.UpdateWidgets()
if lobbyWidget, found := widgets["LobbyBackgroundPanel"]; found {
return lobbyWidget["WidgetActive"].(bool) && lobbyWidget["WidgetVisible"].(bool)
}
return false
}
func (gd *GameReader) IsInCharacterSelectionScreen() bool {
return gd.ReadUInt(gd.moduleBaseAddressPtr+0x1DC7276, 1) != 0
widgets := gd.UpdateWidgets()
if csWidget, found := widgets["CharacterSelectPanel"]; found {
return csWidget["WidgetActive"].(bool) && csWidget["WidgetVisible"].(bool)
}
return false
}
*/
func (gd *GameReader) IsInCharacterCreationScreen() bool {
// Dont use this ;)
// This will bug out if you switch to legacy graphics in the character select screen and return 1 until you go back to character screen with d2r graphics
return gd.ReadUInt(gd.moduleBaseAddressPtr+0x234A1CE, 1) == 1
widgets := gd.UpdateWidgets()
if ccWidget, found := widgets["CharacterCreatePanel"]; found {
return ccWidget["WidgetActive"].(bool) && ccWidget["WidgetVisible"].(bool)
}
return false
}
func (gd *GameReader) LastGameName() string {
// outdated
return gd.ReadStringFromMemory(gd.moduleBaseAddressPtr+0x29DBD10+0x8, 0)
}
func (gd *GameReader) LastGamePass() string {
// outdated
return gd.ReadStringFromMemory(gd.moduleBaseAddressPtr+0x29DBD10+0x60, 0)
}