From 00658632de74ac4b760c8d4e36b1826065844ca2 Mon Sep 17 00:00:00 2001 From: Alex King <89047260+Kinglykrab@users.noreply.github.com> Date: Sun, 15 Jan 2023 17:02:13 -0500 Subject: [PATCH] [Cleanup] Make use of std::abs where possible. (#2739) # Notes - Resolves https://github.com/EQEmu/Server/issues/338 --- zone/effects.cpp | 42 +++++++++++++++++++++++------------------- zone/spell_effects.cpp | 14 +++++++------- zone/zone.cpp | 6 +++--- 3 files changed, 33 insertions(+), 29 deletions(-) diff --git a/zone/effects.cpp b/zone/effects.cpp index 774cc4b3b..86a5c847f 100644 --- a/zone/effects.cpp +++ b/zone/effects.cpp @@ -285,33 +285,37 @@ int64 Mob::GetActDoTDamage(uint16 spell_id, int64 value, Mob* target, bool from_ int64 Mob::GetExtraSpellAmt(uint16 spell_id, int64 extra_spell_amt, int64 base_spell_dmg) { if (RuleB(Spells, FlatItemExtraSpellAmt)) { - if (RuleB(Spells, ItemExtraSpellAmtCalcAsPercent)) - return abs(base_spell_dmg)*extra_spell_amt/100; - else + if (RuleB(Spells, ItemExtraSpellAmtCalcAsPercent)) { + return std::abs(base_spell_dmg) * extra_spell_amt / 100; + } else { return extra_spell_amt; + } } int total_cast_time = 0; - if (spells[spell_id].recast_time >= spells[spell_id].recovery_time) - total_cast_time = spells[spell_id].recast_time + spells[spell_id].cast_time; - else + if (spells[spell_id].recast_time >= spells[spell_id].recovery_time) { + total_cast_time = spells[spell_id].recast_time + spells[spell_id].cast_time; + } else { total_cast_time = spells[spell_id].recovery_time + spells[spell_id].cast_time; - - if (total_cast_time > 0 && total_cast_time <= 2500) - extra_spell_amt = extra_spell_amt*25/100; - else if (total_cast_time > 2500 && total_cast_time < 7000) - extra_spell_amt = extra_spell_amt*(167*((total_cast_time - 1000)/1000)) / 1000; - else - extra_spell_amt = extra_spell_amt * total_cast_time / 7000; - - //Confirmed with parsing 10/9/21 ~Kayen - if (extra_spell_amt * 2 > abs(base_spell_dmg)) { - extra_spell_amt = abs(base_spell_dmg) / 2; } - if (RuleB(Spells, ItemExtraSpellAmtCalcAsPercent)) - return abs(base_spell_dmg)*extra_spell_amt/100; + if (total_cast_time > 0 && total_cast_time <= 2500) { + extra_spell_amt = extra_spell_amt * 25 / 100; + } else if (total_cast_time > 2500 && total_cast_time < 7000) { + extra_spell_amt = extra_spell_amt * (167 * ((total_cast_time - 1000) / 1000)) / 1000; + } else { + extra_spell_amt = extra_spell_amt * total_cast_time / 7000; + } + + //Confirmed with parsing 10/9/21 ~Kayen + if (extra_spell_amt * 2 > std::abs(base_spell_dmg)) { + extra_spell_amt = std::abs(base_spell_dmg) / 2; + } + + if (RuleB(Spells, ItemExtraSpellAmtCalcAsPercent)) { + return std::abs(base_spell_dmg) * extra_spell_amt / 100; + } return extra_spell_amt; } diff --git a/zone/spell_effects.cpp b/zone/spell_effects.cpp index eca9a59d5..ed1ee0fdd 100644 --- a/zone/spell_effects.cpp +++ b/zone/spell_effects.cpp @@ -2864,7 +2864,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove case SE_Instant_Mana_Pct: { effect_value = spells[spell_id].base_value[i]; - int64 amt = abs(GetMaxMana() * effect_value / 10000); + int64 amt = std::abs(GetMaxMana() * effect_value / 10000); if (spells[spell_id].max_value[i] && amt > spells[spell_id].max_value[i]) amt = spells[spell_id].max_value[i]; @@ -2880,7 +2880,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove case SE_Instant_Endurance_Pct: { effect_value = spells[spell_id].base_value[i]; if (IsClient()) { - int32 amt = abs(CastToClient()->GetMaxEndurance() * effect_value / 10000); + int32 amt = std::abs(CastToClient()->GetMaxEndurance() * effect_value / 10000); if (spells[spell_id].max_value[i] && amt > spells[spell_id].max_value[i]) amt = spells[spell_id].max_value[i]; @@ -2899,7 +2899,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove */ case SE_Health_Transfer: { effect_value = spells[spell_id].limit_value[i]; - int64 amt = abs(caster->GetMaxHP() * effect_value / 1000); + int64 amt = std::abs(caster->GetMaxHP() * effect_value / 1000); if (effect_value < 0) { Damage(caster, amt, spell_id, spell.skill, false, buffslot, false); @@ -4059,7 +4059,7 @@ void Mob::DoBuffTic(const Buffs_Struct &buff, int slot, Mob *caster) case SE_Duration_HP_Pct: { effect_value = spells[buff.spellid].base_value[i]; - int64 amt = abs(GetMaxHP() * effect_value / 100); + int64 amt = std::abs(GetMaxHP() * effect_value / 100); if (spells[buff.spellid].max_value[i] && amt > spells[buff.spellid].max_value[i]) amt = spells[buff.spellid].max_value[i]; @@ -4074,7 +4074,7 @@ void Mob::DoBuffTic(const Buffs_Struct &buff, int slot, Mob *caster) case SE_Duration_Mana_Pct: { effect_value = spells[buff.spellid].base_value[i]; - int32 amt = abs(GetMaxMana() * effect_value / 100); + int32 amt = std::abs(GetMaxMana() * effect_value / 100); if (spells[buff.spellid].max_value[i] && amt > spells[buff.spellid].max_value[i]) amt = spells[buff.spellid].max_value[i]; @@ -4092,7 +4092,7 @@ void Mob::DoBuffTic(const Buffs_Struct &buff, int slot, Mob *caster) effect_value = spells[buff.spellid].base_value[i]; if (IsClient()) { - int32 amt = abs(CastToClient()->GetMaxEndurance() * effect_value / 100); + int32 amt = std::abs(CastToClient()->GetMaxEndurance() * effect_value / 100); if (spells[buff.spellid].max_value[i] && amt > spells[buff.spellid].max_value[i]) amt = spells[buff.spellid].max_value[i]; @@ -6390,7 +6390,7 @@ int64 Mob::GetFocusEffect(focusType type, uint16 spell_id, Mob *caster, bool fro if (!ins) { continue; } - + TempItem = ins->GetItem(); if (TempItem && TempItem->Focus.Effect > 0 && TempItem->Focus.Effect != SPELL_UNKNOWN) { if(rand_effectiveness) { diff --git a/zone/zone.cpp b/zone/zone.cpp index d0c6ab3e0..bd1b5d973 100644 --- a/zone/zone.cpp +++ b/zone/zone.cpp @@ -2768,9 +2768,9 @@ void Zone::CalculateNpcUpdateDistanceSpread() } } - int x_spread = int(abs(max_x - min_x)); - int y_spread = int(abs(max_y - min_y)); - int combined_spread = int(abs((x_spread + y_spread) / 2)); + int x_spread = int(std::abs(max_x - min_x)); + int y_spread = int(std::abs(max_y - min_y)); + int combined_spread = int(std::abs((x_spread + y_spread) / 2)); int update_distance = EQ::ClampLower(int(combined_spread / 4), int(zone->GetMaxMovementUpdateRange())); SetNpcPositionUpdateDistance(update_distance);