Core/Vehicles: - Prevent client ejecting passengers from non-ejectable seats.

- Chart some more VehicleSeatFlags and VehicleSeatFlagsB. Research by linencloth
This commit is contained in:
Machiavelli
2010-12-30 17:33:51 +01:00
parent 2325e8b3d6
commit 8c8f4a828b
4 changed files with 42 additions and 8 deletions
@@ -423,6 +423,17 @@ void Vehicle::RemovePassenger(Unit *unit)
sScriptMgr->OnRemovePassenger(this, unit);
}
void Vehicle::EjectPassenger(Unit* passenger, Unit* controller)
{
SeatMap::const_iterator m_SeatsItr;
for (m_SeatsItr = m_Seats.begin(); m_SeatsItr != m_Seats.end(); ++m_SeatsItr)
if (m_SeatsItr->second.passenger == passenger)
if (m_SeatsItr->second.seatInfo->IsEjectable())
return passenger->ExitVehicle();
else
sLog->outError("Player %u attempted to eject unit GUID "UI64FMTD" from non-ejectable seat.", controller->GetGUIDLow(), passenger->GetGUID());
}
void Vehicle::RelocatePassengers(float x, float y, float z, float ang)
{
Map *map = me->GetMap();