Merge pull request #1358 from Azaezel/tinyTurretTransmission

reduces rotation transmission size
This commit is contained in:
Daniel Buckmaster 2015-07-20 23:04:51 +10:00
commit db532c0e1a

View file

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