diff --git a/src/game/GroupHandler.cpp b/src/game/GroupHandler.cpp index ce596379e0..0b79b52aa3 100644 --- a/src/game/GroupHandler.cpp +++ b/src/game/GroupHandler.cpp @@ -31,6 +31,8 @@ #include "Util.h" #include "DB2Structure.h" #include "DB2Stores.h" +#include "Vehicle.h" +#include "TransportSystem.h" /* differeces from off: -you can uninvite yourself - is is useful @@ -899,6 +901,14 @@ void WorldSession::BuildPartyMemberStatsChangedPacket(Player* player, WorldPacke *data << uint32(0); *data << uint8(0); } + + if (mask & GROUP_UPDATE_FLAG_VEHICLE_SEAT) + { + if (player->GetTransportInfo()) + *data << uint32(((Unit*)player->GetTransportInfo()->GetTransport())->GetVehicleInfo()->GetVehicleEntry()->m_seatID[player->GetTransportInfo()->GetTransportSeat()]); + else + *data << uint32(0); + } } /*this procedure handles clients CMSG_REQUEST_PARTY_MEMBER_STATS request*/ @@ -1042,6 +1052,9 @@ void WorldSession::HandleRequestPartyMemberStatsOpcode(WorldPacket& recv_data) data << uint32(0); // GROUP_UPDATE_FLAG_PET_AURAS } + if (player->GetTransportInfo()) // GROUP_UPDATE_FLAG_VEHICLE_SEAT + data << uint32(((Unit*)player->GetTransportInfo()->GetTransport())->GetVehicleInfo()->GetVehicleEntry()->m_seatID[player->GetTransportInfo()->GetTransportSeat()]); + data << uint32(8); // GROUP_UPDATE_FLAG_PHASE data << uint32(0); // GROUP_UPDATE_FLAG_PHASE data << uint8(0); // GROUP_UPDATE_FLAG_PHASE diff --git a/src/game/Vehicle.cpp b/src/game/Vehicle.cpp index 52225cc856..48c991e0d4 100644 --- a/src/game/Vehicle.cpp +++ b/src/game/Vehicle.cpp @@ -511,6 +511,10 @@ void VehicleInfo::ApplySeatMods(Unit* passenger, uint32 seatFlags) { Player* pPlayer = (Player*)passenger; + // group update + if (pPlayer->GetGroup()) + pPlayer->SetGroupUpdateFlag(GROUP_UPDATE_FLAG_VEHICLE_SEAT); + if (seatFlags & SEAT_FLAG_CAN_CONTROL) { pPlayer->GetCamera().SetView(pVehicle); @@ -577,6 +581,10 @@ void VehicleInfo::RemoveSeatMods(Unit* passenger, uint32 seatFlags) { Player* pPlayer = (Player*)passenger; + // group update + if (pPlayer->GetGroup()) + pPlayer->SetGroupUpdateFlag(GROUP_UPDATE_FLAG_VEHICLE_SEAT); + if (seatFlags & SEAT_FLAG_CAN_CONTROL) { pPlayer->SetCharm(NULL); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index cc8d371911..dc258ca375 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "12874" + #define REVISION_NR "12875" #endif // __REVISION_NR_H__