D2Data and Quest data (#9)

This commit is contained in:
Héctor Giménez
2024-02-02 20:19:44 +09:00
committed by GitHub
parent f06c587c7a
commit db8fc7d6db
16 changed files with 25749 additions and 462 deletions

View File

@@ -160,23 +160,29 @@ func (gd *GameReader) GetPlayerUnit(playerUnit uintptr) data.PlayerUnit {
Skills: skills,
States: states,
Class: class,
LeftSkill: skill.Skill(leftSkillId),
RightSkill: skill.Skill(rightSkillId),
LeftSkill: skill.ID(leftSkillId),
RightSkill: skill.ID(rightSkillId),
AvailableWaypoints: availableWPs,
}
}
func (gd *GameReader) getSkills(skillListPtr uintptr) map[skill.Skill]int {
skills := make(map[skill.Skill]int)
func (gd *GameReader) getSkills(skillListPtr uintptr) map[skill.ID]skill.Points {
skills := make(map[skill.ID]skill.Points)
skillPtr := uintptr(gd.Process.ReadUInt(skillListPtr, Uint64))
for skillPtr != 0 {
skillTxtPtr := uintptr(gd.Process.ReadUInt(skillPtr, Uint64))
skillTxt := uintptr(gd.Process.ReadUInt(skillTxtPtr, Uint16))
skillLvl := gd.Process.ReadUInt(skillPtr+0x38, Uint16)
lvl := gd.Process.ReadUInt(skillPtr+0x38, Uint16)
quantity := gd.Process.ReadUInt(skillPtr+0x40, Uint16)
charges := gd.Process.ReadUInt(skillPtr+0x48, Uint16)
skills[skill.Skill(skillTxt)] = int(skillLvl)
skills[skill.ID(skillTxt)] = skill.Points{
Level: lvl,
Quantity: quantity,
Charges: charges,
}
skillPtr = uintptr(gd.Process.ReadUInt(skillPtr+0x08, Uint64))
}