diff options
author | XTZGZoReX <none@none> | 2010-01-15 19:50:27 +0100 |
---|---|---|
committer | XTZGZoReX <none@none> | 2010-01-15 19:50:27 +0100 |
commit | 26e11448dddc870c848f26462339ffdffd19c078 (patch) | |
tree | efbdc5026969743a7a57bd1849d53a483bcb2da5 /src/game/MovementHandler.cpp | |
parent | 0451e45e06a820e8ab769a11495c134c50cf1164 (diff) |
* Update structure for SMSG_ADDON_INFO and add some sort of basic handling for incorrect addon CRCs (anti-cheating).
* Fix CRLF in MovementHandler.cpp.
* Move some handlers/senders to correct place.
--HG--
branch : trunk
Diffstat (limited to 'src/game/MovementHandler.cpp')
-rw-r--r-- | src/game/MovementHandler.cpp | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp index 7bf669c35d4..3219237043a 100644 --- a/src/game/MovementHandler.cpp +++ b/src/game/MovementHandler.cpp @@ -608,17 +608,49 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket &recv_data) 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))
+ 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::HandleEnterPlayerVehicle(WorldPacket &data) +{ + // Read guid + uint64 guid; + data >> guid; + + if(Player* pl=ObjectAccessor::FindPlayer(guid)) + { + if (!pl->GetVehicleKit()) + return; + if (!pl->IsInRaidWith(_player)) + return; + if(!pl->IsWithinDistInMap(_player,INTERACTION_DISTANCE)) + return; + _player->EnterVehicle(pl); + } +} + +void WorldSession::HandleEjectPasenger(WorldPacket &data) +{ + if(data.GetOpcode()==CMSG_EJECT_PASSENGER) + { + if(Vehicle* Vv= _player->GetVehicleKit()) + { + uint64 guid; + data >> guid; + if(Player* Pl=ObjectAccessor::FindPlayer(guid)) + Pl->ExitVehicle(); + } + } +} + void WorldSession::HandleRequestVehicleExit(WorldPacket &recv_data) { sLog.outDebug("WORLD: Recvd CMSG_REQUEST_VEHICLE_EXIT"); |