aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp41
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h25
5 files changed, 28 insertions, 46 deletions
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
index 176bdefcbc8..70d77cc4155 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
@@ -1551,8 +1551,8 @@ void AddSC_boss_sindragosa()
RegisterSpellScript(spell_rimefang_icy_blast);
RegisterSpellScript(spell_frostwarden_handler_order_whelp);
RegisterSpellAndAuraScriptPair(spell_frostwarden_handler_focus_fire, spell_frostwarden_handler_focus_fire_aura);
- new spell_trigger_spell_from_caster("spell_sindragosa_ice_tomb", SPELL_ICE_TOMB_DUMMY, TRIGGERED_IGNORE_SET_FACING);
- new spell_trigger_spell_from_caster("spell_sindragosa_ice_tomb_dummy", SPELL_FROST_BEACON);
+ RegisterSpellScriptWithArgs(spell_trigger_spell_from_caster, "spell_sindragosa_ice_tomb", SPELL_ICE_TOMB_DUMMY, TRIGGERED_IGNORE_SET_FACING);
+ RegisterSpellScriptWithArgs(spell_trigger_spell_from_caster, "spell_sindragosa_ice_tomb_dummy", SPELL_FROST_BEACON);
RegisterSpellScript(spell_sindragosa_ice_tomb_target);
// AreaTriggers
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp
index 4992f0005b0..5d1a64d13ef 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp
@@ -1502,7 +1502,7 @@ void AddSC_boss_sister_svalna()
RegisterIcecrownCitadelCreatureAI(npc_captain_rupert);
RegisterIcecrownCitadelCreatureAI(npc_frostwing_ymirjar_vrykul);
RegisterIcecrownCitadelCreatureAI(npc_impaling_spear);
- new spell_trigger_spell_from_caster("spell_svalna_caress_of_death", SPELL_IMPALING_SPEAR_KILL);
+ RegisterSpellScriptWithArgs(spell_trigger_spell_from_caster, "spell_svalna_caress_of_death", SPELL_IMPALING_SPEAR_KILL);
RegisterSpellScript(spell_svalna_revive_champion);
RegisterSpellScript(spell_svalna_remove_spear);
new at_icc_start_frostwing_gauntlet();
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
index 23661e925b6..94f13286b2e 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
@@ -2890,7 +2890,7 @@ void AddSC_boss_the_lich_king()
RegisterSpellScript(spell_the_lich_king_trigger_vile_spirit);
RegisterSpellScript(spell_the_lich_king_jump);
RegisterSpellScript(spell_the_lich_king_jump_remove_aura);
- new spell_trigger_spell_from_caster("spell_the_lich_king_mass_resurrection", SPELL_MASS_RESURRECTION_REAL);
+ RegisterSpellScriptWithArgs(spell_trigger_spell_from_caster, "spell_the_lich_king_mass_resurrection", SPELL_MASS_RESURRECTION_REAL);
RegisterSpellScript(spell_the_lich_king_play_movie);
RegisterSpellScript(spell_the_lich_king_harvest_souls_teleport);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
index 6e209d6f1e3..db8c99e0ff6 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
@@ -1465,47 +1465,24 @@ class spell_icc_soul_missile : public SpellScriptLoader
}
};
-class spell_trigger_spell_from_caster_SpellScript : public SpellScript
+spell_trigger_spell_from_caster::spell_trigger_spell_from_caster(uint32 triggerId, TriggerCastFlags triggerFlags /*= TRIGGERED_FULL_MASK*/)
+ : SpellScript(), _triggerId(triggerId), _triggerFlags(triggerFlags)
{
- PrepareSpellScript(spell_trigger_spell_from_caster_SpellScript);
-
- public:
- spell_trigger_spell_from_caster_SpellScript(uint32 triggerId, TriggerCastFlags triggerFlags)
- : SpellScript(), _triggerId(triggerId), _triggerFlags(triggerFlags) { }
-
- private:
- bool Validate(SpellInfo const* /*spell*/) override
- {
- return ValidateSpellInfo({ _triggerId });
- }
-
- void HandleTrigger()
- {
- GetCaster()->CastSpell(GetHitUnit(), _triggerId, _triggerFlags);
- }
-
- void Register() override
- {
- AfterHit += SpellHitFn(spell_trigger_spell_from_caster_SpellScript::HandleTrigger);
- }
-
- uint32 _triggerId;
- TriggerCastFlags _triggerFlags;
-};
+}
-spell_trigger_spell_from_caster::spell_trigger_spell_from_caster(char const* scriptName, uint32 triggerId)
- : SpellScriptLoader(scriptName), _triggerId(triggerId), _triggerFlags(TRIGGERED_FULL_MASK)
+bool spell_trigger_spell_from_caster::Validate(SpellInfo const* /*spell*/)
{
+ return ValidateSpellInfo({ _triggerId });
}
-spell_trigger_spell_from_caster::spell_trigger_spell_from_caster(char const* scriptName, uint32 triggerId, TriggerCastFlags triggerFlags)
- : SpellScriptLoader(scriptName), _triggerId(triggerId), _triggerFlags(triggerFlags)
+void spell_trigger_spell_from_caster::HandleTrigger()
{
+ GetCaster()->CastSpell(GetHitUnit(), _triggerId, _triggerFlags);
}
-SpellScript* spell_trigger_spell_from_caster::GetSpellScript() const
+void spell_trigger_spell_from_caster::Register()
{
- return new spell_trigger_spell_from_caster_SpellScript(_triggerId, _triggerFlags);
+ AfterHit += SpellHitFn(spell_trigger_spell_from_caster::HandleTrigger);
}
class at_icc_saurfang_portal : public AreaTriggerScript
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
index f6ec558c735..4499704cfe6 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
@@ -19,7 +19,8 @@
#define ICECROWN_CITADEL_H_
#include "CreatureAIImpl.h"
-#include "ScriptMgr.h"
+#include "SpellDefines.h"
+#include "SpellScript.h"
#define ICCScriptName "instance_icecrown_citadel"
#define DataHeader "IC"
@@ -549,16 +550,20 @@ extern Position const SpiritWardenSpawn;
uint32 const WeeklyNPCs = 9;
uint32 const MaxHeroicAttempts = 50;
-class spell_trigger_spell_from_caster : public SpellScriptLoader
+class spell_trigger_spell_from_caster : public SpellScript
{
- public:
- spell_trigger_spell_from_caster(char const* scriptName, uint32 triggerId, TriggerCastFlags triggerFlags);
- spell_trigger_spell_from_caster(char const* scriptName, uint32 triggerId);
- SpellScript* GetSpellScript() const override;
-
- private:
- uint32 _triggerId;
- TriggerCastFlags _triggerFlags;
+ PrepareSpellScript(spell_trigger_spell_from_caster);
+
+public:
+ spell_trigger_spell_from_caster(uint32 triggerId, TriggerCastFlags triggerFlags = TRIGGERED_FULL_MASK);
+
+private:
+ bool Validate(SpellInfo const* spell) override;
+ void HandleTrigger();
+ void Register() override;
+
+ uint32 _triggerId;
+ TriggerCastFlags _triggerFlags;
};
template <class AI, class T>