DB/HelmetGeosetVisData: Difference between revisions

From wowdev
Jump to navigation Jump to search
mNo edit summary
(Removed old obvious observations, keeping only the important notes. Also mentioned that this was replaced.)
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Used for hiding certain elements of the face on certain races for certain helmets. The exact workings of this has yet to be discovered, however you can get a general idea of how this works with the information below.  
Used for hiding certain elements of the face on certain races for certain helmets.


Observations (by [[User:Ascathos|Ascathos]] 14:25, 24 March 2013 (UTC))
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)
* Race- and gender-specific values/flags
Every id is universal for both genders. That's why every helmet in ItemDisplayInfo has 2 values for HelmetGeosetVisData.
* Contains negative and positive values
* Seem like bitmasks (Value = 1 << (ID - 1))


In Patch 8.1.5, it was replaced with [[DB/HelmetGeosetData|HelmetGeosetData.db2]], which contains the same data but in a much more straightforward way. The main reason they switched is because they were no longer able to fit ChrRaces' rows into a 32-bit bitmask.
==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==
==Structure==
{| style="background:#FCFCFC; color:black"
{| style="background:#FCFCFC; color:black"
Line 16: Line 30:
| 1  || ID || Integer ||  
| 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.
| 2  || HairFlags || Integer ||
|-  
|-  
| 3  || Facial1Flags || Integer || (Beard, Tusks)
| 3  || Facial1Flags || Integer || (Beard, Tusks)
Line 34: Line 48:
  struct HelmetGeosetVisDataRec {
  struct HelmetGeosetVisDataRec {
   uint32_t m_ID;
   uint32_t m_ID;
   uint32_t m_hideGeoset[7];
   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];
  };
  };
[[Category:DBC]][[Category:3.0.2.8905]][[Category:DBC_WotLK]]
[[Category:DBC]]
[[Category:DBC_Alpha]]
[[Category:DBC_Vanilla]]
[[Category:3.0.2.8905]][[Category:DBC_WotLK]]
[[Category:DBC_WoD]][[Category:6.0.1.18179]]
[[Category:DBC_WoD]][[Category:6.0.1.18179]]

Revision as of 07:20, 1 June 2019

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

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) Every id is universal for both genders. That's why every helmet in ItemDisplayInfo has 2 values for HelmetGeosetVisData.

In Patch 8.1.5, it was replaced with HelmetGeosetData.db2, which contains the same data but in a much more straightforward way. The main reason they switched is because they were no longer able to fit ChrRaces' rows into a 32-bit bitmask.

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
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];
};