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.",
101 if (
Vehicle* vehicle = vehUnit->GetVehicleKit())
102 if (vehicle->HasEmptySeat(moveChangeVehicleSeats.
DstSeatIndex))
115 TC_LOG_ERROR(
"network",
"HandleRequestVehicleSwitchSeat: {} tried to switch seats but current seatflags {} don't permit that.",
123 if (
Vehicle* vehicle = vehUnit->GetVehicleKit())
124 if (vehicle->HasEmptySeat(
int8(requestVehicleSwitchSeat.
SeatIndex)))
132 if (!player->GetVehicleKit())
134 if (!player->IsInRaidWith(
_player))
185 auto itr = vehicle->GetSeatIteratorForPassenger(
GetPlayer());
186 if (itr != vehicle->Seats.end())
188 if (itr->second.SeatInfo->CanEnterOrExit())
191 TC_LOG_ERROR(
"network",
"Player {} tried to exit vehicle, but seatflags {} (ID: {}) don't permit that.",
192 GetPlayer()->GetGUID().
ToString(), vehicle->GetVehicleInfo()->SeatID[itr->first], itr->second.SeatInfo->Flags);
#define TC_LOG_ERROR(filterType__,...)
#define INTERACTION_DISTANCE
bool IsBattleArena() const
std::string ToString() const
static ObjectGuid GetGUID(Object const *o)
void ValidateMovementInfo(MovementInfo *mi)
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)
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)
std::string ToString(Type &&val, Params &&... params)
bool CanSwitchFromSeat() const