aboutsummaryrefslogtreecommitdiff
path: root/src/game/MovementHandler.cpp
diff options
context:
space:
mode:
authorXTZGZoReX <none@none>2010-01-15 19:50:27 +0100
committerXTZGZoReX <none@none>2010-01-15 19:50:27 +0100
commit26e11448dddc870c848f26462339ffdffd19c078 (patch)
treeefbdc5026969743a7a57bd1849d53a483bcb2da5 /src/game/MovementHandler.cpp
parent0451e45e06a820e8ab769a11495c134c50cf1164 (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.cpp42
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");