1
1
mirror of https://github.com/OpenDiablo2/OpenDiablo2 synced 2024-11-04 17:27:16 -05:00
OpenDiablo2/d2core/d2hero/hero_skill_util.go

22 lines
842 B
Go
Raw Normal View History

package d2hero
import "github.com/OpenDiablo2/OpenDiablo2/d2core/d2asset"
// HydrateSkills will load the SkillRecord & SkillDescriptionRecord from the asset manager, using the skill ID.
// This is done to avoid serializing the whole record data of HeroSkill to a game save or network packets.
// We cant do this while unmarshalling because there is no reference to the asset manager.
func HydrateSkills(skills map[int]*HeroSkill, asset *d2asset.AssetManager) {
for skillID := range skills {
heroSkill := skills[skillID]
2020-10-10 23:31:12 -04:00
// TODO: figure out why these are nil sometimes
if heroSkill == nil {
continue
}
heroSkill.SkillRecord = asset.Records.Skill.Details[skillID]
heroSkill.SkillDescriptionRecord = asset.Records.Skill.Descriptions[heroSkill.SkillRecord.Skilldesc]
heroSkill.SkillPoints = skills[skillID].SkillPoints
}
}