Core/Vehicles: define vehicle seat attachment id's and name the first of them that is suposed to invert the vehicle seat orientation

This commit is contained in:
Ovahlord
2018-08-21 00:41:21 +02:00
parent b3d03b0be1
commit 032a5dc84a
2 changed files with 42 additions and 3 deletions

View File

@@ -639,6 +639,37 @@ enum VehicleSeatFlagsB
VEHICLE_SEAT_FLAG_B_VEHICLE_PLAYERFRAME_UI = 0x80000000 // Lua_UnitHasVehiclePlayerFrameUI - actually checked for flagsb &~ 0x80000000
};
enum VehicleAttachmentIds
{
VEHICLE_ATTACHMENT_ID_UNK0 = -1,
VEHICLE_ATTACHMENT_ID_UNK1 = 0,
VEHICLE_ATTACHMENT_ID_UNK2 = 1,
VEHICLE_ATTACHMENT_ID_INVERT_SEAT_ANGLE = 2,
VEHICLE_ATTACHMENT_ID_UNK3 = 3,
VEHICLE_ATTACHMENT_ID_UNK4 = 4,
VEHICLE_ATTACHMENT_ID_UNK5 = 5,
VEHICLE_ATTACHMENT_ID_UNK6 = 6,
VEHICLE_ATTACHMENT_ID_UNK7 = 7,
VEHICLE_ATTACHMENT_ID_UNK8 = 8,
VEHICLE_ATTACHMENT_ID_UNK9 = 9,
VEHICLE_ATTACHMENT_ID_UNK10 = 10,
VEHICLE_ATTACHMENT_ID_UNK11 = 11,
VEHICLE_ATTACHMENT_ID_UNK12 = 12,
VEHICLE_ATTACHMENT_ID_UNK13 = 13,
VEHICLE_ATTACHMENT_ID_UNK14 = 14,
VEHICLE_ATTACHMENT_ID_UNK15 = 15,
VEHICLE_ATTACHMENT_ID_UNK16 = 16,
VEHICLE_ATTACHMENT_ID_UNK17 = 17,
VEHICLE_ATTACHMENT_ID_UNK18 = 18,
VEHICLE_ATTACHMENT_ID_UNK19 = 19,
VEHICLE_ATTACHMENT_ID_UNK20 = 20,
VEHICLE_ATTACHMENT_ID_UNK21 = 21,
VEHICLE_ATTACHMENT_ID_UNK22 = 22,
VEHICLE_ATTACHMENT_ID_UNK23 = 23,
VEHICLE_ATTACHMENT_ID_UNK24 = 24,
VEHICLE_ATTACHMENT_ID_UNK25 = 25
};
// CurrencyTypes.dbc
enum CurrencyTypes
{

View File

@@ -876,7 +876,15 @@ bool VehicleJoinEvent::Execute(uint64, uint32)
if (veSeat->HasFlag(VEHICLE_SEAT_FLAG_PASSENGER_NOT_SELECTABLE))
Passenger->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
Passenger->m_movementInfo.transport.pos.Relocate(veSeat->m_attachmentOffsetX, veSeat->m_attachmentOffsetY, veSeat->m_attachmentOffsetZ);
float o = 0.0f;
if (veSeat->m_attachmentID == VEHICLE_ATTACHMENT_ID_INVERT_SEAT_ANGLE)
o += float(M_PI);
float x = veSeat->m_attachmentOffsetX;
float y = veSeat->m_attachmentOffsetY;
float z = veSeat->m_attachmentOffsetZ;
Passenger->m_movementInfo.transport.pos.Relocate(x, y, z, o);
Passenger->m_movementInfo.transport.time = 0;
Passenger->m_movementInfo.transport.seat = Seat->first;
Passenger->m_movementInfo.transport.guid = Target->GetBase()->GetGUID();
@@ -898,8 +906,8 @@ bool VehicleJoinEvent::Execute(uint64, uint32)
Movement::MoveSplineInit init(Passenger);
init.DisableTransportPathTransformations();
init.MoveTo(veSeat->m_attachmentOffsetX, veSeat->m_attachmentOffsetY, veSeat->m_attachmentOffsetZ, false, true);
init.SetFacing(0.0f);
init.MoveTo(x, y, z, false, true);
init.SetFacing(o);
init.SetTransportEnter();
init.Launch();