diff --git a/Engine/source/T3D/turret/turretShape.cpp b/Engine/source/T3D/turret/turretShape.cpp index b824d75cd..13aa42bf1 100644 --- a/Engine/source/T3D/turret/turretShape.cpp +++ b/Engine/source/T3D/turret/turretShape.cpp @@ -1059,9 +1059,9 @@ void TurretShape::writePacketData(GameConnection *connection, BitStream *stream) { // Update client regardless of status flags. Parent::writePacketData(connection, stream); - - stream->write(mRot.x); - stream->write(mRot.z); + + stream->writeSignedFloat(mRot.x / M_2PI_F, 7); + stream->writeSignedFloat(mRot.z / M_2PI_F, 7); } void TurretShape::readPacketData(GameConnection *connection, BitStream *stream) @@ -1069,9 +1069,8 @@ void TurretShape::readPacketData(GameConnection *connection, BitStream *stream) Parent::readPacketData(connection, stream); Point3F rot(0.0f, 0.0f, 0.0f); - stream->read(&rot.x); - stream->read(&rot.z); - + rot.x = stream->readSignedFloat(7) * M_2PI_F; + rot.z = stream->readSignedFloat(7) * M_2PI_F; _setRotation(rot); mTurretDelta.rot = rot; @@ -1100,8 +1099,8 @@ U32 TurretShape::packUpdate(NetConnection *connection, U32 mask, BitStream *stre if (stream->writeFlag(mask & TurretUpdateMask)) { - stream->write(mRot.x); - stream->write(mRot.z); + stream->writeSignedFloat(mRot.x / M_2PI_F, 7); + stream->writeSignedFloat(mRot.z / M_2PI_F, 7); stream->write(allowManualRotation); stream->write(allowManualFire); } @@ -1137,8 +1136,8 @@ void TurretShape::unpackUpdate(NetConnection *connection, BitStream *stream) if (stream->readFlag()) { Point3F rot(0.0f, 0.0f, 0.0f); - stream->read(&rot.x); - stream->read(&rot.z); + rot.x = stream->readSignedFloat(7) * M_2PI_F; + rot.z = stream->readSignedFloat(7) * M_2PI_F; _setRotation(rot); // New delta for client side interpolation