38 vehicleBase->SendPetDismissSound();
52 TC_LOG_ERROR(
"network",
"HandleRequestVehiclePrevSeat: {} tried to switch seats but current seatflags {} don't permit that.",
69 TC_LOG_ERROR(
"network",
"HandleRequestVehicleNextSeat: {} tried to switch seats but current seatflags {} don't permit that.",
90 TC_LOG_ERROR(
"network",
"HandleMoveChangeVehicleSeats: Player {} tried to switch seats but current seatflags {} don't permit that.",
103 if (
Vehicle* vehicle = vehUnit->GetVehicleKit())
117 TC_LOG_ERROR(
"network",
"HandleRequestVehicleSwitchSeat: {} tried to switch seats but current seatflags {} don't permit that.",
125 if (
Vehicle* vehicle = vehUnit->GetVehicleKit())
126 if (vehicle->HasEmptySeat(
int8(requestVehicleSwitchSeat.
SeatIndex)))
134 if (!player->GetVehicleKit())
136 if (!player->IsInRaidWith(
_player))
153 TC_LOG_ERROR(
"network",
"HandleEjectPassenger: {} is not in a vehicle!",
GetPlayer()->GetGUID().ToString());
187 auto itr = vehicle->GetSeatIteratorForPassenger(
GetPlayer());
188 if (itr != vehicle->Seats.end())
190 if (itr->second.SeatInfo->CanEnterOrExit())
193 TC_LOG_ERROR(
"network",
"Player {} tried to exit vehicle, but seatflags {} (ID: {}) don't permit that.",
194 GetPlayer()->GetGUID().ToString(), vehicle->GetVehicleInfo()->SeatID[itr->first], itr->second.SeatInfo->Flags);
#define TC_LOG_ERROR(filterType__, message__,...)
#define INTERACTION_DISTANCE
ObjectGuid const & GetGUID() const
bool IsBattleArena() const
std::string ToString() const
void EnterVehicle(Unit *base, int8 seatId=-1)
Vehicle * GetVehicle() const
Unit * GetVehicleBase() const
bool IsOnVehicle(Unit const *vehicle) const
void ChangeSeat(int8 seatId, bool next=true)
Vehicle * GetVehicleKit() const
virtual void ExitVehicle(Position const *exitPosition=nullptr)
bool HasEmptySeat(int8 seatId) const
Checks if vehicle's seat specified by 'seatId' is empty.
VehicleSeatEntry const * GetSeatForPassenger(Unit const *passenger) const
Returns information on the seat of specified passenger, represented by the format in VehicleSeat....
MovementInfo m_movementInfo
OpcodeClient GetOpcode() const
WorldPackets::Movement::MovementAck Data
void HandleRequestVehicleNextSeat(WorldPackets::Vehicle::RequestVehicleNextSeat &requestVehicleNextSeat)
void HandleEjectPassenger(WorldPackets::Vehicle::EjectPassenger &ejectPassenger)
uint32 AdjustClientMovementTime(uint32 time) const
Player * GetPlayer() const
void HandleRequestVehicleExit(WorldPackets::Vehicle::RequestVehicleExit &requestVehicleExit)
bool ValidateMovementInfo(Unit const *mover, MovementInfo *mi) const
void HandleMoveChangeVehicleSeats(WorldPackets::Vehicle::MoveChangeVehicleSeats &moveChangeVehicleSeats)
void HandleMoveSetVehicleRecAck(WorldPackets::Vehicle::MoveSetVehicleRecIdAck &setVehicleRecIdAck)
void HandleRequestVehiclePrevSeat(WorldPackets::Vehicle::RequestVehiclePrevSeat &requestVehiclePrevSeat)
Unit * ValidateAndGetUnitBeingMoved(ObjectGuid guid, OpcodeClient opcode, bool forStatusAck) const
void HandleRideVehicleInteract(WorldPackets::Vehicle::RideVehicleInteract &rideVehicleInteract)
void HandleRequestVehicleSwitchSeat(WorldPackets::Vehicle::RequestVehicleSwitchSeat &requestVehicleSwitchSeat)
void HandleMoveDismissVehicle(WorldPackets::Vehicle::MoveDismissVehicle &moveDismissVehicle)
TC_GAME_API Unit * GetUnit(WorldObject const &, ObjectGuid const &guid)
TC_GAME_API Player * GetPlayer(Map const *, ObjectGuid const &guid)
bool CanSwitchFromSeat() const