diff options
author | thenecromancer <none@none> | 2010-01-13 11:16:38 +0100 |
---|---|---|
committer | thenecromancer <none@none> | 2010-01-13 11:16:38 +0100 |
commit | ea4e25f3aaa10efeacf0849bcb1583ad78ee2b28 (patch) | |
tree | 9873402e58eb955e2db047f0c31b2760df32d019 /src/game/MovementHandler.cpp | |
parent | db24e2927c0a67576011692ef8c2f8150da9425f (diff) |
Implement vehicles created by player mounts.
Original idea by Elmaster, packet research by Wrong, ty.
--HG--
branch : trunk
Diffstat (limited to 'src/game/MovementHandler.cpp')
-rw-r--r-- | src/game/MovementHandler.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp index e249766ed35..28af0b70915 100644 --- a/src/game/MovementHandler.cpp +++ b/src/game/MovementHandler.cpp @@ -358,6 +358,20 @@ void WorldSession::HandleMovementOpcodes( WorldPacket & recv_data ) plMover->SetPosition(movementInfo.x, movementInfo.y, movementInfo.z, movementInfo.o); plMover->UpdateFallInformationIfNeed(movementInfo, opcode); + // If on vehicle, update carried players
+ if (Vehicle *vehicle=plMover->GetVehicleKit())
+ {
+ if (plMover->IsVehicle())
+ {
+ for (int i=0; i < 8; ++i)
+ {
+ if (Unit *passenger = vehicle->GetPassenger(i))
+ if (passenger != NULL && passenger->GetTypeId() == TYPEID_PLAYER)
+ ((Player*)passenger)->SetPosition(movementInfo.x, movementInfo.y, movementInfo.z, movementInfo.o);
+ }
+ }
+ } + if (movementInfo.z < -500.0f) { if (plMover->InBattleGround() |