diff options
| author | Seyden <saiifii@live.de> | 2017-07-20 00:15:02 +0200 |
|---|---|---|
| committer | Treeston <treeston.mmoc@gmail.com> | 2017-07-20 00:15:02 +0200 |
| commit | a9174d5eb75b4e0f28542c44b797fcacddc7ab64 (patch) | |
| tree | ea5ff3b422d33373d9c28eb3a897635ddf2455a9 /src/server/scripts/Spells | |
| parent | a6e46c1c2ef491cd4cce39be47445e9da194e84e (diff) | |
Core/Scripts: Implement generic script loaders (and script registry macros) to greatly reduce code duplication (#19526)
Diffstat (limited to 'src/server/scripts/Spells')
| -rw-r--r-- | src/server/scripts/Spells/spell_item.cpp | 53 |
1 files changed, 21 insertions, 32 deletions
diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index 1a721521ae0..1c229714dd5 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -3305,43 +3305,32 @@ enum TeachLanguage SPELL_LEARN_GOBLIN_BINARY = 50246, }; -class spell_item_teach_language : public SpellScriptLoader +class spell_item_teach_language : public SpellScript { - public: - spell_item_teach_language() : SpellScriptLoader("spell_item_teach_language") { } - - class spell_item_teach_language_SpellScript : public SpellScript - { - PrepareSpellScript(spell_item_teach_language_SpellScript); - - bool Load() override - { - return GetCaster()->GetTypeId() == TYPEID_PLAYER; - } + PrepareSpellScript(spell_item_teach_language); - bool Validate(SpellInfo const* /*spell*/) override - { - return ValidateSpellInfo({ SPELL_LEARN_GNOMISH_BINARY, SPELL_LEARN_GOBLIN_BINARY }); - } + bool Load() override + { + return GetCaster()->GetTypeId() == TYPEID_PLAYER; + } - void HandleDummy(SpellEffIndex /* effIndex */) - { - Player* caster = GetCaster()->ToPlayer(); + bool Validate(SpellInfo const* /*spell*/) override + { + return ValidateSpellInfo({ SPELL_LEARN_GNOMISH_BINARY, SPELL_LEARN_GOBLIN_BINARY }); + } - if (roll_chance_i(34)) - caster->CastSpell(caster, caster->GetTeam() == ALLIANCE ? SPELL_LEARN_GNOMISH_BINARY : SPELL_LEARN_GOBLIN_BINARY, true); - } + void HandleDummy(SpellEffIndex /* effIndex */) + { + Player* caster = GetCaster()->ToPlayer(); - void Register() override - { - OnEffectHitTarget += SpellEffectFn(spell_item_teach_language_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); - } - }; + if (roll_chance_i(34)) + caster->CastSpell(caster, caster->GetTeam() == ALLIANCE ? SPELL_LEARN_GNOMISH_BINARY : SPELL_LEARN_GOBLIN_BINARY, true); + } - SpellScript* GetSpellScript() const override - { - return new spell_item_teach_language_SpellScript(); - } + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_item_teach_language::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } }; enum RocketBoots @@ -4608,7 +4597,7 @@ void AddSC_item_spell_scripts() new spell_item_impale_leviroth(); new spell_item_brewfest_mount_transformation(); new spell_item_nitro_boots(); - new spell_item_teach_language(); + RegisterSpellScript(spell_item_teach_language); new spell_item_rocket_boots(); new spell_item_pygmy_oil(); new spell_item_unusual_compass(); |
