TrinityCore
Loading...
Searching...
No Matches
VehicleJoinEvent Class Reference
+ Inheritance diagram for VehicleJoinEvent:

Public Member Functions

 VehicleJoinEvent (Vehicle *v, Unit *u)
 
bool Execute (uint64, uint32) override
 Actually adds the passenger @Passenger to vehicle @Target.
 
void Abort (uint64) override
 Aborts the event. Implies that unit @Passenger will not be boarding vehicle @Target after all.
 
- Public Member Functions inherited from BasicEvent
 BasicEvent ()
 
virtual ~BasicEvent ()
 
virtual bool IsDeletable () const
 
void ScheduleAbort ()
 

Public Attributes

Vehicle * Target
 
Unit * Passenger
 
SeatMap::iterator Seat
 

Detailed Description

Definition at line 37 of file Vehicle.cpp.

Constructor & Destructor Documentation

◆ VehicleJoinEvent()

VehicleJoinEvent::VehicleJoinEvent ( Vehicle *  v,
Unit *  u 
)
inline

Definition at line 40 of file Vehicle.cpp.

Member Function Documentation

◆ Abort()

void VehicleJoinEvent::Abort ( uint64  )
overridevirtual

Aborts the event. Implies that unit @Passenger will not be boarding vehicle @Target after all.

Author
Machiavelli
Date
17-2-2013
Parameters
parameter1Unused

Check if the Vehicle was already uninstalled, in which case all auras were removed already

Remove the pending event when Abort was called on the event directly

@SPELL_AURA_CONTROL_VEHICLE auras can be applied even when the passenger is not (yet) on the vehicle. When this code is triggered it means that something went wrong in @Vehicle::AddVehiclePassenger, and we should remove the aura manually.

Reimplemented from BasicEvent.

Definition at line 949 of file Vehicle.cpp.

References Creature::DespawnOrUnsummon(), Vehicle::GetBase(), BaseEntity::GetGUID(), Unit::HasUnitTypeMask(), BaseEntity::IsInWorld(), Passenger, Unit::RemoveAurasByType(), Vehicle::RemovePendingEvent(), Seat, SPELL_AURA_CONTROL_VEHICLE, Target, TC_LOG_DEBUG, Object::ToCreature(), ObjectGuid::ToString(), and UNIT_MASK_ACCESSORY.

Referenced by Execute().

◆ Execute()

bool VehicleJoinEvent::Execute ( uint64  ,
uint32   
)
overridevirtual

Actually adds the passenger @Passenger to vehicle @Target.

Author
Machiavelli
Date
17-2-2013
Parameters
parameter1Unused
parameter2Unused.
Returns
true, cannot fail.

Reimplemented from BasicEvent.

Definition at line 813 of file Vehicle.cpp.

References Abort(), ASSERT, VehicleSeatEntry::AttachmentOffset, CHARM_TYPE_VEHICLE, CURRENT_AUTOREPEAT_SPELL, CURRENT_GENERIC_SPELL, EVENT_VEHICLE_BOARD, Unit::ExitVehicle(), Aura::GetApplicationOfTarget(), Unit::GetAuraEffectsByType(), Vehicle::GetBase(), AuraApplication::GetBase(), BaseEntity::GetGUID(), Unit::GetMotionMaster(), AuraApplication::GetRemoveMode(), ThreatManager::GetThreatenedByMeList(), Unit::GetThreatManager(), BaseEntity::GetTypeId(), Unit::GetVehicle(), Vehicle::GetVehicleInfo(), MovementInfo::TransportInfo::guid, VehicleSeatEntry::HasFlag(), Unit::HasUnitMovementFlag(), Unit::HasUnitTypeMask(), VehicleEntry::ID, Unit::InterruptSpell(), Unit::IsAlive(), BaseEntity::IsInWorld(), Unit::IsUninteractible(), MotionMaster::LaunchMoveSpline(), WorldObject::m_movementInfo, MOTION_PRIORITY_HIGHEST, Mount, MOVEMENTFLAG_DISABLE_GRAVITY, Passenger, MovementInfo::TransportInfo::pos, Position::Relocate(), Unit::RemoveAurasByType(), Unit::RemoveAurasWithInterruptFlags(), Unit::RemoveNpcFlag(), Vehicle::RemovePendingEventsForPassenger(), Vehicle::RemovePendingEventsForSeat(), MovementInfo::TransportInfo::seat, Seat, VehicleSeatAddon::SeatOrientationOffset, Unit::SendClearTarget(), Player::SendOnCancelExpectedVehicleRideAura(), Unit::SetCharmedBy(), Unit::SetControlled(), Unit::SetDisableGravity(), Unit::SetVehicle(), SPELL_AURA_CONTROL_VEHICLE, SPELL_AURA_MOUNTED, sScriptMgr, Standing, Player::StopCastingBindSight(), Player::StopCastingCharm(), Target, MovementInfo::TransportInfo::time, Object::ToCreature(), Object::ToPlayer(), MovementInfo::transport, TYPEID_PLAYER, TYPEID_UNIT, UNIT_MASK_ACCESSORY, UNIT_NPC_FLAG_PLAYER_VEHICLE, UNIT_NPC_FLAG_SPELLCLICK, UNIT_STATE_ROOT, Player::UnsummonPetTemporaryIfAny(), Vehicle::UsableSeatNum, VEHICLE_SEAT_FLAG_B_KEEP_PET, VEHICLE_SEAT_FLAG_CAN_CONTROL, VEHICLE_SEAT_FLAG_DISABLE_GRAVITY, MovementInfo::TransportInfo::vehicleId, DBCPosition3D::X, DBCPosition3D::Y, and DBCPosition3D::Z.

Member Data Documentation

◆ Passenger

Unit* VehicleJoinEvent::Passenger

Definition at line 45 of file Vehicle.cpp.

Referenced by Abort(), and Execute().

◆ Seat

SeatMap::iterator VehicleJoinEvent::Seat

Definition at line 46 of file Vehicle.cpp.

Referenced by Abort(), Vehicle::AddVehiclePassenger(), and Execute().

◆ Target

Vehicle* VehicleJoinEvent::Target

Definition at line 44 of file Vehicle.cpp.

Referenced by Abort(), Execute(), and Vehicle::RemoveAllPassengers().


The documentation for this class was generated from the following file: