aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellInfo.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2019-06-03 20:40:34 +0200
committerShauren <shauren.trinity@gmail.com>2019-06-08 17:06:57 +0200
commit455959c6064af6f7863a6b4b57cb0ef1646bd8ef (patch)
tree7d7a7cdd3a44643ee5fc7d19521ced1c8b815c66 /src/server/game/Spells/SpellInfo.cpp
parent31fda79556e55375962a3c9e46f6dbdbf6e90d18 (diff)
Core/PacketIO: Rewrite updatefield handling
Diffstat (limited to 'src/server/game/Spells/SpellInfo.cpp')
-rw-r--r--src/server/game/Spells/SpellInfo.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index 8cab2192fff..369fc1731df 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -3892,10 +3892,10 @@ std::vector<SpellPowerCost> SpellInfo::CalcPowerCost(Unit const* caster, SpellSc
inline float CalcPPMHasteMod(SpellProcsPerMinuteModEntry const* mod, Unit* caster)
{
- float haste = caster->GetFloatValue(UNIT_FIELD_MOD_HASTE);
- float rangedHaste = caster->GetFloatValue(UNIT_FIELD_MOD_RANGED_HASTE);
- float spellHaste = caster->GetFloatValue(UNIT_MOD_CAST_HASTE);
- float regenHaste = caster->GetFloatValue(UNIT_FIELD_MOD_HASTE_REGEN);
+ float haste = caster->m_unitData->ModHaste;
+ float rangedHaste = caster->m_unitData->ModRangedHaste;
+ float spellHaste = caster->m_unitData->ModSpellHaste;
+ float regenHaste = caster->m_unitData->ModHasteRegen;
switch (mod->Param)
{
@@ -3918,12 +3918,13 @@ inline float CalcPPMHasteMod(SpellProcsPerMinuteModEntry const* mod, Unit* caste
inline float CalcPPMCritMod(SpellProcsPerMinuteModEntry const* mod, Unit* caster)
{
- if (caster->GetTypeId() != TYPEID_PLAYER)
+ Player const* player = caster->ToPlayer();
+ if (!player)
return 0.0f;
- float crit = caster->GetFloatValue(ACTIVE_PLAYER_FIELD_CRIT_PERCENTAGE);
- float rangedCrit = caster->GetFloatValue(ACTIVE_PLAYER_FIELD_RANGED_CRIT_PERCENTAGE);
- float spellCrit = caster->GetFloatValue(ACTIVE_PLAYER_FIELD_SPELL_CRIT_PERCENTAGE1);
+ float crit = player->m_activePlayerData->CritPercentage;
+ float rangedCrit = player->m_activePlayerData->RangedCritPercentage;
+ float spellCrit = player->m_activePlayerData->SpellCritPercentage;
switch (mod->Param)
{
@@ -3984,7 +3985,7 @@ float SpellInfo::CalcProcPPM(Unit* caster, int32 itemLevel) const
case SPELL_PPM_MOD_SPEC:
{
if (Player* plrCaster = caster->ToPlayer())
- if (plrCaster->GetInt32Value(PLAYER_FIELD_CURRENT_SPEC_ID) == mod->Param)
+ if (plrCaster->GetPrimarySpecialization() == uint32(mod->Param))
ppm *= 1.0f + mod->Coeff;
break;
}