Scaling stats fix.

This commit is contained in:
tomrus88 2009-08-30 19:41:21 +04:00
parent 9c8a0d615e
commit d87911303e

View file

@ -1171,10 +1171,11 @@ 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 not sure.. TODO: need more info about uint32 spellBonus; // 16 spell power for level
uint32 feralBonus; // 17 Feral AP bonus (there's data from 3.1 ssdMultiplier[3]) uint32 ssdMultiplier2; // 17 there's data from 3.1 dbc ssdMultiplier[3]
//uint32 unk1; // 18 all zero's //uint32 unk1; // 18 all fields equal to 0
//uint32 unk2[5]; // 19-23 3.2 new feral bonus? //uint32 unk2; // 19 unk, probably also Armor for level
uint32 armorMod2[4]; // 20-23 Armor for level
uint32 getssdMultiplier(uint32 mask) const uint32 getssdMultiplier(uint32 mask) const
{ {
@ -1183,19 +1184,25 @@ struct ScalingStatValuesEntry
if(mask & 0x00000001) return ssdMultiplier[0]; if(mask & 0x00000001) return ssdMultiplier[0];
if(mask & 0x00000002) return ssdMultiplier[1]; if(mask & 0x00000002) return ssdMultiplier[1];
if(mask & 0x00000004) return ssdMultiplier[2]; if(mask & 0x00000004) return ssdMultiplier[2];
if(mask & 0x00000008) return feralBonus; if(mask & 0x00000008) return ssdMultiplier2;
if(mask & 0x00000010) return ssdMultiplier[3]; if(mask & 0x00000010) return ssdMultiplier[3];
} }
return 0; return 0;
} }
uint32 getArmorMod(uint32 mask) const uint32 getArmorMod(uint32 mask) const
{ {
if (mask & 0x01E0) if (mask & 0x00F001E0)
{ {
if(mask & 0x00000020) return armorMod[0]; if(mask & 0x00000020) return armorMod[0];
if(mask & 0x00000040) return armorMod[1]; if(mask & 0x00000040) return armorMod[1];
if(mask & 0x00000080) return armorMod[2]; if(mask & 0x00000080) return armorMod[2];
if(mask & 0x00000100) return armorMod[3]; if(mask & 0x00000100) return armorMod[3];
if(mask & 0x00100000) return armorMod2[0]; // cloth
if(mask & 0x00200000) return armorMod2[1]; // leather
if(mask & 0x00400000) return armorMod2[2]; // mail
if(mask & 0x00800000) return armorMod2[3]; // plate
} }
return 0; return 0;
} }
@ -1209,7 +1216,7 @@ struct ScalingStatValuesEntry
if(mask & 0x00000800) return dpsMod[2]; if(mask & 0x00000800) return dpsMod[2];
if(mask & 0x00001000) return dpsMod[3]; if(mask & 0x00001000) return dpsMod[3];
if(mask & 0x00002000) return dpsMod[4]; if(mask & 0x00002000) return dpsMod[4];
if(mask & 0x00004000) return dpsMod[5]; if(mask & 0x00004000) return dpsMod[5]; // not used?
} }
return 0; return 0;
} }
@ -1221,10 +1228,10 @@ struct ScalingStatValuesEntry
return 0; return 0;
} }
uint32 getFeralBonus(uint32 mask) const uint32 getFeralBonus(uint32 mask) const // removed in 3.2.x?
{ {
if (mask & 0x00010000) if (mask & 0x00010000) // not used?
return feralBonus; return 0;
return 0; return 0;
} }
}; };