/// <summary>
        /// 
        /// </summary>
        /// <param name="field"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        protected Packet GetFieldUpdatePacket( UpdateFieldId updateFieldId, EntityId value )
        {
            UpdatePacket packet = new UpdatePacket();

            packet.WriterStream.Write( (byte)UpdateTypes.Values );

            EntityId entityId = new EntityId( this.Serial );
            entityId.WritePacked( packet );

            int iBlocks = ( ( updateFieldId.RawId + 1 ) >> 5 ) + 1;
            packet.WriterStream.Write( (int)iBlocks );

            int iBlocksCheck = ( updateFieldId.RawId >> 5 ) + 1;
            if ( iBlocks > 1 && iBlocksCheck != iBlocks )
            {
                packet.WriterStream.Fill( 0x00, ( iBlocks - 2 ) * 4 );

                packet.WriterStream.Write( (uint)0x80000000 );
                packet.WriterStream.Write( (uint)0x00000001 );
            }
            else
            {
                packet.WriterStream.Fill( 0x00, ( iBlocks - 1 ) * 4 );

                uint uiValue = (uint)( 1 << ( updateFieldId.RawId & 31 ) );
                uiValue |= (uint)( uiValue << 1 );

                packet.WriterStream.Write( (uint)uiValue );
            }

            packet.WriterStream.Write( value );

            packet.EndWrite( 1 );   // Update Count

            return packet;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="field"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        protected Packet GetFieldUpdatePacket( UpdateFieldId updateFieldId, uint value )
        {
            UpdatePacket packet = new UpdatePacket();

            packet.WriterStream.Write( (byte)UpdateTypes.Values );

            EntityId entityId = new EntityId( this.Serial );
            entityId.WritePacked( packet );

            int iBlocks = ( updateFieldId.RawId >> 5 ) + 1;
            packet.WriterStream.Write( (int)iBlocks );

            packet.WriterStream.Fill( 0x00, ( iBlocks - 1 ) * 4 );
            packet.WriterStream.Write( (uint)( 1 << ( updateFieldId.RawId & 31 ) ) );

            packet.WriterStream.Write( (uint)value );

            packet.EndWrite( 1 );   // Update Count

            return packet;
        }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="valuesCount"></param>
 public UpdateMask( UpdateFieldId valuesCount )
     : this( valuesCount.RawId )
 {
 }
Example #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="valuesCount"></param>
 public UpdateMask(UpdateFieldId valuesCount)
     : this(valuesCount.RawId)
 {
 }
 protected Packet GetFieldUpdatePacket( UpdateFieldId field, EntityId value )
 {
     return null;
 }
 protected Packet GetFieldUpdatePacket( UpdateFieldId field, uint value )
 {
     return null;
 }