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

Method packData

Engine/source/T3D/shapeImage.cpp:996–1178  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

994}
995
996void ShapeBaseImageData::packData(BitStream* stream)
997{
998 Parent::packData(stream);
999
1000 if(stream->writeFlag(computeCRC))
1001 {
1002 for( U32 j=0; j<MaxShapes; ++j )
1003 {
1004 stream->write(mCRC[j]);
1005 }
1006 }
1007
1008 for (U32 j = 0; j < MaxShapes; ++j)
1009 {
1010 PACKDATA_ASSET_ARRAY(Shape, j); // shape 0 for normal use, shape 1 for first person use (optional)
1011 }
1012
1013 stream->writeString(imageAnimPrefix);
1014 stream->writeString(imageAnimPrefixFP);
1015
1016 stream->write(mountPoint);
1017 if (!stream->writeFlag(mountOffset.isIdentity()))
1018 stream->writeAffineTransform(mountOffset);
1019 if (!stream->writeFlag(eyeOffset.isIdentity()))
1020 stream->writeAffineTransform(eyeOffset);
1021
1022 stream->writeFlag(animateOnServer);
1023
1024 stream->write(scriptAnimTransitionTime);
1025
1026 stream->writeFlag(useEyeNode);
1027
1028 stream->writeFlag(correctMuzzleVector);
1029 stream->writeFlag(correctMuzzleVectorTP);
1030 stream->writeFlag(firstPerson);
1031 stream->write(mass);
1032 stream->writeFlag(usesEnergy);
1033 stream->write(minEnergy);
1034
1035 for( U32 j=0; j<MaxShapes; ++j)
1036 {
1037 stream->writeFlag(hasFlash[j]);
1038 }
1039
1040 // Client doesn't need accuFire
1041
1042 // Write the projectile datablock
1043 if (stream->writeFlag(projectile))
1044 stream->writeRangedU32(mPacked ? SimObjectId((uintptr_t)projectile):
1045 projectile->getId(),DataBlockObjectIdFirst,DataBlockObjectIdLast);
1046
1047 stream->writeFlag(cloakable);
1048 stream->writeRangedU32(lightType, 0, NumLightTypes-1);
1049 if(lightType != NoLight)
1050 {
1051 stream->write(lightRadius);
1052 stream->write(lightDuration);
1053 stream->writeFloat(lightColor.red, 7);

Callers

nothing calls this directly

Calls 11

mathWriteFunction · 0.85
writeAffineTransformMethod · 0.80
writeRangedU32Method · 0.80
writeFloatMethod · 0.80
writeIntMethod · 0.80
writeSignedIntMethod · 0.80
getIdMethod · 0.65
writeFlagMethod · 0.45
writeMethod · 0.45
writeStringMethod · 0.45
isIdentityMethod · 0.45

Tested by

no test coverage detected