Core/DBC: added cloak mask to armorMod and did some cleanup in ScalingStatValuesEntry

This commit is contained in:
kaelima
2012-03-16 08:56:06 +01:00
parent b23ff228a4
commit acb3fde355
+29 -26
View File
@@ -1393,60 +1393,63 @@ struct ScalingStatValuesEntry
uint32 ssdMultiplier[4]; // 2-5 Multiplier for ScalingStatDistribution uint32 ssdMultiplier[4]; // 2-5 Multiplier for ScalingStatDistribution
uint32 armorMod[4]; // 6-9 Armor for level uint32 armorMod[4]; // 6-9 Armor for level
uint32 dpsMod[6]; // 10-15 DPS mod for level uint32 dpsMod[6]; // 10-15 DPS mod for level
uint32 spellBonus; // 16 spell power for level uint32 spellPower; // 16 spell power for level
uint32 ssdMultiplier2; // 17 there's data from 3.1 dbc ssdMultiplier[3] uint32 ssdMultiplier2; // 17 there's data from 3.1 dbc ssdMultiplier[3]
uint32 ssdMultiplier3; // 18 3.3 uint32 ssdMultiplier3; // 18 3.3
//uint32 unk2; // 19 unk, probably also Armor for level (flag 0x80000?) uint32 armorMod2[5]; // 20-23 Armor for level
uint32 armorMod2[4]; // 20-23 Armor for level
uint32 getssdMultiplier(uint32 mask) const uint32 getssdMultiplier(uint32 mask) const
{ {
if (mask & 0x4001F) if (mask & 0x4001F)
{ {
if (mask & 0x00000001) return ssdMultiplier[0]; if (mask & 0x00000001) return ssdMultiplier[0]; // Shoulder
if (mask & 0x00000002) return ssdMultiplier[1]; if (mask & 0x00000002) return ssdMultiplier[1]; // Trinket
if (mask & 0x00000004) return ssdMultiplier[2]; if (mask & 0x00000004) return ssdMultiplier[2]; // Weapon1H
if (mask & 0x00000008) return ssdMultiplier2; if (mask & 0x00000008) return ssdMultiplier2;
if (mask & 0x00000010) return ssdMultiplier[3]; if (mask & 0x00000010) return ssdMultiplier[3]; // Ranged
if (mask & 0x00040000) return ssdMultiplier3; if (mask & 0x00040000) return ssdMultiplier3;
} }
return 0; return 0;
} }
uint32 getArmorMod(uint32 mask) const uint32 getArmorMod(uint32 mask) const
{ {
if (mask & 0x00F001E0) if (mask & 0x00F001E0)
{ {
if (mask & 0x00000020) return armorMod[0]; if (mask & 0x00000020) return armorMod[0]; // Cloth shoulder
if (mask & 0x00000040) return armorMod[1]; if (mask & 0x00000040) return armorMod[1]; // Leather shoulder
if (mask & 0x00000080) return armorMod[2]; if (mask & 0x00000080) return armorMod[2]; // Mail shoulder
if (mask & 0x00000100) return armorMod[3]; if (mask & 0x00000100) return armorMod[3]; // Plate shoulder
if (mask & 0x00100000) return armorMod2[0]; // cloth if (mask & 0x00080000) return armorMod2[0]; // cloak
if (mask & 0x00200000) return armorMod2[1]; // leather if (mask & 0x00100000) return armorMod2[1]; // cloth
if (mask & 0x00400000) return armorMod2[2]; // mail if (mask & 0x00200000) return armorMod2[2]; // leather
if (mask & 0x00800000) return armorMod2[3]; // plate if (mask & 0x00400000) return armorMod2[3]; // mail
if (mask & 0x00800000) return armorMod2[4]; // plate
} }
return 0; return 0;
} }
uint32 getDPSMod(uint32 mask) const uint32 getDPSMod(uint32 mask) const
{ {
if (mask&0x7E00) if (mask & 0x7E00)
{ {
if (mask & 0x00000200) return dpsMod[0]; if (mask & 0x00000200) return dpsMod[0]; // Weapon 1h
if (mask & 0x00000400) return dpsMod[1]; if (mask & 0x00000400) return dpsMod[1]; // Weapon 2h
if (mask & 0x00000800) return dpsMod[2]; if (mask & 0x00000800) return dpsMod[2]; // Caster dps 1h
if (mask & 0x00001000) return dpsMod[3]; if (mask & 0x00001000) return dpsMod[3]; // Caster dps 2h
if (mask & 0x00002000) return dpsMod[4]; if (mask & 0x00002000) return dpsMod[4]; // Ranged
if (mask & 0x00004000) return dpsMod[5]; // not used? if (mask & 0x00004000) return dpsMod[5]; // Wand
} }
return 0; return 0;
} }
uint32 getSpellBonus(uint32 mask) const uint32 getSpellBonus(uint32 mask) const
{ {
if (mask & 0x00008000) return spellBonus; if (mask & 0x00008000) return spellPower;
return 0; return 0;
} }
uint32 getFeralBonus(uint32 mask) const // removed in 3.2.x? uint32 getFeralBonus(uint32 mask) const // removed in 3.2.x?
{ {
if (mask & 0x00010000) return 0; // not used? if (mask & 0x00010000) return 0; // not used?
@@ -1982,7 +1985,7 @@ struct WorldMapAreaEntry
float x2; // 7 float x2; // 7
int32 virtual_map_id; // 8 -1 (map_id have correct map) other: virtual map where zone show (map_id - where zone in fact internally) int32 virtual_map_id; // 8 -1 (map_id have correct map) other: virtual map where zone show (map_id - where zone in fact internally)
// int32 dungeonMap_id; // 9 pointer to DungeonMap.dbc (owerride x1, x2, y1, y2 coordinates) // int32 dungeonMap_id; // 9 pointer to DungeonMap.dbc (owerride x1, x2, y1, y2 coordinates)
// uint32 someMapID; // 10 // uint32 parentMapID; // 10
}; };
#define MAX_WORLD_MAP_OVERLAY_AREA_IDX 4 #define MAX_WORLD_MAP_OVERLAY_AREA_IDX 4