diff options
author | megamage <none@none> | 2009-08-23 22:09:43 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-08-23 22:09:43 -0500 |
commit | 1ee90e1022a235859316e55356ea8a3d2f456c9b (patch) | |
tree | b3db14f5e81ac865bb3fe92158b8837eb9b0ca5f /src/game/SpellAuras.cpp | |
parent | e71f5e474e2d935f2bfd8520dbf62a6f4b552a18 (diff) |
*Update vehicle system. Make vehicle a seperate class from creature.
--HG--
branch : trunk
Diffstat (limited to 'src/game/SpellAuras.cpp')
-rw-r--r-- | src/game/SpellAuras.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 837b8323a60..344dd7f733a 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -4487,8 +4487,8 @@ void AuraEffect::HandleAuraPeriodicDummy(bool apply, bool Real, bool changeAmoun if(m_target->GetAuras().count(62399) >= (m_target->GetMap()->IsHeroic() ? 4 : 2)) { m_target->CastSpell(m_target, 62475, true); // System Shutdown - if(m_target->m_Vehicle) - m_target->m_Vehicle->CastSpell(m_target, 62475, true); + if(Unit *veh = m_target->GetVehicleBase()) + veh->CastSpell(m_target, 62475, true); } } break; @@ -6619,27 +6619,25 @@ void AuraEffect::HandleAuraControlVehicle(bool apply, bool Real, bool /*changeAm if(!Real) return; - if(m_target->GetTypeId() != TYPEID_UNIT || !((Creature*)m_target)->isVehicle()) + if(!m_target->IsVehicle()) return; Unit *caster = GetSource(); if(!caster || caster == m_target) return; - Vehicle * const vehicle = dynamic_cast<Vehicle * const>(m_target); - if (apply) { //if(caster->GetTypeId() == TYPEID_PLAYER) // if(Pet *pet = ((Player*)caster)->GetPet()) // pet->Remove(PET_SAVE_AS_CURRENT); - caster->EnterVehicle(vehicle, m_amount - 1); + caster->EnterVehicle(m_target->GetVehicleKit(), m_amount - 1); } else { if(GetId() == 53111) // Devour Humanoid { - vehicle->Kill(caster); + m_target->Kill(caster); if(caster->GetTypeId() == TYPEID_UNIT) ((Creature*)caster)->RemoveCorpse(); } |