diff options
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rwxr-xr-x | src/server/game/Spells/SpellEffects.cpp | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 59dac535bae..52fe71f6c8a 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -4480,18 +4480,16 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) } // Plant Warmaul Ogre Banner case 32307: - { - Player* p_caster = dynamic_cast<Player*>(m_caster); - if (!p_caster) - break; - p_caster->RewardPlayerAndGroupAtEvent(18388, unitTarget); - Creature* cTarget = dynamic_cast<Creature*>(unitTarget); - if (!cTarget) - break; - cTarget->setDeathState(CORPSE); - cTarget->RemoveCorpse(); + if (Player* caster = m_caster->ToPlayer())) + { + caster->RewardPlayerAndGroupAtEvent(18388, unitTarget); + if (Creature* target = unitTarget->ToCreature()) + { + target->setDeathState(CORPSE); + target->RemoveCorpse(); + } + } break; - } case 48025: // Headless Horseman's Mount { if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER) @@ -5076,8 +5074,10 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) { if (Vehicle* seat = m_caster->GetVehicleKit()) { - if (Creature* oldContainer = dynamic_cast<Creature*>(seat->GetPassenger(1))) - oldContainer->DisappearAndDie(); + if (Unit* passenger = seat->GetPassenger(1)) + if (Creature* oldContainer = passenger->ToCreature()) + oldContainer->DisappearAndDie(); + // TODO: a hack, range = 11, should after some time cast, otherwise too far m_caster->CastSpell(seat->GetBase(), 62496, true); unitTarget->EnterVehicle(m_caster, 1); |