diff options
author | ariel- <ariel-@users.noreply.github.com> | 2017-04-14 16:45:45 -0300 |
---|---|---|
committer | ariel- <ariel-@users.noreply.github.com> | 2017-04-14 16:46:24 -0300 |
commit | 841bbd47d7e17a36c2558f99c2346678acb158c7 (patch) | |
tree | 60b176ffa455035fb8d80cd09c5077014fa468b8 /src | |
parent | abaa9d635a6c52f78ec5eb87a5a39890645d5649 (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.cpp | 12 |
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 |