33 if (moveDismissVehicle.
Status.
guid != vehicleGUID)
35 TC_LOG_ERROR(
"network",
"Player {} tried to dismiss a controlled vehicle ({}) that he has no control over. Possible cheater or malformed packet.",
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.",
86 TC_LOG_ERROR(
"network",
"HandleMoveChangeVehicleSeats: Player {} tried to switch seats but current seatflags {} don't permit that.",
99 if (
Vehicle* vehicle = vehUnit->GetVehicleKit())
100 if (vehicle->HasEmptySeat(moveChangeVehicleSeats.
DstSeatIndex))
113 TC_LOG_ERROR(
"network",
"HandleRequestVehicleSwitchSeat: {} tried to switch seats but current seatflags {} don't permit that.",
121 if (
Vehicle* vehicle = vehUnit->GetVehicleKit())
122 if (vehicle->HasEmptySeat(
int8(requestVehicleSwitchSeat.
SeatIndex)))
130 if (!player->GetVehicleKit())
132 if (!player->IsInRaidWith(
_player))
149 TC_LOG_ERROR(
"network",
"HandleEjectPassenger: {} is not in a vehicle!",
GetPlayer()->GetGUID().ToString());
183 auto itr = vehicle->GetSeatIteratorForPassenger(
GetPlayer());
184 if (itr != vehicle->Seats.end())
186 if (itr->second.SeatInfo->CanEnterOrExit())
189 TC_LOG_ERROR(
"network",
"Player {} tried to exit vehicle, but seatflags {} (ID: {}) don't permit that.",
190 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
ObjectGuid GetCharmedGUID() const
bool IsOnVehicle(Unit const *vehicle) const
void ChangeSeat(int8 seatId, bool next=true)
Vehicle * GetVehicleKit() const
virtual void ExitVehicle(Position const *exitPosition=nullptr)
VehicleSeatEntry const * GetSeatForPassenger(Unit const *passenger) const
Returns information on the seat of specified passenger, represented by the format in VehicleSeat....
MovementInfo m_movementInfo
WorldPackets::Movement::MovementAck Data
void HandleRequestVehicleNextSeat(WorldPackets::Vehicle::RequestVehicleNextSeat &requestVehicleNextSeat)
void HandleEjectPassenger(WorldPackets::Vehicle::EjectPassenger &ejectPassenger)
bool ValidateMovementInfo(MovementInfo *mi) const
Player * GetPlayer() const
void HandleRequestVehicleExit(WorldPackets::Vehicle::RequestVehicleExit &requestVehicleExit)
void HandleMoveChangeVehicleSeats(WorldPackets::Vehicle::MoveChangeVehicleSeats &moveChangeVehicleSeats)
void HandleMoveSetVehicleRecAck(WorldPackets::Vehicle::MoveSetVehicleRecIdAck &setVehicleRecIdAck)
void HandleRequestVehiclePrevSeat(WorldPackets::Vehicle::RequestVehiclePrevSeat &requestVehiclePrevSeat)
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