From bdba5e61646ea3a774d816676c6086eae4bdb7e7 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Tue, 21 Aug 2018 03:36:28 +0200 Subject: [PATCH] Core/Vehicles: defined another inverted angle attachment type and added check for VEHICLE_SEAT_FLAG_B_USABLE_FORCED_4 in order to prevent some issues with vehicles that have those attachment types but should not use inverted angles --- src/server/game/DataStores/DBCEnums.h | 54 ++++++++++---------- src/server/game/Entities/Vehicle/Vehicle.cpp | 3 +- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h index 33fb519e3d3..1945b0a2305 100644 --- a/src/server/game/DataStores/DBCEnums.h +++ b/src/server/game/DataStores/DBCEnums.h @@ -641,33 +641,33 @@ enum VehicleSeatFlagsB 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 + VEHICLE_ATTACHMENT_ID_UNK0 = -1, + VEHICLE_ATTACHMENT_ID_UNK1 = 0, + VEHICLE_ATTACHMENT_ID_UNK2 = 1, + VEHICLE_ATTACHMENT_ID_INVERT_SEAT_ANGLE_1 = 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_INVERT_SEAT_ANGLE_2 = 16, + VEHICLE_ATTACHMENT_ID_UNK16 = 17, + VEHICLE_ATTACHMENT_ID_UNK17 = 18, + VEHICLE_ATTACHMENT_ID_UNK18 = 19, + VEHICLE_ATTACHMENT_ID_UNK19 = 20, + VEHICLE_ATTACHMENT_ID_UNK20 = 21, + VEHICLE_ATTACHMENT_ID_UNK21 = 22, + VEHICLE_ATTACHMENT_ID_UNK22 = 23, + VEHICLE_ATTACHMENT_ID_UNK23 = 24, + VEHICLE_ATTACHMENT_ID_UNK24 = 25 }; // CurrencyTypes.dbc diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp index 4786ce42d32..6ad86bd8711 100644 --- a/src/server/game/Entities/Vehicle/Vehicle.cpp +++ b/src/server/game/Entities/Vehicle/Vehicle.cpp @@ -877,7 +877,8 @@ bool VehicleJoinEvent::Execute(uint64, uint32) Passenger->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); float o = 0.0f; - if (veSeat->m_attachmentID == VEHICLE_ATTACHMENT_ID_INVERT_SEAT_ANGLE) + if ((veSeat->m_attachmentID == VEHICLE_ATTACHMENT_ID_INVERT_SEAT_ANGLE_1 || veSeat->m_attachmentID == VEHICLE_ATTACHMENT_ID_INVERT_SEAT_ANGLE_2) + && veSeat->HasFlag(VEHICLE_SEAT_FLAG_B_USABLE_FORCED_4)) // This flag is common in all vehicles that use inverted orientation in combination with the attachment IDs o += float(M_PI); float x = veSeat->m_attachmentOffsetX;