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