MCPcopy Create free account
hub / github.com/GarageGames/Torque3D / packUpdate

Method packUpdate

Engine/source/T3D/camera.cpp:1158–1230  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1156//----------------------------------------------------------------------------
1157
1158U32 Camera::packUpdate(NetConnection *con, U32 mask, BitStream *bstream)
1159{
1160 Parent::packUpdate(con, mask, bstream);
1161
1162 if (bstream->writeFlag(mask & UpdateMask))
1163 {
1164 bstream->writeFlag(mLocked);
1165 mathWrite(*bstream, mOffset);
1166 }
1167
1168 if(bstream->writeFlag(mask & NewtonCameraMask))
1169 {
1170 bstream->write(mAngularForce);
1171 bstream->write(mAngularDrag);
1172 bstream->write(mMass);
1173 bstream->write(mDrag);
1174 bstream->write(mFlyForce);
1175 bstream->write(mSpeedMultiplier);
1176 bstream->write(mBrakeMultiplier);
1177 }
1178
1179 if(bstream->writeFlag(mask & EditOrbitMask))
1180 {
1181 bstream->write(mEditOrbitPoint.x);
1182 bstream->write(mEditOrbitPoint.y);
1183 bstream->write(mEditOrbitPoint.z);
1184 bstream->write(mCurrentEditOrbitDist);
1185 }
1186
1187 // The rest of the data is part of the control object packet update.
1188 // If we're controlled by this client, we don't need to send it.
1189 if(bstream->writeFlag(getControllingClient() == con && !(mask & InitialUpdateMask)))
1190 return 0;
1191
1192 if (bstream->writeFlag(mask & MoveMask))
1193 {
1194 Point3F pos;
1195 mObjToWorld.getColumn(3,&pos);
1196 bstream->write(pos.x);
1197 bstream->write(pos.y);
1198 bstream->write(pos.z);
1199 bstream->write(mRot.x);
1200 bstream->write(mRot.z);
1201
1202 // Only required if in NewtonFlyMode
1203 F32 len = mVelocity.len();
1204 if(bstream->writeFlag(mNewtonMode && len > 0.02f))
1205 {
1206 Point3F outVel = mVelocity;
1207 outVel *= 1.0f/len;
1208 bstream->writeNormalVector(outVel, 10);
1209 len *= 32.0f; // 5 bits of fraction
1210 if(len > 8191)
1211 len = 8191;
1212 bstream->writeInt((S32)len, 13);
1213 }
1214
1215 // Rotation

Callers

nothing calls this directly

Calls 7

mathWriteFunction · 0.85
getColumnMethod · 0.80
writeNormalVectorMethod · 0.80
writeIntMethod · 0.80
writeFlagMethod · 0.45
writeMethod · 0.45
lenMethod · 0.45

Tested by

no test coverage detected