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

Method writePacketData

Engine/source/T3D/camera.cpp:985–1062  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

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