aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Unit/Unit.h4
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp2
-rw-r--r--src/server/game/Spells/Auras/SpellAuras.cpp3
-rw-r--r--src/server/game/Spells/Spell.cpp3
-rw-r--r--src/server/game/Spells/Spell.h2
5 files changed, 9 insertions, 5 deletions
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index 1e76a1ffa2c..f63326e801f 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -71,13 +71,13 @@ enum SpellModOp : uint8
SPELLMOD_RESIST_DISPEL_CHANCE = 28,
SPELLMOD_CRIT_DAMAGE_BONUS_2 = 29, //one not used spell
SPELLMOD_SPELL_COST_REFUND_ON_FAIL = 30,
- SPELLMOD_STACK_AMOUNT = 31, // has no effect on tooltip parsing
+ SPELLMOD_STACK_AMOUNT = 31,
SPELLMOD_EFFECT4 = 32,
SPELLMOD_EFFECT5 = 33,
SPELLMOD_SPELL_COST2 = 34, // Used when SpellPowerEntry::PowerIndex == 1
SPELLMOD_JUMP_DISTANCE = 35,
// spellmod 36
- SPELLMOD_STACK_AMOUNT2 = 37, // same as SPELLMOD_STACK_AMOUNT but affects tooltips
+ SPELLMOD_MAX_STACK_AMOUNT = 37,
// spellmod 38
SPELLMOD_SPELL_COST3 = 39
};
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index 077bbdaf771..9a12e7e95bc 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -6308,7 +6308,7 @@ void AuraEffect::HandleLinkedSummon(AuraApplication const* aurApp, uint8 mode, b
}
}
-void AuraEffect::HandleSetFFAPvP(AuraApplication const* aurApp, uint8 mode, bool apply) const
+void AuraEffect::HandleSetFFAPvP(AuraApplication const* aurApp, uint8 mode, bool /*apply*/) const
{
if (!(mode & AURA_EFFECT_HANDLE_REAL))
return;
diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp
index f90a5431856..6b692da440a 100644
--- a/src/server/game/Spells/Auras/SpellAuras.cpp
+++ b/src/server/game/Spells/Auras/SpellAuras.cpp
@@ -934,7 +934,8 @@ uint32 Aura::CalcMaxStackAmount() const
int32 maxStackAmount = m_spellInfo->StackAmount;
if (Unit* caster = GetCaster())
if (Player* modOwner = caster->GetSpellModOwner())
- modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_STACK_AMOUNT2, maxStackAmount);
+ modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_MAX_STACK_AMOUNT, maxStackAmount);
+
return maxStackAmount;
}
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index c280d0a4e4b..3bd414dc378 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -549,6 +549,9 @@ m_spellValue(new SpellValue(m_spellInfo, caster)), _spellEvent(nullptr)
if (Item* pItem = m_caster->ToPlayer()->GetWeaponForAttack(RANGED_ATTACK))
m_spellSchoolMask = SpellSchoolMask(1 << pItem->GetTemplate()->GetDamageType());
+ if (Player const* modOwner = caster->GetSpellModOwner())
+ modOwner->ApplySpellMod(info->Id, SPELLMOD_STACK_AMOUNT, m_spellValue->AuraStackAmount, this);
+
if (!originalCasterGUID.IsEmpty())
m_originalCasterGUID = originalCasterGUID;
else
diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h
index 0f67bb6915a..d59c3201c51 100644
--- a/src/server/game/Spells/Spell.h
+++ b/src/server/game/Spells/Spell.h
@@ -304,7 +304,7 @@ struct SpellValue
uint32 CustomBasePointsMask;
uint32 MaxAffectedTargets;
float RadiusMod;
- uint8 AuraStackAmount;
+ int32 AuraStackAmount;
};
enum SpellState