diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/MovementHandler.cpp | 46 | ||||
-rw-r--r-- | src/game/Unit.cpp | 11 |
2 files changed, 27 insertions, 30 deletions
diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp index def605bc8c7..7bf669c35d4 100644 --- a/src/game/MovementHandler.cpp +++ b/src/game/MovementHandler.cpp @@ -585,32 +585,38 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket &recv_data) if(!GetPlayer()->GetVehicle()) return; - if(recv_data.GetOpcode() == CMSG_REQUEST_VEHICLE_PREV_SEAT) + switch (recv_data.GetOpcode()) { + case CMSG_REQUEST_VEHICLE_PREV_SEAT: GetPlayer()->ChangeSeat(-1, false); - return; - } - else if(recv_data.GetOpcode() == CMSG_REQUEST_VEHICLE_NEXT_SEAT) - { + break; + case CMSG_REQUEST_VEHICLE_NEXT_SEAT: GetPlayer()->ChangeSeat(-1, true); - return; - } - else if(recv_data.GetOpcode() == CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE) - ReadMovementInfo(recv_data, &GetPlayer()->GetVehicleBase()->m_movementInfo); + break; + case CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE: + { + uint64 guid; // current vehicle guid + if(!recv_data.readPackGUID(guid)) + return; - uint64 guid; - if(!recv_data.readPackGUID(guid)) - return; + ReadMovementInfo(recv_data, &GetPlayer()->GetVehicleBase()->m_movementInfo); - int8 seatId; - recv_data >> seatId; + uint64 accessory; // accessory guid + if(!recv_data.readPackGUID(accessory)) + return; - if(!guid) - GetPlayer()->ChangeSeat(-1, seatId > 0); // prev/next - else if(Unit *vehUnit = ObjectAccessor::GetUnit(*GetPlayer(), guid)) - if(Vehicle *vehicle = vehUnit->GetVehicleKit()) - if(vehicle->HasEmptySeat(seatId)) - GetPlayer()->EnterVehicle(vehicle, seatId); + int8 seatId; + recv_data >> seatId; + + if(!accessory)
+ GetPlayer()->ChangeSeat(-1, seatId > 0); // prev/next
+ else if(Unit *vehUnit = ObjectAccessor::GetUnit(*GetPlayer(), accessory))
+ if(Vehicle *vehicle = vehUnit->GetVehicleKit())
+ if(vehicle->HasEmptySeat(seatId))
+ GetPlayer()->EnterVehicle(vehicle, seatId); + } + break; + } } void WorldSession::HandleRequestVehicleExit(WorldPacket &recv_data) diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 4347549495e..0def0e22e49 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -3252,18 +3252,9 @@ void Unit::_UpdateSpells( uint32 time ) ++i; } - WorldPacket auras; for (VisibleAuraMap::iterator itr = m_visibleAuras.begin(); itr != m_visibleAuras.end(); ++itr) if (itr->second->IsNeedClientUpdate()) - itr->second->ConstructAuraInfo(auras); - - if(auras.wpos()) - { - WorldPacket data(SMSG_AURA_UPDATE, GetPackGUID().size() + auras.wpos()); - data.append(GetPackGUID()); - data.append(auras); - SendMessageToSet(&data, true); - } + itr->second->ClientUpdate(); _DeleteRemovedAuras(); |