Add class data and more menu detection
This commit is contained in:
@@ -104,7 +104,17 @@ type Level struct {
|
|||||||
CanInteract bool
|
CanInteract bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type Class string
|
type Class uint
|
||||||
|
|
||||||
|
const (
|
||||||
|
Amazon Class = iota
|
||||||
|
Sorceress
|
||||||
|
Necromancer
|
||||||
|
Paladin
|
||||||
|
Barbarian
|
||||||
|
Druid
|
||||||
|
Assassin
|
||||||
|
)
|
||||||
|
|
||||||
type Corpse struct {
|
type Corpse struct {
|
||||||
Found bool
|
Found bool
|
||||||
@@ -124,6 +134,7 @@ type PlayerUnit struct {
|
|||||||
Stats map[stat.ID]int
|
Stats map[stat.ID]int
|
||||||
Skills map[skill.Skill]int
|
Skills map[skill.Skill]int
|
||||||
States state.States
|
States state.States
|
||||||
|
Class Class
|
||||||
}
|
}
|
||||||
|
|
||||||
func (pu PlayerUnit) MaxGold() int {
|
func (pu PlayerUnit) MaxGold() int {
|
||||||
@@ -205,4 +216,6 @@ type OpenMenus struct {
|
|||||||
Stash bool
|
Stash bool
|
||||||
Waypoint bool
|
Waypoint bool
|
||||||
MapShown bool
|
MapShown bool
|
||||||
|
SkillTree bool
|
||||||
|
Character bool
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,6 +69,8 @@ func (gd *GameReader) openMenus() data.OpenMenus {
|
|||||||
Stash: buffer[0x18] != 0,
|
Stash: buffer[0x18] != 0,
|
||||||
Waypoint: buffer[0x13] != 0,
|
Waypoint: buffer[0x13] != 0,
|
||||||
MapShown: isMapShown != 0,
|
MapShown: isMapShown != 0,
|
||||||
|
SkillTree: buffer[0x04] != 0,
|
||||||
|
Character: buffer[0x02] != 0,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -116,6 +116,9 @@ func (gd *GameReader) GetPlayerUnit(playerUnit uintptr) data.PlayerUnit {
|
|||||||
// Skills
|
// Skills
|
||||||
skills := gd.getSkills(playerUnit + 0x100)
|
skills := gd.getSkills(playerUnit + 0x100)
|
||||||
|
|
||||||
|
// Class
|
||||||
|
class := data.Class(gd.Process.ReadUInt(playerUnit+0x174, Uint32))
|
||||||
|
|
||||||
// Level number
|
// Level number
|
||||||
pathPtr := uintptr(gd.Process.ReadUInt(playerUnit+0x38, Uint64))
|
pathPtr := uintptr(gd.Process.ReadUInt(playerUnit+0x38, Uint64))
|
||||||
room1Ptr := uintptr(gd.Process.ReadUInt(pathPtr+0x20, Uint64))
|
room1Ptr := uintptr(gd.Process.ReadUInt(pathPtr+0x20, Uint64))
|
||||||
@@ -133,6 +136,7 @@ func (gd *GameReader) GetPlayerUnit(playerUnit uintptr) data.PlayerUnit {
|
|||||||
Stats: stats,
|
Stats: stats,
|
||||||
Skills: skills,
|
Skills: skills,
|
||||||
States: states,
|
States: states,
|
||||||
|
Class: class,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user