aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Spells
diff options
context:
space:
mode:
authorjoschiwald <joschiwald.trinity@gmail.com>2014-12-29 01:00:16 +0100
committerjoschiwald <joschiwald.trinity@gmail.com>2014-12-29 01:00:16 +0100
commit9ecc578cb187cc1ae0fd454883dab0cd058d3807 (patch)
tree6322b594c6ff6958de870dc5b4f0effee1f6e5c7 /src/server/scripts/Spells
parent21360bb50c6a1390fbeb51c9c27bb0823ad0f252 (diff)
Core/Scripts: multiple changes
- fixed non pch build - fixed some warnings - fixed some coverity issues - some random things here and there
Diffstat (limited to 'src/server/scripts/Spells')
-rw-r--r--src/server/scripts/Spells/spell_dk.cpp5
-rw-r--r--src/server/scripts/Spells/spell_druid.cpp2
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp30
-rw-r--r--src/server/scripts/Spells/spell_item.cpp2
-rw-r--r--src/server/scripts/Spells/spell_mage.cpp54
-rw-r--r--src/server/scripts/Spells/spell_warlock.cpp8
-rw-r--r--src/server/scripts/Spells/spell_warrior.cpp10
7 files changed, 60 insertions, 51 deletions
diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp
index cc96b27cb0a..5a2e19f08c2 100644
--- a/src/server/scripts/Spells/spell_dk.cpp
+++ b/src/server/scripts/Spells/spell_dk.cpp
@@ -1231,12 +1231,11 @@ class spell_dk_raise_dead : public SpellScriptLoader
private:
bool Validate(SpellInfo const* spellInfo) override
{
- // 6.x effects changed
- /*if (!sSpellMgr->GetSpellInfo(spellInfo->GetEffect(EFFECT_1)->CalcValue())
+ if (!sSpellMgr->GetSpellInfo(spellInfo->GetEffect(EFFECT_1)->CalcValue())
|| !sSpellMgr->GetSpellInfo(spellInfo->GetEffect(EFFECT_2)->CalcValue())
|| !sSpellMgr->GetSpellInfo(SPELL_DK_RAISE_DEAD_USE_REAGENT)
|| !sSpellMgr->GetSpellInfo(SPELL_DK_MASTER_OF_GHOULS))
- return false;*/
+ return false;
return false;
}
diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp
index c38d6b07124..01501c04c2e 100644
--- a/src/server/scripts/Spells/spell_druid.cpp
+++ b/src/server/scripts/Spells/spell_druid.cpp
@@ -159,7 +159,7 @@ class spell_dru_eclipse_energize : public SpellScriptLoader
return true;
}
- void HandleEnergize(SpellEffIndex effIndex)
+ void HandleEnergize(SpellEffIndex /*effIndex*/)
{
Player* caster = GetCaster()->ToPlayer();
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 87619460ee7..8800903b095 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -1180,13 +1180,12 @@ class spell_gen_defend : public SpellScriptLoader
bool Validate(SpellInfo const* /*spellInfo*/) override
{
- // 6.x effects changed
- //if (!sSpellMgr->GetSpellInfo(SPELL_VISUAL_SHIELD_1))
- // return false;
- //if (!sSpellMgr->GetSpellInfo(SPELL_VISUAL_SHIELD_2))
- // return false;
- //if (!sSpellMgr->GetSpellInfo(SPELL_VISUAL_SHIELD_3))
- // return false;
+ if (!sSpellMgr->GetSpellInfo(SPELL_VISUAL_SHIELD_1))
+ return false;
+ if (!sSpellMgr->GetSpellInfo(SPELL_VISUAL_SHIELD_2))
+ return false;
+ if (!sSpellMgr->GetSpellInfo(SPELL_VISUAL_SHIELD_3))
+ return false;
return false;
}
@@ -1221,26 +1220,29 @@ class spell_gen_defend : public SpellScriptLoader
void Register() override
{
+ /*
SpellInfo const* spell = sSpellMgr->EnsureSpellInfo(m_scriptSpellId);
// 6.x effects removed
// Defend spells cast by NPCs (add visuals)
- /*if (spell->GetEffect(EFFECT_0)->ApplyAuraName == SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN)
+ if (spell->GetEffect(EFFECT_0)->ApplyAuraName == SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN)
{
AfterEffectApply += AuraEffectApplyFn(spell_gen_defend_AuraScript::RefreshVisualShields, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
OnEffectRemove += AuraEffectRemoveFn(spell_gen_defend_AuraScript::RemoveVisualShields, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
- }*/
+ }
+
// Remove Defend spell from player when he dismounts
- //if (spell->GetEffect(EFFECT_2)->ApplyAuraName == SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN)
- // OnEffectRemove += AuraEffectRemoveFn(spell_gen_defend_AuraScript::RemoveDummyFromDriver, EFFECT_2, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, AURA_EFFECT_HANDLE_REAL);
+ if (spell->GetEffect(EFFECT_2)->ApplyAuraName == SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN)
+ OnEffectRemove += AuraEffectRemoveFn(spell_gen_defend_AuraScript::RemoveDummyFromDriver, EFFECT_2, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, AURA_EFFECT_HANDLE_REAL);
// Defend spells cast by players (add/remove visuals)
- /*if (spell->GetEffect(EFFECT_1)->ApplyAuraName == SPELL_AURA_DUMMY)
+ if (spell->GetEffect(EFFECT_1)->ApplyAuraName == SPELL_AURA_DUMMY)
{
AfterEffectApply += AuraEffectApplyFn(spell_gen_defend_AuraScript::RefreshVisualShields, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
OnEffectRemove += AuraEffectRemoveFn(spell_gen_defend_AuraScript::RemoveVisualShields, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
- }*/
+ }
+ */
}
};
@@ -1913,6 +1915,8 @@ class spell_gen_mounted_charge: public SpellScriptLoader
}
break;
}
+ default:
+ break;
}
}
diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp
index a8f8dc1f31c..ed888b2d33d 100644
--- a/src/server/scripts/Spells/spell_item.cpp
+++ b/src/server/scripts/Spells/spell_item.cpp
@@ -1485,7 +1485,7 @@ class spell_item_gift_of_the_harvester : public SpellScriptLoader
SpellCastResult CheckRequirement()
{
- std::list<Creature*> ghouls;
+ std::list<TempSummon*> ghouls;
GetCaster()->GetAllMinionsByEntry(ghouls, NPC_GHOUL);
if (ghouls.size() >= MAX_GHOULS)
{
diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp
index fc8ba0ffad0..782a4ca6190 100644
--- a/src/server/scripts/Spells/spell_mage.cpp
+++ b/src/server/scripts/Spells/spell_mage.cpp
@@ -1294,51 +1294,53 @@ class spell_mage_ring_of_frost : public SpellScriptLoader
return true;
}
- bool Load() override
- {
- ringOfFrost = NULL;
- return true;
- }
-
void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)
{
- if (ringOfFrost)
- if (GetMaxDuration() - (int32)ringOfFrost->GetTimer() >= sSpellMgr->GetSpellInfo(SPELL_MAGE_RING_OF_FROST_DUMMY)->GetDuration())
+ if (TempSummon* ringOfFrost = GetRingOfFrostMinion())
+ if (GetMaxDuration() - int32(ringOfFrost->GetTimer()) >= sSpellMgr->EnsureSpellInfo(SPELL_MAGE_RING_OF_FROST_DUMMY)->GetDuration())
GetTarget()->CastSpell(ringOfFrost->GetPositionX(), ringOfFrost->GetPositionY(), ringOfFrost->GetPositionZ(), SPELL_MAGE_RING_OF_FROST_FREEZE, true);
}
void Apply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- std::list<Creature*> MinionList;
+ std::list<TempSummon*> MinionList;
GetTarget()->GetAllMinionsByEntry(MinionList, GetSpellInfo()->GetEffect(EFFECT_0)->MiscValue);
// Get the last summoned RoF, save it and despawn older ones
- for (std::list<Creature*>::iterator itr = MinionList.begin(); itr != MinionList.end(); itr++)
+ for (std::list<TempSummon*>::iterator itr = MinionList.begin(); itr != MinionList.end(); itr++)
{
- TempSummon* summon = (*itr)->ToTempSummon();
+ TempSummon* summon = (*itr);
- if (ringOfFrost && summon)
+ if (TempSummon* ringOfFrost = GetRingOfFrostMinion())
{
if (summon->GetTimer() > ringOfFrost->GetTimer())
{
ringOfFrost->DespawnOrUnsummon();
- ringOfFrost = summon;
+ _ringOfFrostGUID = summon->GetGUID();
}
else
summon->DespawnOrUnsummon();
}
- else if (summon)
- ringOfFrost = summon;
+ else
+ _ringOfFrostGUID = summon->GetGUID();
}
}
- TempSummon* ringOfFrost;
-
void Register() override
{
- OnEffectPeriodic += AuraEffectPeriodicFn(spell_mage_ring_of_frost_AuraScript::HandleEffectPeriodic, EFFECT_1, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
- OnEffectApply += AuraEffectApplyFn(spell_mage_ring_of_frost_AuraScript::Apply, EFFECT_1, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_mage_ring_of_frost_AuraScript::HandleEffectPeriodic, EFFECT_1, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
+ OnEffectApply += AuraEffectApplyFn(spell_mage_ring_of_frost_AuraScript::Apply, EFFECT_1, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
+
+ private:
+ TempSummon* GetRingOfFrostMinion() const
+ {
+ if (Creature* creature = ObjectAccessor::GetCreature(*GetOwner(), _ringOfFrostGUID))
+ return creature->ToTempSummon();
+ return nullptr;
+ }
+
+ ObjectGuid _ringOfFrostGUID;
};
AuraScript* GetAuraScript() const override
@@ -1369,13 +1371,17 @@ class spell_mage_ring_of_frost_freeze : public SpellScriptLoader
void FilterTargets(std::list<WorldObject*>& targets)
{
- float outRadius = sSpellMgr->GetSpellInfo(SPELL_MAGE_RING_OF_FROST_SUMMON)->GetEffect(EFFECT_0)->CalcRadius();
+ WorldLocation const* dest = GetExplTargetDest();
+ float outRadius = sSpellMgr->EnsureSpellInfo(SPELL_MAGE_RING_OF_FROST_SUMMON)->GetEffect(EFFECT_0)->CalcRadius();
float inRadius = 4.7f;
- for (std::list<WorldObject*>::iterator itr = targets.begin(); itr != targets.end(); ++itr)
- if (Unit* unit = (*itr)->ToUnit())
- if (unit->HasAura(SPELL_MAGE_RING_OF_FROST_DUMMY) || unit->HasAura(SPELL_MAGE_RING_OF_FROST_FREEZE) || unit->GetExactDist(GetExplTargetDest()) > outRadius || unit->GetExactDist(GetExplTargetDest()) < inRadius)
- targets.erase(itr--);
+ targets.remove_if([dest, outRadius, inRadius](WorldObject* target)
+ {
+ Unit* unit = target->ToUnit();
+ if (!unit)
+ return true;
+ return unit->HasAura(SPELL_MAGE_RING_OF_FROST_DUMMY) || unit->HasAura(SPELL_MAGE_RING_OF_FROST_FREEZE) || unit->GetExactDist(dest) > outRadius || unit->GetExactDist(dest) < inRadius;
+ });
}
void Register() override
diff --git a/src/server/scripts/Spells/spell_warlock.cpp b/src/server/scripts/Spells/spell_warlock.cpp
index fba40986c31..727748c2f3f 100644
--- a/src/server/scripts/Spells/spell_warlock.cpp
+++ b/src/server/scripts/Spells/spell_warlock.cpp
@@ -1251,17 +1251,13 @@ class spell_warl_soul_swap_dot_marker : public SpellScriptLoader
{
PrepareSpellScript(spell_warl_soul_swap_dot_marker_SpellScript);
- void HandleHit(SpellEffIndex effIndex)
+ void HandleHit(SpellEffIndex /*effIndex*/)
{
Unit* swapVictim = GetCaster();
Unit* warlock = GetHitUnit();
if (!warlock || !swapVictim)
return;
- // effect existance checked in dbc, should not be removed by core at any time, so no need to check for null
- SpellEffectInfo const* effect = GetSpellInfo()->GetEffect(DIFFICULTY_NONE, EFFECT_0);
- flag128 classMask = effect->SpellClassMask;
-
Unit::AuraApplicationMap const& appliedAuras = swapVictim->GetAppliedAuras();
SoulSwapOverrideAuraScript* swapSpellScript = nullptr;
if (Aura* swapOverrideAura = warlock->GetAura(SPELL_WARLOCK_SOUL_SWAP_OVERRIDE))
@@ -1270,6 +1266,8 @@ class spell_warl_soul_swap_dot_marker : public SpellScriptLoader
if (!swapSpellScript)
return;
+ flag128 classMask = GetEffectInfo()->SpellClassMask;
+
for (Unit::AuraApplicationMap::const_iterator itr = appliedAuras.begin(); itr != appliedAuras.end(); ++itr)
{
SpellInfo const* spellProto = itr->second->GetBase()->GetSpellInfo();
diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp
index d6ff9375544..3279a5181a7 100644
--- a/src/server/scripts/Spells/spell_warrior.cpp
+++ b/src/server/scripts/Spells/spell_warrior.cpp
@@ -866,6 +866,7 @@ class spell_warr_vigilance : public SpellScriptLoader
return true;
}
+ /*
bool CheckProc(ProcEventInfo& eventInfo)
{
_procTarget = GetCaster();
@@ -874,12 +875,13 @@ class spell_warr_vigilance : public SpellScriptLoader
void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
{
- /*PreventDefaultAction();
+ PreventDefaultAction();
int32 damage = int32(CalculatePct(eventInfo.GetDamageInfo()->GetDamage(), aurEff->GetSpellInfo()->Effects[EFFECT_1].CalcValue()));
GetTarget()->CastSpell(_procTarget, SPELL_WARRIOR_VIGILANCE_PROC, true, NULL, aurEff);
- _procTarget->CastCustomSpell(_procTarget, SPELL_WARRIOR_VENGEANCE, &damage, &damage, &damage, true, NULL, aurEff);*/
+ _procTarget->CastCustomSpell(_procTarget, SPELL_WARRIOR_VENGEANCE, &damage, &damage, &damage, true, NULL, aurEff);
}
+ */
void HandleRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
@@ -892,8 +894,8 @@ class spell_warr_vigilance : public SpellScriptLoader
void Register() override
{
- DoCheckProc += AuraCheckProcFn(spell_warr_vigilance_AuraScript::CheckProc);
- OnEffectProc += AuraEffectProcFn(spell_warr_vigilance_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
+ //DoCheckProc += AuraCheckProcFn(spell_warr_vigilance_AuraScript::CheckProc);
+ //OnEffectProc += AuraEffectProcFn(spell_warr_vigilance_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
OnEffectRemove += AuraEffectRemoveFn(spell_warr_vigilance_AuraScript::HandleRemove, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
}