aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server/Protocol
diff options
context:
space:
mode:
authorMachiavelli <machiavelli.trinity@gmail.com>2010-12-31 17:23:51 +0100
committerMachiavelli <machiavelli.trinity@gmail.com>2010-12-31 17:23:51 +0100
commit72a115f242f4d4e7de483bb433b46da987dad311 (patch)
treecc3db62f096bae5a0d3f185b9086697969c30a07 /src/server/game/Server/Protocol
parent1b18a0ac65f4f7a1aff21970fa3f14bb55ebce0b (diff)
Core/Vehicles: Store guids in vehicleseat structures instead of pointers. Fixes a crash with vendor-carrying Mammoth mounts.
Diffstat (limited to 'src/server/game/Server/Protocol')
-rwxr-xr-xsrc/server/game/Server/Protocol/Handlers/MovementHandler.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/server/game/Server/Protocol/Handlers/MovementHandler.cpp b/src/server/game/Server/Protocol/Handlers/MovementHandler.cpp
index 675286e538f..639be0110eb 100755
--- a/src/server/game/Server/Protocol/Handlers/MovementHandler.cpp
+++ b/src/server/game/Server/Protocol/Handlers/MovementHandler.cpp
@@ -655,10 +655,13 @@ void WorldSession::HandleEjectPassenger(WorldPacket &data)
if (Unit *unit = ObjectAccessor::GetUnit(*_player, guid)) // creatures can be ejected too from player mounts
{
VehicleSeatEntry const* seat = vehicle->GetSeatForPassenger(unit);
+ ASSERT(seat);
if (seat->IsEjectable())
{
+ ASSERT(GetPlayer() == vehicle->GetBase());
unit->ExitVehicle();
unit->ToCreature()->ForcedDespawn(1000);
+ ASSERT(!unit->IsOnVehicle(vehicle->GetBase()));
}
else
sLog->outError("Player %u attempted to eject creature GUID "UI64FMTD" from non-ejectable seat.", GetPlayer()->GetGUIDLow(), GUID_LOPART(guid));