DB/HelmetGeosetVisData

From wowdev
Revision as of 12:14, 10 October 2018 by Malice6731 (talk | contribs)
Jump to navigation Jump to search

Used for hiding certain elements of the face on certain races for certain helmets.

Observations (by Ascathos 14:25, 24 March 2013 (UTC))

  • Race- and gender-specific values/flags
  • Seem like bitmasks (Value = 1 << (ID - 1))

Flag fields are all race bitmask. If ((flag & (1 << race)) > 0) is true, the mesh group will reset to default value: 1, 101, 201 etc(the connection between field and mesh group is given below) Deamon (talk)


Some clarifications on 3.3.5a+ structure:

  • Every column is a 32bit vector integer data. Starting from 0 to 21.
  • Every id is kinda universal for both genders. That's why every helmet in ItemDisplayInfo has 2 values for HelmetGeosetVisData.

Use Enum flags to decode your 32bit vector and get data. Malice (talk)


0.5.3.3368

struct HelmetGeosetVisDataRec {
  uint32_t m_ID;
  uint32_t m_DefaultFlags[32];
  uint32_t m_PreferredFlags[32];
  uint32_t m_HideFlags[32];
};

1.12.1.5875

struct HelmetGeosetVisDataRec {
  uint32_t m_ID;
  uint32_t hairFlags;
  uint32_t facialFlags[3];
  uint32_t earsFlags;
};

Structure

Column Field Type Notes
1 ID Integer
2 HairFlags Integer 0 = show, anything else = don't show? eg: a value of 1020 won't hide night elf ears, but 999999 or -1 will.
3 Facial1Flags Integer (Beard, Tusks)
4 Facial2Flags Integer (Earrings)
5 Facial3Flags Integer See ChrRaces, column 24 to 26 for information on what is what.
6 EarsFlags Integer
7 Unknown Integer
8 Unknown Integer

6.0.1.18179

struct HelmetGeosetVisDataRec {
  uint32_t m_ID;
  uint32_t m_hideGeoset[7]; // groups 0, 100, 200, 300, 700, 1600, 1700, Legion: +2400, 2500
};

8.0.1.25902

struct HelmetGeosetVisDataRec {
  // uint32_t m_ID;
  uint32_t m_hideGeoset[9];
};