aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsilver1ce <none@none>2010-01-15 19:23:59 +0200
committersilver1ce <none@none>2010-01-15 19:23:59 +0200
commit0451e45e06a820e8ab769a11495c134c50cf1164 (patch)
tree54c50700e0101abd21035d4342cbac6b10ea062b /src
parentb8ea34958c0716191f2eaab895f353d4818617e9 (diff)
parse CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE opcode in proper way
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/game/MovementHandler.cpp46
-rw-r--r--src/game/Unit.cpp11
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();