diff options
author | megamage <none@none> | 2009-04-21 12:55:26 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-04-21 12:55:26 -0500 |
commit | 4e1143c990154e2dc52ddacdc522f89e455338cc (patch) | |
tree | ce87b2c4db3e7978330cc759fc344992e994c5b9 /src/game/MovementHandler.cpp | |
parent | 9e46994506616bc4ffd6aa84267c785e833bbc87 (diff) |
*Fix a crash of vehicle.
--HG--
branch : trunk
Diffstat (limited to 'src/game/MovementHandler.cpp')
-rw-r--r-- | src/game/MovementHandler.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp index 50152de4e97..a5d79b678b2 100644 --- a/src/game/MovementHandler.cpp +++ b/src/game/MovementHandler.cpp @@ -496,6 +496,21 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket &recv_data) recv_data >> d >> e >> f >> g >> h >> i >> j >> k; recv_data >> seat; //sLog.outError("change seat %u %u %u %u %u %u %u %u %u %u %u %u", a, b,c,d,e,f,g,h,i,j,k,seat); + + if(seat == GetPlayer()->GetTransSeat()) + return; + + if(Vehicle *vehicle = GetPlayer()->m_Vehicle) + { + if(vehicle->HasEmptySeat(seat)) + { + vehicle->RemovePassenger(GetPlayer()); + if(!vehicle->AddPassenger(GetPlayer(), seat)) + { + assert(false); + } + } + } } void WorldSession::HandleRequestVehicleExit(WorldPacket &recv_data) |