DB/ItemSubClass

From wowdev
Revision as of 11:10, 20 November 2018 by Barncastle (talk | contribs) (→‎m_displayFlags: official names)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

0.5.3.3368, 1.12.1.5875

struct ItemSubClassRec {
  uint32_t m_classID;
  uint32_t m_subClassID;
  uint32_t m_prerequisiteProficiency;
  uint32_t m_postrequisiteProficiency;
  uint32_t m_flags;
  uint32_t m_displayFlags;
  uint32_t m_weaponParrySeq;     // index into s_anims_parry, WEAPONPARRYSEQ enum
  uint32_t m_weaponReadySeq;     // index into s_anims_ready, WEAPONREADYSEQ enum
  uint32_t m_weaponAttackSeq;    // index into s_anims_attack, WEAPONATTACKSEQ enum
  uint32_t m_WeaponSwingSize;    // match with WeaponSwingSounds2Rec::m_SwingType
  langstringref m_displayName_lang;
  langstringref m_verboseName_lang;
};

enum WEAPONSWING_SOUNDTYPES
{
  WEAPONSWING_LIGHT = 0x0,
  WEAPONSWING_MEDIUM = 0x1,
  WEAPONSWING_HEAVY = 0x2,
  NUM_WEAPONSWINGSOUNDTYPES = 0x3,
  WEAPONSWING_UNUSED = 0xFFFFFFFF,
};

ANIMENUMERATION s_anims_parry[4] = { ANIM_PARRY2HTIGHT, ANIM_PARRY2HLOOSE, ANIM_PARRY1H, ANIM_STAND };
ANIMENUMERATION s_anims_ready[6] = { ANIM_READY2HTIGHT, ANIM_READY2HLOOSE, ANIM_READY1H, ANIM_READYBOW, ANIM_READYRIFLE, ANIM_READYTHROWN };
ANIMENUMERATION s_anims_attack[6] = { ANIM_ATTACK2HTIGHT, ANIM_ATTACK2HLOOSE, ANIM_ATTACKBOW, ANIM_ATTACK1H, ANIM_ATTACKRIFLE, ANIM_ATTACKTHROWN };

Structure

Column	Field 				Type 		Notes 
1 	iRefID_ItemClass 		Integer 	
2 	subClassID 			Integer 	Index, non-unique, type. 
3 	prerequisiteProficiency 	Integer 	
4 	postrequisiteProficiency 	Integer	 	
5 	flags 				Integer	 	
6 	displayFlags 			Integer 	
7 	weaponParrySeq 			Integer 	
8 	weaponReadySeq 			Integer 	
9 	weaponAttackSeq 		Integer 	
10 	WeaponSwingSize 		Integer 	Melee slots required. 
11-27 	displayName 			String + Loc
28-44 	verboseName 			String + Loc

6.0.1.18179

struct ItemSubClassRec {
  uint8_t padding_0[4];
  foreign_key<uint32_t, &ItemClassRec::m_classID> m_classID;
  uint32_t m_subClassID;
  uint32_t m_prerequisiteProficiency;
  uint32_t m_postrequisiteProficiency;
  uint32_t m_flags;
  uint32_t m_displayFlags;
  uint32_t m_weaponParrySeq;
  uint32_t m_weaponReadySeq;
  uint32_t m_weaponAttackSeq;
  uint32_t m_WeaponSwingSize;                                         // match with WeaponSwingSounds2Rec::m_SwingType
  langstringref m_displayName_lang;
  langstringref m_verboseName_lang;
};

m_flags

enum {
  flag_melee = 0x1,
  flag_affect_hand_state = 0x2,                 // ClientDBWeaponSubclassSetsFingerSeq
  flag_unarmed = 0x4,                           // is the default unarmed subclass
  flag_forcealternate = 0x20,                   // CGPlayer_C::AttachObjComponent  CGUnit_C::AttachVirtualComponent 
  flag_skip_reagent_subclass_check = 0x40,      // Spell_C_HaveEquippedSpellItems : skips item subclass validation for spell reagents
  flag_unk_0x200 = 0x200,                       // Script_GetAuctionInvTypes
};

m_displayFlags

enum {
  HideSubClassInTooltip = 1,      // CGContainerInfo::IsSearchFiltered, SendItemInfo, PreVanilla (0.5.3.3368) excludes m_displayName_lang from tooltips
  HideSubClassInAuction = 2,      // Script_QueryAuctionItems, Script_GetDetailColumnString, Script_GetAuctionItemSubClasses, Script_GetAuctionInvTypes
  ShowItemCount = 4,              // Script_GetInventoryItemCount
};