MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / writePacketData

Method writePacketData

Engine/source/T3D/camera.cpp:986–1063  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

984//----------------------------------------------------------------------------
985
986void Camera::writePacketData(GameConnection *connection, BitStream *bstream)
987{
988 // Update client regardless of status flags.
989 Parent::writePacketData(connection, bstream);
990
991 Point3F pos;
992 mObjToWorld.getColumn(3,&pos);
993 bstream->setCompressionPoint(pos);
994 mathWrite(*bstream, pos);
995 bstream->write(mRot.x);
996 if(mDataBlock && bstream->writeFlag(mDataBlock->cameraCanBank))
997 {
998 // Include mRot.y to allow for camera banking
999 bstream->write(mRot.y);
1000 }
1001 bstream->write(mRot.z);
1002
1003 U32 writeMode = mMode;
1004 Point3F writePos = mPosition;
1005 S32 gIndex = -1;
1006 if(mMode == OrbitObjectMode)
1007 {
1008 gIndex = bool(mOrbitObject) ? connection->getGhostIndex(mOrbitObject): -1;
1009 if(gIndex == -1)
1010 {
1011 writeMode = OrbitPointMode;
1012 if(bool(mOrbitObject))
1013 mOrbitObject->getWorldBox().getCenter(&writePos);
1014 }
1015 }
1016 else if(mMode == TrackObjectMode)
1017 {
1018 gIndex = bool(mOrbitObject) ? connection->getGhostIndex(mOrbitObject): -1;
1019 if(gIndex == -1)
1020 writeMode = StationaryMode;
1021 }
1022 bstream->writeRangedU32(writeMode, CameraFirstMode, CameraLastMode);
1023
1024 if (writeMode == OrbitObjectMode || writeMode == OrbitPointMode)
1025 {
1026 bstream->write(mMinOrbitDist);
1027 bstream->write(mMaxOrbitDist);
1028 bstream->write(mCurOrbitDist);
1029 if(writeMode == OrbitObjectMode)
1030 {
1031 bstream->writeFlag(mObservingClientObject);
1032 bstream->writeInt(gIndex, NetConnection::GhostIdBitSize);
1033 }
1034 if (writeMode == OrbitPointMode)
1035 bstream->writeCompressedPoint(writePos);
1036 }
1037 else if(writeMode == TrackObjectMode)
1038 {
1039 bstream->writeInt(gIndex, NetConnection::GhostIdBitSize);
1040 }
1041
1042 if(bstream->writeFlag(mNewtonMode))
1043 {

Callers

nothing calls this directly

Calls 11

mathWriteFunction · 0.85
getColumnMethod · 0.80
setCompressionPointMethod · 0.80
getGhostIndexMethod · 0.80
writeRangedU32Method · 0.80
writeIntMethod · 0.80
writeCompressedPointMethod · 0.80
writeMethod · 0.45
writeFlagMethod · 0.45
getCenterMethod · 0.45
getWorldBoxMethod · 0.45

Tested by

no test coverage detected