diff options
| author | ariel- <ariel-@users.noreply.github.com> | 2018-03-18 16:08:36 -0300 |
|---|---|---|
| committer | ariel- <ariel-@users.noreply.github.com> | 2018-03-18 16:08:36 -0300 |
| commit | 6eb122792cb1446a35752c6f62dd0febb6387671 (patch) | |
| tree | eac67aa850db0ef2b68e09b453479c7f2c8310a8 | |
| parent | 437c5c7b9d2122f7b1f46fd4e0f502c8be1e3091 (diff) | |
Scripts/Spells: fix Seaforium Blast script crash
Closes #21663
| -rw-r--r-- | src/server/scripts/Spells/spell_generic.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index dbf7d7da256..94632eb9171 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -2916,17 +2916,15 @@ class spell_gen_seaforium_blast : public SpellScript bool Load() override { - // OriginalCaster is always available in Spell::prepare - return GetOriginalCaster()->GetTypeId() == TYPEID_PLAYER; + return GetGObjCaster()->GetOwnerGUID().IsPlayer(); } void AchievementCredit(SpellEffIndex /*effIndex*/) { - // but in effect handling OriginalCaster can become nullptr - if (Unit* originalCaster = GetOriginalCaster()) + if (Unit* owner = GetGObjCaster()->GetOwner()) if (GameObject* go = GetHitGObj()) if (go->GetGOInfo()->type == GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING) - originalCaster->CastSpell(originalCaster, SPELL_PLANT_CHARGES_CREDIT_ACHIEVEMENT, true); + owner->CastSpell(nullptr, SPELL_PLANT_CHARGES_CREDIT_ACHIEVEMENT, true); } void Register() override |
