struct BuildChatLink
{
std::uint8_t magic = 0xd;
std::uint8_t profession;
std::uint8_t specialization1;
std::uint8_t traitAdept1 : 2;
std::uint8_t traitMaster1 : 2;
std::uint8_t traitGrandmaster1 : 2;
std::uint8_t traitPadding1 : 2;
std::uint8_t specialization2;
std::uint8_t traitAdept2 : 2;
std::uint8_t traitMaster2 : 2;
std::uint8_t traitGrandmaster2 : 2;
std::uint8_t traitPadding2 : 2;
std::uint8_t specialization3;
std::uint8_t traitAdept3 : 2;
std::uint8_t traitMaster3 : 2;
std::uint8_t traitGrandmaster3 : 2;
std::uint8_t traitPadding3 : 2;
std::uint16_t terrestrialHealingSkillPalette;
std::uint16_t aquaticHealingSkillPalette;
std::uint16_t terrestrialUtilitySkillPalette1;
std::uint16_t aquaticUtilitySkillPalette1;
std::uint16_t terrestrialUtilitySkillPalette2;
std::uint16_t aquaticUtilitySkillPalette2;
std::uint16_t terrestrialUtilitySkillPalette3;
std::uint16_t aquaticUtilitySkillPalette3;
std::uint16_t terrestrialEliteSkillPalette;
std::uint16_t aquaticEliteSkillPalette;
union
{
struct
{
std::uint8_t terrestrialPet1;
std::uint8_t terrestrialPet2;
std::uint8_t aquaticPet1;
std::uint8_t aquaticPet2;
} ranger;
struct
{
std::uint8_t activeTerriestralLegend;
std::uint8_t inactiveTerrestrialLegend;
std::uint8_t activeAquaticLegend;
std::uint8_t inactiveAquaticLegend;
std::uint16_t inactiveTerrestrialLegendUtilitySkillPalette1;
std::uint16_t inactiveTerrestrialLegendUtilitySkillPalette2;
std::uint16_t inactiveTerrestrialLegendUtilitySkillPalette3;
std::uint16_t inactiveAquaticLegendUtilitySkillPalette1;
std::uint16_t inactiveAquaticLegendUtilitySkillPalette2;
std::uint16_t inactiveAquaticLegendUtilitySkillPalette3;
} revenant;
};
};