Core/Vehicles: expand vehicle seat addon table implementation to support passenger exit options
This commit is contained in:
1 parent
f336d6032b
commit
dfaa49c87b
8 files changed
+455
-412
No files matched your search
@@ -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();
|
||||
|
||||
Reference in new issue
Block a user