[11385] Add support for static vehicle spawns

Signed-off-by: zergtmn <zerg@myisp.com>
This commit is contained in:
zergtmn 2011-04-20 23:23:47 +06:00
parent 75e1e7c3a3
commit 2835aa5f20
32 changed files with 115 additions and 331 deletions

View file

@ -7927,27 +7927,31 @@ void Aura::HandleAuraControlVehicle(bool apply, bool Real)
return;
Unit* target = GetTarget();
if (target->GetTypeId() != TYPEID_UNIT || !((Creature*)target)->IsVehicle())
if (!target->IsVehicle())
return;
Vehicle* vehicle = (Vehicle*)target;
// TODO: Check for free seat
Unit *caster = GetCaster();
if (!caster || caster->GetTypeId() != TYPEID_PLAYER)
if (!caster)
return;
if (apply)
{
((Player*)caster)->RemovePet(PET_SAVE_AS_CURRENT);
((Player*)caster)->EnterVehicle(vehicle);
if (caster->GetTypeId() == TYPEID_PLAYER)
((Player*)caster)->RemovePet(PET_SAVE_AS_CURRENT);
//caster->EnterVehicle(target);
}
else
{
SpellEntry const *spell = GetSpellProto();
// some SPELL_AURA_CONTROL_VEHICLE auras have a dummy effect on the player - remove them
caster->RemoveAurasDueToSpell(spell->Id);
caster->RemoveAurasDueToSpell(GetId());
((Player*)caster)->ExitVehicle(vehicle);
//caster->ExitVehicle();
if (caster->GetTypeId() == TYPEID_PLAYER)
((Player*)caster)->ResummonPetTemporaryUnSummonedIfAny();
}
}