TrinityCore
Loading...
Searching...
No Matches
VehicleJoinEvent Class Reference

#include <Vehicle.h>

+ Inheritance diagram for VehicleJoinEvent:

Protected 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.
 

Protected Attributes

Vehicle * Target
 
Unit * Passenger
 
SeatMap::iterator Seat
 

Friends

class Vehicle
 

Additional Inherited Members

- Public Member Functions inherited from BasicEvent
 BasicEvent ()
 
virtual ~BasicEvent ()
 
virtual bool IsDeletable () const
 
void ScheduleAbort ()
 

Detailed Description

Definition at line 123 of file Vehicle.h.

Constructor & Destructor Documentation

◆ VehicleJoinEvent()

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

Definition at line 127 of file Vehicle.h.

Member Function Documentation

◆ Abort()

void VehicleJoinEvent::Abort ( uint64  )
overrideprotectedvirtual

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::AddPassenger, and we should remove the aura manually.

Reimplemented from BasicEvent.

Definition at line 927 of file Vehicle.cpp.

References Creature::DespawnOrUnsummon(), Vehicle::GetBase(), Object::GetGUID(), Unit::HasUnitTypeMask(), Object::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   
)
overrideprotectedvirtual

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 790 of file Vehicle.cpp.

References Abort(), Unit::AddUnitMovementFlag(), ASSERT, VehicleSeatEntry::AttachmentOffset, AURA_INTERRUPT_FLAG_NOT_SEATED, CHARM_TYPE_VEHICLE, EVENT_VEHICLE_BOARD, Unit::ExitVehicle(), Aura::GetApplicationOfTarget(), Unit::GetAuraEffectsByType(), Vehicle::GetBase(), AuraApplication::GetBase(), Player::GetBattleground(), Object::GetGUID(), Unit::GetMotionMaster(), AuraApplication::GetRemoveMode(), ThreatManager::GetThreatenedByMeList(), Unit::GetThreatManager(), Object::GetTypeId(), Unit::GetVehicle(), MovementInfo::TransportInfo::guid, VehicleSeatEntry::HasFlag(), Unit::HasUnitFlag(), Unit::HasUnitTypeMask(), Unit::InterruptNonMeleeSpells(), Unit::IsAlive(), Object::IsInWorld(), MotionMaster::LaunchMoveSpline(), WorldObject::m_movementInfo, MOTION_PRIORITY_HIGHEST, MOVEMENTFLAG_ONTRANSPORT, 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::SetUnitFlag(), Unit::SetVehicle(), SPELL_AURA_CONTROL_VEHICLE, SPELL_AURA_MOUNTED, sScriptMgr, Player::StopCastingBindSight(), Player::StopCastingCharm(), Target, MovementInfo::TransportInfo::time, Object::ToCreature(), Object::ToPlayer(), MovementInfo::transport, TYPEID_PLAYER, TYPEID_UNIT, UNIT_FLAG_UNINTERACTIBLE, 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_PASSENGER_NOT_SELECTABLE, DBCPosition3D::X, DBCPosition3D::Y, and DBCPosition3D::Z.

Friends And Related Symbol Documentation

◆ Vehicle

friend class Vehicle
friend

Definition at line 125 of file Vehicle.h.

Member Data Documentation

◆ Passenger

Unit* VehicleJoinEvent::Passenger
protected

Definition at line 132 of file Vehicle.h.

Referenced by Abort(), and Execute().

◆ Seat

SeatMap::iterator VehicleJoinEvent::Seat
protected

Definition at line 133 of file Vehicle.h.

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

◆ Target

Vehicle* VehicleJoinEvent::Target
protected

Definition at line 131 of file Vehicle.h.

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


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