aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2017-04-14 16:45:45 -0300
committerariel- <ariel-@users.noreply.github.com>2017-04-14 16:46:24 -0300
commit841bbd47d7e17a36c2558f99c2346678acb158c7 (patch)
tree60b176ffa455035fb8d80cd09c5077014fa468b8 /src
parentabaa9d635a6c52f78ec5eb87a5a39890645d5649 (diff)
Core/Entities: fix integer undeflow when calculating skill value difference
Closes #19455
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Unit/StatSystem.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp
index 023bfa74dc2..436740c6fe1 100644
--- a/src/server/game/Entities/Unit/StatSystem.cpp
+++ b/src/server/game/Entities/Unit/StatSystem.cpp
@@ -708,8 +708,8 @@ float Player::GetMissPercentageFromDefense() const
{
float diminishing = 0.0f, nondiminishing = 0.0f;
// Modify value from defense skill (only bonus from defense rating diminishes)
- nondiminishing += (GetSkillValue(SKILL_DEFENSE) - GetMaxSkillValueForLevel()) * 0.04f;
- diminishing += (int32(GetRatingBonusValue(CR_DEFENSE_SKILL))) * 0.04f;
+ nondiminishing += (int32(GetSkillValue(SKILL_DEFENSE)) - int32(GetMaxSkillValueForLevel())) * 0.04f;
+ diminishing += (GetRatingBonusValue(CR_DEFENSE_SKILL) * 0.04f);
// apply diminishing formula to diminishing miss chance
return CalculateDiminishingReturns(miss_cap, getClass(), nondiminishing, diminishing);
@@ -741,8 +741,8 @@ void Player::UpdateParryPercentage()
// Parry from rating
float diminishing = GetRatingBonusValue(CR_PARRY);
// Modify value from defense skill (only bonus from defense rating diminishes)
- nondiminishing += (GetSkillValue(SKILL_DEFENSE) - GetMaxSkillValueForLevel()) * 0.04f;
- diminishing += (int32(GetRatingBonusValue(CR_DEFENSE_SKILL))) * 0.04f;
+ nondiminishing += (int32(GetSkillValue(SKILL_DEFENSE)) - int32(GetMaxSkillValueForLevel())) * 0.04f;
+ diminishing += (GetRatingBonusValue(CR_DEFENSE_SKILL) * 0.04f);
// Parry from SPELL_AURA_MOD_PARRY_PERCENT aura
nondiminishing += GetTotalAuraModifier(SPELL_AURA_MOD_PARRY_PERCENT);
@@ -777,8 +777,8 @@ void Player::UpdateDodgePercentage()
float diminishing = 0.0f, nondiminishing = 0.0f;
GetDodgeFromAgility(diminishing, nondiminishing);
// Modify value from defense skill (only bonus from defense rating diminishes)
- nondiminishing += (GetSkillValue(SKILL_DEFENSE) - GetMaxSkillValueForLevel()) * 0.04f;
- diminishing += (int32(GetRatingBonusValue(CR_DEFENSE_SKILL))) * 0.04f;
+ nondiminishing += (int32(GetSkillValue(SKILL_DEFENSE)) - int32(GetMaxSkillValueForLevel())) * 0.04f;
+ diminishing += (GetRatingBonusValue(CR_DEFENSE_SKILL) * 0.04f);
// Dodge from SPELL_AURA_MOD_DODGE_PERCENT aura
nondiminishing += GetTotalAuraModifier(SPELL_AURA_MOD_DODGE_PERCENT);
// Dodge from rating