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

Method packUpdate

Engine/source/T3D/shapeBase.cpp:3069–3194  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3067}
3068
3069U32 ShapeBase::packUpdate(NetConnection *con, U32 mask, BitStream *stream)
3070{
3071 U32 retMask = Parent::packUpdate(con, mask, stream);
3072
3073 if (mask & InitialUpdateMask) {
3074 // mask off sounds that aren't playing
3075 S32 i;
3076 for (i = 0; i < MaxSoundThreads; i++)
3077 if (!mSoundThread[i].play)
3078 mask &= ~(SoundMaskN << i);
3079
3080 // mask off threads that aren't running
3081 for (i = 0; i < MaxScriptThreads; i++)
3082 if (mScriptThread[i].sequence == -1)
3083 mask &= ~(ThreadMaskN << i);
3084
3085 // mask off images that aren't updated
3086 for(i = 0; i < MaxMountedImages; i++)
3087 if(!mMountedImageList[i].dataBlock)
3088 mask &= ~(ImageMaskN << i);
3089 }
3090
3091 if(!stream->writeFlag(mask & (NameMask | DamageMask | SoundMask | MeshHiddenMask |
3092 ThreadMask | ImageMask | CloakMask | SkinMask)))
3093 return retMask;
3094
3095 if (stream->writeFlag(mask & DamageMask)) {
3096 stream->writeFloat(mClampF(mDamage / mDataBlock->maxDamage, 0.f, 1.f), DamageLevelBits);
3097 stream->writeInt(mDamageState,NumDamageStateBits);
3098 stream->writeNormalVector( damageDir, 8 );
3099 }
3100
3101 if (stream->writeFlag(mask & ThreadMask)) {
3102 for (S32 i = 0; i < MaxScriptThreads; i++) {
3103 Thread& st = mScriptThread[i];
3104 if (stream->writeFlag( (st.sequence != -1 || st.state == Thread::Destroy) && (mask & (ThreadMaskN << i)) ) ) {
3105 stream->writeInt(st.sequence,ThreadSequenceBits);
3106 stream->writeInt(st.state,2);
3107 stream->write(st.timescale);
3108 stream->write(st.position);
3109 stream->writeFlag(st.atEnd);
3110 }
3111 }
3112 }
3113
3114 if (stream->writeFlag(mask & SoundMask)) {
3115 for (S32 i = 0; i < MaxSoundThreads; i++) {
3116 SoundThread& st = mSoundThread[i];
3117 if (stream->writeFlag(mask & (SoundMaskN << i)))
3118 if (stream->writeFlag(st.play))
3119 {
3120 NetStringHandle assetIdStr = st.asset->getAssetId();
3121 con->packNetStringHandleU(stream, assetIdStr);
3122 }
3123 }
3124 }
3125
3126 if (stream->writeFlag(mask & ImageMask)) {

Callers

nothing calls this directly

Calls 10

mClampFFunction · 0.85
writeFloatMethod · 0.80
writeIntMethod · 0.80
writeNormalVectorMethod · 0.80
packNetStringHandleUMethod · 0.80
getIdMethod · 0.65
writeFlagMethod · 0.45
writeMethod · 0.45
getAssetIdMethod · 0.45
writeBitsMethod · 0.45

Tested by

no test coverage detected