Core/Vehicles: expand vehicle seat addon table implementation to support passenger exit options

This commit is contained in:
Ovahlord committed 2020-01-28 11:09:05 +01:00
1 parent f336d6032b
commit dfaa49c87b
8 files changed
+455 -412

No files matched your search

+7 -2
View File
@@ -13465,8 +13465,8 @@ void Unit::_ExitVehicle(Position const* exitPosition)
return;
// This should be done before dismiss, because there may be some aura removal
VehicleSeatAddon const seatAddon = m_vehicle->GetSeatAddonForSeatOfPassenger(this);
Vehicle* vehicle = m_vehicle->RemovePassenger(this);
Player* player = ToPlayer();
// If the player is on mounted duel and exits the mount, he should immediatly lose the duel
@@ -13489,7 +13489,12 @@ void Unit::_ExitVehicle(Position const* exitPosition)
// Set exit position to vehicle position and use the current orientation
pos = vehicle->GetBase()->GetPosition();
pos.SetOrientation(GetOrientation());
sScriptMgr->ModifyVehiclePassengerExitPos(this, vehicle, pos);
// Change exit position based on seat entry
if (seatAddon.ExitParameter == VehicleExitParameters::VehicleExitParamOffset)
pos.RelocateOffset({ seatAddon.ExitParameterX, seatAddon.ExitParameterY, seatAddon.ExitParameterZ, seatAddon.ExitParameterO });
else if (seatAddon.ExitParameter == VehicleExitParameters::VehicleExitParamDest)
pos.Relocate({ seatAddon.ExitParameterX, seatAddon.ExitParameterY, seatAddon.ExitParameterZ, seatAddon.ExitParameterO });
}
float height = pos.GetPositionZ() + vehicle->GetBase()->GetCollisionHeight();