| 778 | //-------------------------------------------------------------------------- |
| 779 | |
| 780 | U32 SceneObject::packUpdate( NetConnection* conn, U32 mask, BitStream* stream ) |
| 781 | { |
| 782 | U32 retMask = Parent::packUpdate( conn, mask, stream ); |
| 783 | |
| 784 | if ( stream->writeFlag( mask & FlagMask ) ) |
| 785 | stream->writeRangedU32( (U32)mObjectFlags, 0, getObjectFlagMax() ); |
| 786 | |
| 787 | if ( mask & MountedMask ) |
| 788 | { |
| 789 | if ( mMount.object ) |
| 790 | { |
| 791 | S32 gIndex = conn->getGhostIndex( mMount.object ); |
| 792 | |
| 793 | if ( stream->writeFlag( gIndex != -1 ) ) |
| 794 | { |
| 795 | stream->writeFlag( true ); |
| 796 | stream->writeInt( gIndex, NetConnection::GhostIdBitSize ); |
| 797 | if ( stream->writeFlag( mMount.node != -1 ) ) |
| 798 | stream->writeInt( mMount.node, NumMountPointBits ); |
| 799 | mathWrite( *stream, mMount.xfm ); |
| 800 | } |
| 801 | else |
| 802 | // Will have to try again later |
| 803 | retMask |= MountedMask; |
| 804 | } |
| 805 | else |
| 806 | // Unmount if this isn't the initial packet |
| 807 | if ( stream->writeFlag( !(mask & InitialUpdateMask) ) ) |
| 808 | stream->writeFlag( false ); |
| 809 | } |
| 810 | else |
| 811 | stream->writeFlag( false ); |
| 812 | |
| 813 | return retMask; |
| 814 | } |
| 815 | |
| 816 | //----------------------------------------------------------------------------- |
| 817 |
nothing calls this directly
no test coverage detected