Core/Vehicles: Send transport X,Y,Z offsets as floats instead of uint32, fixes a possible client crash.

Thanks to j4r0d
This commit is contained in:
Machiavelli
2010-12-30 23:40:20 +01:00
parent 11cc3eac7a
commit 9c7c62cc5e
+6 -6
View File
@@ -418,11 +418,11 @@ void Unit::SendMonsterMove(float NewPosX, float NewPosY, float NewPosZ, uint32 M
void Unit::SendMonsterMoveTransport(Unit *vehicleOwner)
{
// TODO: Turn into BuildMonsterMoveTransport packet and allow certain variables (for npc movement aboard vehicles)
WorldPacket data(SMSG_MONSTER_MOVE_TRANSPORT, GetPackGUID().size()+vehicleOwner->GetPackGUID().size());
WorldPacket data(SMSG_MONSTER_MOVE_TRANSPORT, GetPackGUID().size()+vehicleOwner->GetPackGUID().size() + 47);
data.append(GetPackGUID());
data.append(vehicleOwner->GetPackGUID());
data << int8(GetTransSeat());
data << uint8(0); // unk boolean
data << uint8(0); // unk boolean
data << GetPositionX() - vehicleOwner->GetPositionX();
data << GetPositionY() - vehicleOwner->GetPositionY();
data << GetPositionZ() - vehicleOwner->GetPositionZ();
@@ -431,10 +431,10 @@ void Unit::SendMonsterMoveTransport(Unit *vehicleOwner)
data << GetTransOffsetO(); // facing angle?
data << uint32(SPLINEFLAG_TRANSPORT);
data << uint32(0); // move time
data << uint32(1);
data << uint32(GetTransOffsetX());
data << uint32(GetTransOffsetY());
data << uint32(GetTransOffsetZ());
data << uint32(1); // amount of waypoints
data << GetTransOffsetX();
data << GetTransOffsetY();
data << GetTransOffsetZ();
SendMessageToSet(&data, true);
}